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
How to reproduce
- execute code:
print("a") (nil or print)("b") |
- outputs:
A runtime error line 1 tab 0 print("a") attempt to call a number value at line 1 (tab 0) |
note that print("a") is correctly executed regardless of the error being reported on that line!
Workaround
print("a") local fn=nil or print fn("b") |
Expected:
-- save to p8.rom format cstore(0,0,0x4300,"test.p8.rom") |
Outcome (bug): test.p8.rom is actually a png file!!
The _env (lower case) keyword is no longer supported:
example cart: https://www.lexaloffle.com/bbs/?tid=48907
likely a general bugs on upper/lower case remapping.
Marking as resolved - this is a "feature" of printh to stop at \0.
Solution to export p8scii to clipboard is given here: https://www.lexaloffle.com/bbs/?tid=38692
Repro cart:
Outcome:
- p8scii correctly copies bytes on screen
- bug: clipboard gets only a truncated command (should be 612 chars)
Note: works as expected if background is not 0
The new poke to set map start cannot be applied to 0x20.
eg:
— 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) |
Holiday season, stuck at home waiting to open presents?
Despair snow more, a play of totally accurate bowling will enjoy the day!
Devlog
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"!

Changelog
1.1 fixed: invalid "spare" message when producing a strike
Credits:
- 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...)
BBS Edition to celebrate year 1 of POOM release!
(limited to 1 level - sorry!)
Enjoy full game at: https://freds72.itch.io/poom
Controls

Alternate scheme (select from controls menu):

Devlog
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
Credits
Art+Design+Music: @paranoidcactus
Code: @freds72
Changes
- added: Jelpi Spotter credit :)
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.
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.
How to reproduce:
- register custom menu entry
- run game with an endless while/flip loop
bug: menu item code is never triggered
It is not possible to present actual keys being used by pico in game.
Pico8 keyconfig can be used to remap keys.
Proposal:
keyconfig id [player] returns the character being used for button id and player (default 0) |
How to reproduce:
- launch cart
- set custom screen palette:
pal({140,1,139,3,4,132,133,7,6,134,5,8,2,9,10},1) |
- load data:
reload(0,0,0x4300,"cart2.p8") |
- 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)
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" |
Thick line drawing routine (as a reply to @JadeLombax Twitter).
Manual:
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 |
Example:
-- 4 pixel wide white line linefill(45,34,67,96,2,7) |
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:
How to reproduce:
- switch to spritesheet
- select pen tool
- draw
- middle-mouse click to pan
- draw does nothing outside the initial zone

How to reproduce:
-- outputs zero local b=band(nil,4) -- throws error (arithmetic on field ?) local b=nil<<4 |
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
how to reproduce:
for i=1,n do i<<5 end |
Output:
or
Repro cart:
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)
Cheers
View Older Posts