Oh no! There's been a disaster, and your crew has gotten lost at sea. Luckily, you've got a supremely buoyant sailboat: it's up to you to pick them up and tow them back to safety!
Controls:
-Arrows for movement
-Z to toggle UI
-X to swap palettes
I went with some extra self-imposed challenges on this one:
-1-bit colour
-No text
-No assets (i.e. sprites, tiles, sounds, or music)
Made for #simplejam.

This is a set of sprites and functions that allow the user to draw text with a proportional font. The font covers upper and lowercase, digits and basic punctuation. This set is not as compact as the others right now, demanding 16 sprites, but it provides, IMO, more readable characters.
current version:
- switched from using the bottom 16 sprites in the first page to a 4x4 area in the first page
- restored all characters to their intended designs
old versions:

UPDATE: (0.2) Updated the mouse library so that the cursor can be driven by the gamepad OR the mouse at any time, to make the cart compatible with all Pico-8 devices.
I'm cobbling together a UI/mouse library for my own use, and thought it might be useful to others. For now the only widget is a button, but I wrote the API so that it's easy to modify and extend (in theory). Will provide more documentation if there's interest.
This would be a quick "hello world" with the library, for instance:
--button "onclick" callback function hideme(this) this.visible=false end function _init() --enable the mouse and --set the cursor to a 6x6 sprite --at index 0 mouse_init(0,6,6) --create a new parent UI and --make it the active one mainui = ui_make() ui_setactive(mainui) --make a button labeled "hello, world!" --which calls hideme() when clicked. --It will draw at screen position (30,30). --I could also optionally specify a width and height, --but if I leave it out the button will be sized automatically --based on the length of the label text. btn_make(mainui, "hello, world!", hideme, 30, 30) end function _update() --update mouse position and do event callbacks --as needed mouse_update() end function _draw() cls() --print mouse position print(mouse.x.." "..mouse.y,0,0,7) -- draw mouse on top of UI ui_draw() mouse_draw() end |

As I already says in a topic in the Pico8 forum, I'm going to make a Pico-8 stand for a French retro-gaming convention during Fall (at least this one, but I hope to be able to deploy my stand in more locations!)
My goal with this stand is to allow people to discover Pico-8 and I will also run a simple jam for the interested people.
The stand will be made from Raspberry Pi (I have a few of them) connected to CRT monitors (or whatever is available) potentially two CHIP as soon as there is the update that include Pico-8 also connected on CRT or other screen, depending on the availability (hopefully the people that organise that even can lend monitors, that's really handy! :D) and my Picade with a rPi3.
Basically all of the Pi/CHIP will be connected together on a private network (I want this stand to be autonomous, because some convention can't provide an internet access, so I want them to be able to run without an internet access.
So on that network, either a computer, or one of the "Pico computer" will also have an offline BBS that will allow splore to work as if it were online.
I've found how the BBS is working and it's not really hard to make it work using DNS spoofing, but I really hope that ZEP will provide at some point a way to have our own offline BBS (at least an option in the config file to change the BBS address for such uses)
The best would also to directly submit a cart from Pico-8 that would be marvellous, but I may ask too much there :)
Anyway, all the Pi (and I will see for the CHIPs) will run a specialised version of Linux that boot directly into Pico-8 and will provide a way to upload cart to the offline BBS, need to check for that.
Anyway, I'm going back to the original goal of this blog entry.
There is something that all good stand need: a stunning logo, and the Pico-8 logo is a really stunning one because it's blocky and colourful! And how to make it even better? make it shine in the dark using LEDs.
I've been working on that for a few weeks now, and I've finally done the mechanical part, as I have access to a laser cutter, I had great fun today with it, and cut what will be the shiniest Pico-8 logo!
Hey all, me and a friend have been talking about the possibilities of being able to split a pico script into multiple files and compile them as they're edited for a while, so here is a python script that'll let you do that, hopefully it works well.
https://github.com/ambocclusion/pico-8-compiler
Let me know what you think!
Also if you plan on using it, back up frequently or use version control as it might end up wiping your file more than once because it's super destructive!!!!

Hi!
I'm new to the Pico-8 and a newbe at coding games... but having fun so far!
I'm making a REMAKE of a CPC 464 game called OH MUMMY! by AMSOFT
The game is coming toghether nicely but one of the best features of the game was his music... -If you played the game you now what i mind... It burns your brain XDDDD
Any musician would like to collaborate making a version for Pico-8?
Thanks! And sorry for my bad english ;)

I'm trying to have an object travel along a curved path as defined by several x/y coordinates. Right now, I have several x/y points defined and my object travels from one to another in a straight line, so I got that far.
I've been trying to get my head around bezier curves, and I've ended up at a lot of math sites that are way to dense...and when I look through source code from carts, I don't know exactly what to look to try and work backwards.
Or is trying to figure out curves not worth the trouble if Pico8 will have trouble doing the math for what could be several paths going on at one time...? They would be fixed paths, not really dynamic or changing, so maybe that will help, dunno.
Any links, insight or examples are appreciated. Meanwhile, I'll keep scouring sites hoping something will click.

