Log In  

BBS > Superblog
Posts: All | Following    GIFs: All | Postcarts    Off-site: Accounts

Cart #46393 | 2017-11-17 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
1

Char Utility Fns is a non-playable cartridge with some utility functions for categorizing and manipulating character strings, including conversion to and from string characters, and numeric code points. It also has tolower(), totitle(), and toupper() functions to take advantage of the lower-case (well... small caps) letters that are available in the PICO-8 font, but which may not be typed in cartridge source code.

This project was primarily for my own education, and also theoretically for use as a library of useful char-manipulation functions... but since it takes up almost 400 tokens on its own, it'd be a fairly costly library, especially if you don't have need for all the facilities provided. Still, it could be edited down to include just the parts you want to use in a game. I think being able to print title-case messages is particularly neat; I might think about creating a version that only provides the tolower(), totitle() functions, since that was the main thing I was interested in while creating this.

As a curiosity, the source code also demonstrates some advanced function techniques; notably, the use of a top-level, anonymous function to contain/hide some local values - and local functions - that are used to construct some of the actual functions that are exported globally. (The same technique is quite common in many popular JavaScript code libraries.)

1
0 comments


Cart #46387 | 2017-11-16 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
1


made a game based upon the pdp-1's game spacewar! it's two player so grab a friend and have a play around with it.

1
1 comment


I don't see anything wrong with the actual pattern system, but it feels weird that specifying the pattern, the color, and the transparency is all split across multiple commands.

What if we could put it all in one place? What if I wanted a hideous red/green checkerboard, and could say so right in the rect() that drew it?

Well, there's room in the color parameter to do it:

rect(0,0,127,127,0xb8.a5a5)

Where b is color 11, green, 8 is color 9, red, and a5a5 is pattern 1010/0101/1010/0101. All in one combined, dithered, eye-bleeding "color."

Also, we can handle transparency. Let's say we want a less-hideous red/transparent checkerboard:

rect(0,0,127,127,0x108.a5a5)

Where the leading 1 means the second color (which was green) is transparent. Basically, if the second color is 16 (0x10) it's transparent.

This actually mirrors the poke-able pal/palt() registers, where the color is 00-0f if opaque and 10-1f if transparent. Calling pal() sets the bottom four bits, and calling palt() sets or clears the fifth bit.

There's a caveat, though. A lot of us do demo trickery where we treat the color value as automatically getting floored. So we might need a flag that says whether or not to treat colors oldschool or this way. Either a poke() trick or maybe a dithcol(true|false) call.

What do you guys think? I just feel like this would unify stuff so much better.

[box=ddffbb]Edit: Worth noting is that if you just pass, say, "8" for red, you get the usual behavior, because that's actually 0x008.0000, which is an opaque red/black color pair with a solid dither pattern (all 0's) that choose only the red color.

In short, the default behavior would match the normal usage. This wouldn't require any changes for people who use the API the way it's always been.

[ Continue Reading.. ]

7 comments


Hi, I'm currently working on a text heavy narrative game and as of now my main text table(Formatted as a string I then parse into a table at runtime) takes up 41% of the compressed size limit. Is there any way I can slim this down without losing text?
Is it viable to store the strings in a seperate cart and then memcpy them into my main cart? Would that stop it running in html/bbs/.exe?
Alternatively I can split the text into distinct sections and then store them as a string of carts which daisy chain into one another but that won't work in html to my knowledge and would rather fill the bbs up unnecessarily with carts that are just meant to be run by another cart.

6 comments


I have been using tiles as a placeholder, as I have not yet learned how to work with collisions. At the moment, I am trying to figure out how to replace sprite 34 with sprite 35 when the player interacts with it. Any help is appreciated.

Cart #46344 | 2017-11-16 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

0 comments


Cart #49475 | 2018-02-21 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Cart #46349 | 2017-11-16 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Cart #46344 | 2017-11-16 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

0 comments


The pico-8 manual mentions the following argument to the "pico8" program:

  -p param_str             pass a parameter string to the specified cartridge

but I can't find any mention of how to access that parameter. I was thinking it might be passed as an optional argument to _init(), but that doesn't appear to be the case; and PICO-8 doesn't expose lua's standard arg array.

How can I access that string?

I'm running on Mac OS btw, invoking the binary directly with:

~/Applications/PICO-8.app/Contents/MacOS/pico8 -p foo -run path-to-cart.p8

This seems to make the keyboard keys unresponsive (except a few, like return), not sure why...

2 comments


by gigs
Cart #46336 | 2017-11-15 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA


Hey all so I posted a cart so you can see what I am facing here:

I have the town with buildings that have collision coded into them with the doors coded to take the player to another room which is admittedly hacked together.
What happens is the player is then transported(sorta) to a new location - yet when I move him around in the 'new' zone there seems to be residual collision code which prevents total freedom of movement for the player.

Any better ways to go about this? I want the player to enter the brown zone and be able to freely move around at will.

Thanks!

8 comments


Hello erreybuddy. I don't have a specific project I'm working on or anything, but it's been bothering me that I don't understand how this works. I do have a pixel that oscillates properly, but I do not understand my own code, so I don't know how to approach having the pixel start at a different point in the oscillation cycle, without the amplitude changing. Here's my current code.

