PICO-8 0.2.2b 0.2.2c is now up on lexaloffle, Humble, itch.io, and for PocketCHIP.
This is a bug-fixing patch for 0.2.2 -- see that thread for a summary of recent features.
0.2.2b does have a few small features though. You can now use a .lua.png extension with the EXPORT command to get the source code (all tabs) of your cartridge printed out to an image with roughly A4 dimensions. This is intended mostly for visualisation purposes, and lines are cropped to 188 pixels (47 characters) wide. The jelpi demo source code is bigger than I imagined!
EXPORT JELPI.LUA.PNG |

dots3d.p8 is much cuter

There are also some new extcmd() commands for setting screenshot output filenames, and the window title (intended for exported binaries).
I've also added a way to force the pause menu to come up, even if the cartridge is blocking it with poke() trickery. Simply hold the pause button for half a second, and the menu should come up no matter what (it's implemented at a low level). This might be useful when using SPLORE from a sofa, and a keyboard isn't available to terminate stubborn cartridges.
Full list of changes:
[hidden]
v0.2.2c
Fixed: ?"\ac0" starts from d#0 instead of c0 (again -- 0.2.2b was still broken)
Fixed: splore local directory navigation fails when using a relative home path set with -home
Fixed: export .lua.png only shows the first 2730 lines
v0.2.2b
Added: export foo.lua.png to get an image of the cartridge's source code
Added: Pause menu can be forced to appear by holding down pause for 300ms (even if program blocks it)
Added: extcmd("set_filename","foo") -- set the filename of the next screenshot or gif (can include %d)
Added: extcmd("set_title","foo") -- set window title (useful for exported binaries)
Added: Can toggle punyfont mode at command prompt w/ ctrl+p (useful for inspecting puny variable names!)
Changed: Default filename is /untitled.p8 instead of no filename (auto-increments to untitled_1.p8 etc.)
Changed: circ/oval that are not visible cost almost nothing, including circles that contain clipping region
Changed: filled circles/ovals that contain clipping region cost the same as the equivalent rectfill
Changed: shift+enter in code editor only auto-completes block for DO, THEN, REPEAT or FUNCTION
Fixed: ?"\ac0" starts from d#0 instead of c0
Fixed: preprocessor regression when using string at end of ..= statement: if (true) then a..="b" end
Fixed: pressing L / R in paused menu is registered by running program after closing menu
Fixed: printing text in tall mode (?"\^ttall") via commandline can chop off bottom line before scrolling
Fixed: drag-select text with cursor at bottom or top of screen scrolls too fast
Fixed: spurious stat(0) results when using yield() to exit frame instead of flip()
Fixed: line()/tline() sometimes draws pixels on opposite side of screen (0.2.2 regression)
Fixed: line()/tline() fails to draw lines that have x or y coordinates > 32767 pixels apart
Fixed: can peek() more than 8192 values in single call
Fixed: large fill circles (> radius 900) render incorrectly close to vertical center (32-bit builds, web)
Fixed: even-widthed filled ovals with midpoint < 0 is drawn off by 1
Fixed: black pixels in gif / map export not completely black
Fixed: map and spritesheet exporters do not respect current display palette and 0x5F36:0x8 (draw spr 0)
Fixed: code editor: cursor position off by one when selecting character after glyph (0.2.2 regression)
Fixed: code editor: tab names don't show up when 100% punyfont
Fixed: import spritesheet.png failing under MacOS (0.2.2 regression)
Fixed: export single sfx to .wav crashes when contains sfx instrument references










Hide or Risk
Hello, this is my first release of my first game for PICO-8 and I hope you enjoy it.
About the game:
The principle of the game is to hide from the eyes of the catcher. This can only be achieved by reaching the blocks and good timing.
How to play:
- Start your game by pressing X/C
- Press left or right to move.
- Get points for steps to the right. Lose on steps to the left.
- Hide behind blocks and don't get caught.
Credits:
- Music: Dimensional Gate by @gruber_music
- Art, Programming, Sounds: Made by PeanutsFly

So, I'm expanding my previously released map generator. I've added stuff like biomes, biome generation types, so on so on.
The thing is, I'm making this generator because I want to start an RP community with stuff like being able to claim territory.
My problem: The map is too small. 128x128 is not a high enough resolution for this map. I've modified for the map generator to work on 256x256 pixels, but that would mean I would have to take four screenshots and manually stitch them together, which is a very frustrating process.
So, my question is, is it possible to take a 256x256px screenshot?
Cheers.
EDIT: I think it's worth noting that for automatically taking screenshots in my code is done with
extcmd('screen') |
which could be a slight problem.



Trapped in Ms smith's home, you, Mr. Voo, have to escape the trap filled house with as less life as possible
This game was made for the Wowie Jam 3 with the help of many friends!
Stuff:

Credits/Special thanks:
-Most of the game and artwork by myself, Coffeebat
-Amazing ingame music by Blameitontherobot
-Poggers logo by Sinclair




ok, so I'm stumped. I have a table that works fine when I make it in the command line, but is missing a value when I reference it from cart. There are no errors on load of the cart data.
Here is the table:
bomber={ spr={33,34,35}, val=1000, aspd=10, gun=missile, -- table mov=_circles, -- function ebhv=function(self) local e=self if (e.elite>elitecut) then e.val=e.val*4 end end } |
I am using the following command to check the table when loaded:
for k,v in pairs(bomber) do print(k.." "..type(v)) end |
Which returns:
aspd number ebhv function spr table val number mov function |
Whereas pasting the table into command line and running that again returns:
aspd number ebhv function spr table gun table val number mov function |
Finally I made a dummy cart that seems to work as expected.
function check(tbl) for k,v in pairs(tbl) do print(k.." "..type(v)) end end function pew() return null end function _circles() return null end missile={} missile.n="homing" missile.f=pew bomber={ spr={33,34,35}, val=1000, aspd=10, gun=missile, -- table mov=_circles, -- function ebhv=function(self) local e=self if (e.elite>elitecut) then e.val=e.val*4 end end } |

README!
This is a terrain/island generator, based on one of my tweetcarts:
[tweet]
I modified it to automatically do the following things:
- First, run the program as normal.
- When there are no black/empty pixels, start a timer.
-
Once the timer reaches a certain treshold, do the following:
- Automatically make screenshot
- Enable pause menu(you'll see why)
- Reset cart
The reason it pauses after the screenshot is so that when you leave it unattended it will not just make ten thousand different islands without you knowing. Enjoy!
What are the actual steps one must follow to begin scripting in Voxatron?
EDIT
It was right in the API docs
EXAMPLE (global script)
- create a script object, add it to the room, and edit it.
old_draw = _draw function _draw() clv() old_draw() local dz = sin(time())*5 sphere(64,64,32+dz,8,7) end
|