Log In  

Old enough to have known the golden age of Amstrad and Amiga ;)
Still own a few Tilt and Joystick magazine (yeah, I am french).
Professional software architect, hobbyist gamedev.

Game & experiments repo: https://github.com/freds72

Twitter account: https://twitter.com/FSouchu

The new poke to set map start cannot be applied to 0x20.

— does nothing :[
poke(0x5f56, 0x24)

for small maps, the 0x2000 ‘hardware’ map area cannot be reached in full:

— hw map
poke(0x5f56, 0x20)
— say tiles are starting after a large 32x32 map
— set width
poke(0x5f57, 2)
— yikes, cannot set y offset (>256)
poke(0x5f3b, 32*32\2)
P#102894 2021-12-16 07:51 ( Edited 2021-12-16 07:55)

Holiday season, stuck at home waiting to open presents?
Despair snow more, a play of totally accurate bowling will enjoy the day!

Cart #freds72_bowling-5 | 2021-12-15 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA


Codebase expands from Ghost Rally, no longer limited to a single dynamic/static response.
Collision hulls are limited to solid rectangles to benefit from simplified overlapping tests and clipping maths.
The whole engine could be plugged into any 3d engine if you don't mind the staggering token cost :/

Sources are available at: https://github.com/freds72/chamboultout

The game went through multiple iterations (initial idea was a "chamboultout"), including odd things like:

or a "Santa Bombers"!


1.1 fixed: invalid "spare" message when producing a strike


  • Physic code & articles by Randy Gaul: qu3e
  • Physic articles & talks from Dirk Gregorious: Contacts Talk
  • Radix sort by James Edge ( @jimmi)
  • Secret Discord team ( @Jusiv, @markgammed...)
P#102722 2021-12-14 06:16 ( Edited 2021-12-18 21:03)

Cart #poom_0-9 | 2022-01-03 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

BBS Edition to celebrate year 1 of POOM release!
(limited to 1 level - sorry!)

Enjoy full game at: https://freds72.itch.io/poom


Alternate scheme (select from controls menu):


Game is "multi-cart", using 0x8000 region filled with raw data from 2 carts (poom_0+poom_1).

Engine details: https://freds72.itch.io/poom/devlog/241700/journey-to-poom


Art+Design+Music: @paranoidcactus
Code: @freds72


  • added: Jelpi Spotter credit :)
P#101541 2021-12-05 13:04 ( Edited 2022-01-03 20:59)

See repro cart - unless I am totally wrong on my software tline, pico8 tline ("hw tline") is not correctly rendering lines with arbitrary slopes.

Software version eventually converge toward correct pattern, tline does not.

Cart #rikegukawu-0 | 2021-06-20 | Code ▽ | Embed ▽ | No License

P#93773 2021-06-20 08:25 ( Edited 2021-06-20 08:25)

stat(31) fails to report any key mapped to an accentuated character (ex: on AZERTY keyboard, 2 is mapped to key "é").
It prevents support for diverse keyboard layouts.

Suggest to have a raw keyboard stat value to report key number.

Cart #goyonusuha-0 | 2021-04-09 | Code ▽ | Embed ▽ | No License

P#90300 2021-04-09 20:06 ( Edited 2021-04-09 20:09)

How to reproduce:

  • register custom menu entry
  • run game with an endless while/flip loop

bug: menu item code is never triggered

Cart #gijenijato-0 | 2021-01-01 | Code ▽ | Embed ▽ | No License

P#86023 2021-01-01 14:16 ( Edited 2021-01-01 14:17)

It is not possible to present actual keys being used by pico in game.
Pico8 keyconfig can be used to remap keys.


keyconfig id [player]
returns the character being used for button id and player (default 0)
P#85463 2020-12-16 08:31

How to reproduce:

  • launch cart
  • set custom screen palette:
  • load data:
  • while data gets processed, hit "pause"
  • bug: screen palette gets reset