f=0
function _update()
 f+=5
	y = sin((f)/100) * 8 +64
end

function _draw()
	cls()
	pset(64,y,7)
end

If any smarty-pantses could explain why this code works to me like I'm a child, or how to have the pixel start at another point along the wave without changing amplitude (the x and y values of the top and bottom of its current pattern of movement), that'd be great.

I do feel bad asking for something without contributing to the community. Hopefully someday I can give back a little. Thank you all.

2 comments


Hi! I'm running PICO-8 0.1.11d on Mac OS 10.11.6.

Writing comments on the very first line of tabs in the code editor, I don't see those comments when I hover over the tabs.

I tried starting moving config.txt and running PICO-8 as well, in case that was it.

1 comment


Is there any memory address on PICO-8 that allows us to load a new, custom charset, without using sprite or map data?

1
8 comments


I'm putting together an arcade cabinet play Pico-8 games powered by a Raspberry Pi. My setup uses a Zero Delay USB encoder that I have hooked up to several buttons and a 4 switch joystick. I used to have everything working as of last week, but after an SD Card failure, I needed to re-install Raspian Jessie and set everything up again. So no problem, I downloaded everything re-set it up. No matter what I do, I've been running into this issue where Up and Down on Joystick not work in Pico-8 on Raspberry Pi. I feel like I've tried everything. I've tried Raspian Jessie, Raspian Jessie Lite, Retro Pie, different versions of Pico-8, updating the firmware of the RPI, updating the OS, updating Retro Pie, modified some .ko files, tried to hex edit the driver, put my SDL definitions in sdl_controllers.txt and nothing seems to work. It kills me because it was all working fine. Does anyone out there have any ideas? Below is my log and as you can see it is a DragonRise Generic USB Joystick, it even seems to get picked up in the log. The joystick works fine in RetroPie as far as playing games and navigating the menus, just that up and down don't work in Pico-8. I appreciate any ideas.

[ Continue Reading.. ]

0 comments




I updated it again to improve performance and cut on trap updates.



So I made this little game with a bunch of funny stuff. I used the collision code from Collide by Zep because I'm a bit lazy. :P

There seems to be some performance issues online, but on my computer there isn't any problem. I'm not sure why.

Also, one the monsters doesn't load in the game, weird.

Anyhow, have fun with it, you can make a whole new map with the tileset and it's supposed to work without changing the code except for a few things :

-To spawn the monsters, you need to place the first sprite, otherwise the code doesn't recognize it.
-Also, monsters will copy the tile to their left under them.
-The world is 128x36, but you can go beyond, and rooms are set to 16x12. You need to go change the map and camera inputs in the draw function if you want a different room size.
-Victory condition is reaching the bottom of the map, but you can change it in the update function.

You can also change the sprites if you want, but try not to move them, because they have specific uses in the code, like sprite 26 is a spike trap, sprite 56 is a chest that gives bombs, etc.

Anyways have fun making your own little game :).

edit 1 : P.S. : score doesn't work either on traps and doors, weird :c.

edit 2 : This is a repost, because I'm bad at this and posted an older version of the cartridge. It should play fine now. :')

3 comments


Cart #46292 | 2017-11-14 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
13

Just a small tech demo showing a omni-directional split screen.

13
6 comments


I thought of an idea for a jam


The idea is that no sprites are maps can be used
Tweet finished cart to @SmallTestAcount

Rules
Restrictions
•Text only
•Image hack is not allowed
•No built-in drawing type functions allowed (ex: rectfill, circfill, line, etc...)
•No rule loopholes
•No sprites
•No maps
Suggestions/Allowed
•Cls() is allowed
•SFX and music are allowed
•All file sizes allowed
•Glyphs are suggested
•All colors are allowed
•Dev kit mouse is allowed if you wish to use it

•Remember to use #TOjam
•Must be finished by Dec 31st at midnight

Have fun

--Nov 14--

4
10 comments


I used to see line numbers pretty often with my Pico8 games, but recently I almost always get "Line 0 (Tab 0)" errors.
I'm running Version 11.

Is there a common reason for this? A way to get around it?

1
2 comments


I was thinking about this for a while, but how cool would be having a NEW command, that simply creates a new cart?! For now, I've created an empty cart in my root dir, called it new, and using LOAD NEW, SAVE NAME.

What do you think?

3 comments


Cart #46270 | 2017-11-14 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2

This is a mostly-finished implementation of Game of Life. I might clean up the arrays to make it more easily scalable, or I might just leave it as-is. Enjoy!

2
0 comments



Spritesheet Generator Demo is a cartridge that demonstrates how to save on-screen graphics into a cartridge's permanent sprite memory. Useful for programatically generating sprites. It is not a useful/playable cart; it is intended for use as example code.

Includes a standalone setsprites() function to use in your own projects (which must be followed by cstore() to save permanently to the cartridge). Also includes a replacement circfill() function (not stand-alone) in order to render the intended example graphics.

(Also, my first upload to the BBS.)

3
3 comments


I just got pico-8, am running it in Windows 7, but I can't seem to find an option to either run it in a window, or to choose my second monitor to use it in (or preferably, both options!).

Is there a config file or something that I should be messing with?

Same for Voxatron. Only runs on the main display.

Any help appreciated!

2
20 comments




Top    Load More Posts ->