Log In  



Cart [#fawasirudi-0#] | Code | 2019-06-22 | License: CC4-BY-NC-SA | Embed

Here's a small demo we made for Flashback 2019 held in Sydney. There are some firsts (I think... I hope) like the full screen X/Y distorter (at 60 FPS).


code - kometbomb
gfx - ilkke & animal bro
musix - gruber

P.S. I used my very old code that seem to use someone's matrix math functions and I can't find the thread I borrowed them from so thanks and credits to him/her! They're named like rot_x_m() and lookat_m() etc.

P#65344 2019-06-22 18:20

Cart [#45507#] | Code | 2017-10-27 | No License | Embed

Another 0day release from TTT...

J/K. Made this silly little "port" of a classic Amiga cracktro (also seen on MS-DOS) to celebrate 0.1.11.


GFX ......... iLKke
Code .... kometbomb
Music ...... Gruber
P#45508 2017-10-27 11:33 ( Edited 2017-10-27 15:33)

Cart [#42842#] | Code | 2017-07-28 | License: CC4-BY-NC-SA | Embed

Hit Z/(o) to bring up the editor menu!

P#42755 2017-07-24 13:56 ( Edited 2017-07-28 15:37)

Cart [#55135#] | Code | 2018-08-14 | No License | Embed

By now, you most likely have heard kids talking about something called "M-BIRSIO" and sometimes just shout "MM... BIRSIO! MM... BIRSIO!" while drooling. Well, now you can find out what it is by inserting this new exciting cart from Tic Tac Toad in your PICO-8.

MICRO MURDER ( but it's robots so it's OK ) is a game of ballistic extermination for 1 or 2 tactical modules, organic or otherwise. Assert your domination over four pictoresque and extremely resource-rich celestial bodies using a flexible arsenal designed to fit any situation.


* streamlined "artillery duel" gameplay similar to Worms (or so they 
  say, Tic Tac Toad has never heard about any kind of worms except the one 
  in Worm Nom Nom, also available now from Tic Tac Toad)
* a game for 1-2 players
* a sometimes quite cunning AI
* an endless amount of randomly generated levels on four different planets
* tweakable gameplay parameters


MICRO MURDER: But It's Robots So It's OK is an artillery duel game. Your mission is to destroy all enemy robots.

Use the controller to move around. (Up) and (down) changes the aim. (x) to jumps and (o) opens up the popup menu. Hold (o) and push the joypad into any of the four cardinal directions to select options. E.g. hold (o) and (down) to fire.

Try to use the best suitable weapon for different situations. Try to bounce enemy robots into the surrounding water/lava/lemonade in case you can't simply explode them into spare parts. Use the Digger to dig tunnels for you to hide into or shoot through.

If you still are stumped, play a few games against the AI to see useful tactics.


Game by Tic Tac Toad
Code mostly by kometbomb (may contain traces of iLKke)
Art type stuff (gfx & sound) by iLKke (may contain traces of kometbomb)

Edit: Forgot the instruction gif

P#39679 2017-04-15 03:27 ( Edited 2018-11-02 13:12)

I made this small script that takes four PICO-8 gifs and creates a 2x2 mosaic gif (with all the gifs running side by side).


It assumes the default gif settings (256x256, duration is irrelevant as long as all the gifs are of same duration) and thus creates a 512x512 gif. This is very useful for tweets etc. You might want to run some gif optimizer afterwards.

I included a Windows batch file and a shell script so you can run it on any system that PICO-8 supports, as long as you have Imagemagick installed.

How to use (Windows):

mosaic.bat top_left.gif top_right.gif bottom_left.gif bottom_right.gif output.gif

Or on Linux/Mac:

./mosaic.sh top_left.gif top_right.gif bottom_left.gif bottom_right.gif output.gif
P#39001 2017-04-02 11:04 ( Edited 2017-04-03 16:39)

Cart [#38136#] | Code | 2017-03-10 | License: CC4-BY-NC-SA | Embed

Here's a demo cart about how the map is built in Spaceman 8. Corner etc. tiles are picked depending on the placement of tiles.

Some words about it: http://kometbomb.net/2017/03/10/how-levels-are-generated-in-spaceman-8/

P#38137 2017-03-10 12:14 ( Edited 2017-03-10 18:03)

Cart [#38134#] | Code | 2017-03-10 | License: CC4-BY-NC-SA | Embed

Here's a demo cart using the algorithm we used in Spaceman 8.

Some words about it: http://kometbomb.net/2017/03/10/how-levels-are-generated-in-spaceman-8/

P#38135 2017-03-10 12:05 ( Edited 2017-04-16 12:30)

Cart [#37086#] | Code | 2017-02-02 | License: CC4-BY-NC-SA | Embed

Enjoy this port of Omega Race. Another "let's see if I can make a game in an afternoon" joint.


UP = thrust
LEFT/RIGHT = rotate
FIRE = fire
OTHER FIRE = shield

Kill all enemies to advance to the next level. Use the shield to avoid enemy fire and the rotating lazers. Collect yellow coins for the bonus level.

Edit: Removed sarcasm and changed the game name since now it's pretty good game for a few days of work.

P#36863 2017-01-29 13:35 ( Edited 2017-02-06 00:56)

Cart [#35664#] | Code | 2017-01-14 | License: CC4-BY-NC-SA | Embed

I made this simple tool for generating tables for fading colors with pal(). It generates the table and a simple function for setting up.


In the future, I will experiment with stuff like non-linear interpolation and separate speeds for R, G and B.

P#35611 2017-01-13 14:17 ( Edited 2017-06-12 01:17)

Cart [#37216#] | Code | 2017-02-06 | License: CC4-BY-NC-SA | Embed

Here's our latest game we made as Tic Tac Toad. Please enjoy!


Life has been tough on mining colony w4ge-514v3, but you are tougher. Don the helmet of Spaceman 8 and mine the labyrinthine busom of icy spacerocks for gems and haul them back to company collectors. The oxygen supply is scarce and depleting fast, so you have to keep your visits brief. Luckily, your trusty hummingbird-class jetpack is highly manouverable, and will get you to the exit quickly.

Use the hard-earned credits to upgrade your gear in the shop at the end of each day. How much can you earn in a week? Will you even survive or will greed get the best of you? Only one way to find out!


Code & Design by kometbomb
Graphics & Sound by iLKke

P#35231 2017-01-08 04:39 ( Edited 2017-01-08 09:39)

Cart [#34644#] | Code | 2017-01-01 | License: CC4-BY-NC-SA | Embed

P#34646 2017-01-01 03:43 ( Edited 2017-01-01 09:05)

Cart [#33640#] | Code | 2016-12-18 | License: CC4-BY-NC-SA | Embed

P#33641 2016-12-18 11:48 ( Edited 2016-12-19 19:09)

It's a very nice and warm day outside so why not use it to sit inside doing something completely pointless? But sort of fun. So, I created a prototype of Pico-8/Kongregate API integration that uses the GPIO ports to translate Pico-8 scores etc. to the API. Of course, you are not limited to Kongregate, you can use whatever JS API you have access to. Quite easy to roll your own, too.

The idea is that the game updates the GPIO ports and the JS backend polls the ports. The Pico-8 HTML5 export sets the pico8_gpio array and it corresponds addresses 0x5F80... in Pico-8 memory space.

In short: my code in Pico-8 poke()'s a value in ports 0x5F80 and ..81 (we need to split the value into two 8-bit values as you can see in the code below), which is always one larger than the previous value in there. The JS code notices the value has changed and knows it has to read whatever is in the ports and act accordingly. I set a value that tells what the rest of the ports mean, e.g. 0 for a new high score in ports 3 and 4 that has to be posted.

In the game I have a delay after setting the values so that the JS code has enough time to read the values before they change (I set a bunch of these stats at game over). This could and should be handled with the JS setting a value in a port that tells Pico-8 it should continue but I didn't bother to do that.

Check the game on Kongregate, you can see there's my score in the leaderboards to prove it works. ;)

Here's some code, it's just a proof of concept so don't expect anything nice and clean (api.post() would be something like kongregate.submit("score", 2000) in reality):

statsapictr = 0

-- set values in ports

function sethighscore()
  poke(0x5f82, 0) -- 0 = post score
  poke(0x5f83, score % 256) -- low byte
  poke(0x5f84, flr(score / 256)) -- high byte

-- tell JS we have new stuff in the ports it has to post ASAP

function updatestatsapi()
    statsapictr += 1    
    poke(0x5f80,statsapictr % 256)
    poke(0x5f81,flr(statsapictr / 256))

        -- delay to make sure JS has enough time
    for i=0,10 do
        spr(243,0,0) -- show a sprite to show it's doing something, maybe a spinner
        flip() -- flip screen, i.e. wait 1/30th of a second


var pico8_gpio = [];
var pico8_prevGpioCtr = 0;

function doGPIO()
    var ctr = pico8_gpio[0] + pico8_gpio[1] * 256;

    if (ctr != pico8_prevGpioCtr)
        pico8_prevGpioCtr = ctr;

        switch (pico8_gpio[2])
            case 0:
                var score = (pico8_gpio[3] + pico8_gpio[4]*256);
                api.post("score", score);

            case 1: 
                api.post("gameCompleted", true);


    setTimeout(function() { doGPIO(); }, 50); // do this every 50 ms

Just run doGPIO() once and it keeps updating every 50 ms.

P#23664 2016-06-26 08:39 ( Edited 2017-12-05 15:37)

Cart [#23208#] | Code | 2016-06-19 | License: CC4-BY-NC-SA | Embed

You are a worm. Worms love eating fruit, even though it makes them poop. But this is a good thing: poop becomes flowers and flowers bring much joy to the world.

Eat fruit, avoid poop, flowers increase the score multiplier, eating flowers makes the multiplier smaller. Use arrow keys to steer, use Z or X to jump over hazards.

This is a very quick project we did with iLkKe, as Tic Tac Toad. Going to write about the game in my blog in the near future, had so much fun making the game.

The game is also playable at itch.io

Update 1.2:

You can also use LEFT/DOWN and UP/RIGHT to rotate the worm, it's much more comfortable on a Pocket CHIP. Able to skip the level bonus countdown.

Update 1.1:

Fixed some bugs, added realistic hat physics (can pick up a hat you dropped), added a high score table!

P#22254 2016-06-04 09:44 ( Edited 2017-02-28 18:47)

Cart [#20068#] | Code | 2016-04-29 | License: CC4-BY-NC-SA | Embed


Here's my first game for Pico-8 and it's a Pole Position/Enduro/OutRun derivative. You might have already played it on my itch.io page.


  • Day and night
  • Three landscapes
  • Obstacles and jumps
  • A strict time limit
  • See how well you did in the course map overview
  • Really messy source code
  • Terrible sound

I wrote something about it in my blog and if you have something to ask about it I will gladly answer here.

Edit: I'd like to mention I used the ord() function found here, it was a lifesaver.

Update: Now saves high score only when returning to title screen, would continuously write on disk otherwise (due to changes in 0.1.6)

P#19673 2016-04-10 03:49 ( Edited 2018-11-18 18:34)

About | Contact | Updates | Terms of Use
Follow Lexaloffle:        
Generated 2019-06-26 19:05 | 0.092s | 4194k | Q:145