Can be reproduced on POOM on the loading screen (https://freds72.itch.io/poom)

P#85389 2020-12-14 20:57 ( Edited 2020-12-14 21:00)

Using -export command to automate multi cart package building and blocked by a number of bugs:

  • unable to specify HTML plate path (only works if export is actually performed from home folder)
  • inconsistent path parameters between bin and html exports:
# works for html
pico8.exe carts\cart_0.p8 -home . -export "game_alpha.html -p my_plate cart_1.p8 cart_2.p8"
# doesn't work for bin
pico8.exe carts\cart_0.p8 -home . -export "game_alpha.bin cart_1.p8 cart_2.p8"
# works for bin
cd carts
pico8.exe cart_0.p8 -export "game_alpha.bin cart_1.p8 cart_2.p8"
  • incomplete js generated unless export is run from carts folder
# produces broken js
pico8.exe carts\cart_0.p8 -home . -export "game_alpha.html -p my_plate cart_1.p8 cart_2.p8"
P#83543 2020-10-31 14:01

Thick line drawing routine (as a reply to @JadeLombax Twitter).

Cart #rabogemeri-0 | 2020-07-29 | Code ▽ | Embed ▽ | No License


linefill x0 y0 x1 y1 r [col]
draw a 2*r pixel wide line
note: r must be >= 0.5 to produce meaningful results
note: the code uses sub-pixel precision rasterization, allowing smooth movement


-- 4 pixel wide white line
P#80095 2020-07-29 16:32 ( Edited 2020-07-29 16:35)

introduced in 0.2.0d
how to reproduce:

  • call tline with a start point outside of screen boundaries
  • tline starts at 0 without adjusting lookup coordinates

repro cart:

Cart #kuwirapima-0 | 2020-04-24 | Code ▽ | Embed ▽ | No License

P#75284 2020-04-24 12:30 ( Edited 2020-04-24 12:33)

How to reproduce:

  • switch to spritesheet
  • select pen tool
  • draw
  • middle-mouse click to pan
  • draw does nothing outside the initial zone
P#74884 2020-04-17 15:52

How to reproduce:

-- outputs zero
local b=band(nil,4)
-- throws error (arithmetic on field ?)
local b=nil<<4
P#74869 2020-04-17 07:07

How to reproduce:

  • cart with 3 includes
#include includes/bold.lua
#include includes/bigscore.lua
some other code
#include includes/tquad.lua
  • reports invalid 'printb' not found (included in bold.lua)
  • info produces random output:
  • ctrl-r clears the error and runs the cart ok
P#74868 2020-04-17 07:00 ( Edited 2020-04-17 07:01)

how to reproduce:

for i=1,n do



Repro cart:

Cart #towakowibo-0 | 2020-04-17 | Code ▽ | Embed ▽ | No License

P#74867 2020-04-17 06:36

Multicart is really a nice expansion feature, to offer content beyond the 32K boundary.
However, with reload not supporting BBS-hosted carts, large games are banned from BBS.

Is that something considered in the pico roadmap to bring back multicart games to the "official" forums?

Note that supporting more than a couple of data carts will require rework of the BBS file management.

  • support for upload many files at once
  • support for listing cart identifiers
  • support for headless export of p8.png (limited to html/bin at time of writing)
  • ability to assign same id pattern to many carts (ex: vracing_0... vracing_10)


P#73670 2020-03-04 19:53

As per documentation, reload does not support BBS carts.
However, the function fails without any error while trying:

-- does nothing (or not??)

Could the function reports an error in such case?

P#73597 2020-03-01 21:42 ( Edited 2020-03-04 19:54)

On Chrome: Version 79.0.3945.88 (64 bits)
How to reproduce:

  • navigate to any game
  • click on "code" dropdown
  • page becomes unresponsive (cannot be selected, game cannot be launched...)

Not reproduced on Edge (and apparently on Firefox - cannot test)

P#71715 2020-01-02 21:05 ( Edited 2020-01-02 21:48)

Cart #freds72_snow-3 | 2019-12-08 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Winter is coming (as every year actually...), time for some skiing!
Enjoy going down the slope, trying to beat your previous track record or freeriding skills!

Grab coins for some extra time bonus - watch out for off track hazards!
Your polar jacket can sustain a couple of direct hits, avoid trees anyway...

Note: there is no end racing line - you will loose :] question is how much time will you last?


  • Left/Right: control direction
  • c: jump (hold to charge)
  • x: restart (if stuck)
  • follow GPS pointer if lost


  • blue: easy
  • red: moderate, with side tracks. Practice your tricks.
  • black: heavy slope, with side tracks. Tricks or time out :)

About the PICO-8 Advent Calendar

This winter another group of PICO-8 elves has worked hard to release a shiny new toy every day in December. Check out the Pico-8 Advent Calendar 2019 each day for a new surprise!

There's even more festive fun waiting on last year's calendar! https://www.lexaloffle.com/bbs/?tid=32388

Happy Holidays!


Before I joined the ranks of the Advent Calendar 2019, @johanp, @p01 and others were toying with terrain generation - resulting in this:

With the theme being set to winter, I had this prototype ready to test the idea:

The gameplay evolved from some endless runner to something more akin a time attack game.
Thanks to feedback from early testers, and several gameplay changes, I think I have something that is fun to play and challenging enough!

Source code (+unminified version): https://github.com/freds72/midwinter

Update 1.3

  • updated: high level gameplay :]
  • know bug: minor visual artifacts on black track (due to the way I cull terrain)


  • Advent Calendar folks! ( @enargy :)
  • Midwinter mask: Andrew Elkerton (I guess...)
  • intro music: @gruber_music
  • trifill: @p01
P#70497 2019-12-02 19:39 ( Edited 2019-12-08 18:18)

Cart #ellipsefill-0 | 2019-08-20 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

A little experiment with filled ellipse, supporting any rotation angle (the tricky part!).
The code is moderately fast as it finds the root of the ellipse equation to get the segment extent for each row.

Car headlight example use:

P#66809 2019-08-20 20:47

View Older Posts
Follow Lexaloffle:        
Generated 2022-08-17 02:17:22 | 0.163s | Q:78