Gaze into the ever-changing patterns of this psychedelic dimension.
Z & X explore time, cursors explore space.
Feel free to alter/improve this if you wish.
If you figure out a way to make the bottom left half of the 'cells' include a pattern as well, I would love to know. It has something to with the modulo operator. I tried using min() and max() to always modulo the greater value by the smaller, but that' didn't seem to change the look of the pattern, and made everything a whole lot slower.
Thanks for your time. Enjoy! :)

Here is a little simple game I'm working on.
"x" is for changing directions (you can only walk vertically).
I've improved it a bit since last time:
- title screen (very basic at the moment)
- music !
- score
- you can loose lifes
- new levels (3 so far) and challenges (level 2 there are random shots, level 3 you will loose if you reach the bottom of the screen)
- you can try to shoot the fox, after 10 hits you get a new life
- new animations
-
- secret feature
Thanks to morningtoast for the collision engine, and to zep for pico-8.
old version:
[hidden]
It's far from being finished at the moment. For example, you won't loose any life when being hit. I hope to implement new minigames inside, when you reach some achievements (for example after picking 20 carrots).
It's also not very optimised (I'm very noob at this, it's the first time I go so far in developping a graphical game). It is very fun to do anyway.

I bought PICO-8 after I learned about it via PocketCHIP. I've been playing around with it for a couple of weeks now, and finally got started on my first real project. Just a GIF of the current state so far. I've been putting together the various components and systems I'm going to need to complete the game. So far, I've got:
-
Game Component system, including independent components for button handling, timing, and utilities. The whole game is handled via components. The _update() method is 2 lines. _init() and _draw() are 3 lines each. This system is actually based on XNA's game component design (I used to do quite a bit with XNA).
-
Screen Management system - This is one of my game components. It allows me to create separate code entities for various game states and determines which ones should be updated and drawn at any given time. Currently, I have the following screens implemented: splash screen (not in the GIF), title screen, character generation screen, text edit window, pop-up menu, world map screen, and town map screen. Several more still to implement.
-
Save/Load system - The title screen will check for valid save data and offer the "Journey Onward" option if present. I've got about 8 bytes left in my cartdata after accounting for character info, equipment, and story flags.
- Compressed map system - Towns and dungeons are stored as simple RLE compressed strings. All of the maps are stored as ascii drawings in a text file. I've put together a powershell script that reads the text file and generates LUA for pasting into the game to include the maps themselves and other data about the map (world location, name, encounters, etc).
I'm still working on a few of the base systems, including character sheet/inventory system, merchant screen, NPC dialog screen, the combat system, and the dungeon screen.
Hello, I'm back with more punch cards ;)
This time it's a simulated punch card computer (sort of)
If you're not a programmer, you may want to read this:
https://en.wikipedia.org/wiki/Computer#Programs
This isn't a game, it's not fun, and I don't even think it has much educational value, but it might entertain those interested in computer science for literally 5 seconds.
The point is that you can actually program the computer in machine code (a very limited instruction set with 8 instructions). I wouldn't recommend doing so yourself though, there are severe limitations that mean it can pretty much only do HELLO WORLD.

Controls:
x button(X) to select.
D-pad(Arrow keys) to move.
Pretty basic stuff, with an overworld and a (WIP)battle system.
Features:
-Calculates HP, MP, Speed, Strength, Defense, and gold.
-Saving and Loading (Though I'm not using it exactly.)
-Scrolling Overworld.
To-Do:
-Better Music.
-Better Graphics.
-Animation.
-Multiple Enemy encounters.
Leave feedback in the comments, and if anyone wants to take a shot at the music, go ahead. ;)

I'm not sure if this is documented, but I accidentally discovered some neat features of the audio engine while playing Jelpi in corrupted mode.
I noticed that sometimes the music would be affected in a way that couldn't be possible with just the editor. By experimenting a little further I discovered a small section in memory dedicated to effects:
0x5f40: play channel twice slower
0x5f41: a very short delay (cheap reverb/unison simulation)
0x5f42: distortion (rounds the output waveform to min or max depending on which is nearest)
0x5f43: low-pass filter
For each of these values, bits 0 to 3 correspond to channels 1 to 4 respectively (for example, poke(0x5f42,6) will apply distortion to channels 2 and 4). Bits 4 to 7 seem to be unused.
With that in mind, I decided to code a little program that would apply random effects to random tracks until the song becomes completely destroyed. Here's the result (the song is pretty cheesy I have to admit).
Enjoy :)






58 comments






















