Log In  
BBS > Lexaloffle Community Superblog
This is a combined feed of all Lexaloffle user blogs. For Lexaloffle-related news, see @zep's blog.

All | Following | PICO-8 | Voxatron | General | Off-site
:: Unfold ::

Cart #mesehijafu-0 | 2022-11-22 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

this is a simple celeste classic mod, but i might add some more to it!

P#121164 2022-11-22 13:11
:: Unfold ::

Cart #tdfw-4 | 2022-11-23 | Code ▽ | Embed ▽ | No License

I was so preoccupied with whether I could, I didn’t stop to think if I should.

v4: utilized memory to make the audio clip longer

P#121152 2022-11-22 04:37 ( Edited 2022-11-23 01:50)
:: Unfold ::

Cart #thegodhandisreal-1 | 2022-11-22 | Code ▽ | Embed ▽ | No License

One more! πŸ˜…

P#121148 2022-11-22 03:20 ( Edited 2022-11-22 14:29)
:: Unfold ::

Cart #beyond32767-2 | 2022-11-21 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
(v02 11-21-22)
TO LOAD THIS PICO-8 CART, in immediate mode, type: load #beyond32767

Use the joystick to navigate this cart.

Press UP to increase the score with a random value of 1 to 1000.
Press DOWN to decrease the score with a random value of 1 to 1000.
Press LEFT to reset the score back to zero (0).
Press RIGHT to set the score to exactly 32767. The standard upper limit.

Be aware that the score is saved every single frame. This is not a slow process and occurs almost immediately. So when you reboot the cart or come back to it later, it will contain the last value you had in it. Please see the sourcecode for more notes and details.

Run the code above and see that it is indeed counting beyond 32767 and in fact can go all the way up to 2,147,483,647 - so 2-billion and then some is not so bad to keep track of a player's score ! :)

The other method is given to us thanks to @GPI. While this has been used many times over in previous games for different systems and consoles all the way back to the original arcade, it is important for you to understand how it works, its method and simplicity of coding.

Quite simply you are visually adding 00 to the end of your score so when you add 1 to SCORE it appears as if you added 100. A sample cart follows:

Cart #doublezeroes-1 | 2022-11-21 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
(v01 11-21-22)
TO LOAD THIS PICO-8 CART, in immediate mode, type: load #doublezeroes

Press UP to visually increase the score by 100.
Press DOWN to visually decrease the score by 100.
Press LEFT to reset the score back to zero (0).
Press RIGHT to set the score to appear as 32700.

Be aware when you press RIGHT it is only changing the score to 327, not 32700. So you can =count= past 32767 this way.

The first cart above takes advantage of the fact that ZEP has already granted us long integer numbers already, albeit a little tricky to access through the tostr() and tonum() function.

Examine the code to both of these and you might find it simpler to code than the standard method of writing a function that saves 2-different variables for the 8-digits of a score to get past the 32767 number limit.


P#121134 2022-11-21 20:45
:: Unfold ::

Cart #jokejobki-0 | 2022-11-21 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
No music, no gameplay, just a demake of an old meme

P#121133 2022-11-21 20:10 ( Edited 2022-11-21 20:11)
:: Unfold ::

I tried making a map editor, and it starts to work quite nice.
After I made the video, I added showing the used palette, render the spritemap accordingly and search for any palette array in code. It does not parse loose PAL commands, but you can always add a bogus array declaration with 15 or 16 colour numbers.
It also makes grading student work a lot easier....

P#121131 2022-11-21 20:04
:: Unfold ::

Cart #voxeltestflight-0 | 2022-11-21 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Here's a little test project that I made to try out very simple rendering from a height map. It uses code similar to a raycaster, but checks the height at regular distances all along the ray. It renders from front to back, with an algorithm to stop it drawing over anything previously drawn. It uses the diamond-square algorithm to generate the terrain height map, and reads from a chunk of sprite memory to texture the ground.

Arrow keys move the camera. There's no game mechanics, or functionality beyond just flying around. I'm not ruling out coming back to this, but I think my curiosity about these sorts of systems is satisfied for now. I have even more respect for people who have made fun and playable games out of this sort of tech!

P#121109 2022-11-21 17:13
:: Unfold ::

I teach game desing using Pico-8, and we ran into a lot of problems with version mismatches, the well known "future version" nag.

Can this check be removed? Worst scenario is that a game throws an error on a non supported command, which is 0.0001% chance of happening with the basic stuff students create.

P#121108 2022-11-21 16:35
:: Unfold ::

Cart #alieninvaders-0 | 2022-11-21 | Code ▽ | Embed ▽ | No License

Welcome to my first game : Alien Invaders ! Just an other space invaders game

Tell us your score !

P#121102 2022-11-21 10:56
:: Unfold ::

I'm new to PICO-8 so please forgive me if something simlar has already been posted (I searched and couldn't find what I wanted)

I wanted to be able to draw on the map and then have some of those map tiles animated.

The following code will animate a map tile by copying memory from a number of sprites to a main sprite which you draw on the map.

The main sprite must be immediatly followed by the animation frames, and (for simplicity of code) all frames must be on the same row of the sprite sheet. This gives a max of 15 frames of animation in a row, with 1 main sprite.

Animation is by rotation (frame 1,2,3,4,1,2,3,4 etc) if you want ping-pong (1,2,3,4,3,2,1,2,3,4 etc) you'll need to tweak the code.

Please forgive my code, I've never used LUA before - I'm used to Atari BASIC and 6502 Assembler. I'm sure this can be done better, so if someone more experianced with LUA would like to re-write it then that would be great.

Cart #zorubegoh-0 | 2022-11-21 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

There are 5 paramters of map_animator{a,b,c,d,e}

a=sprite number to animate
b=number of frames
c=current frame (set this to 1, the function will change it)
d=speed (1= every frame, 2=every 2 frames etc. if you set this to 0 the animation will stop)
e=speed counter (set it to 0, function will change it)

if you want multiple tiles to animate then add an additional group of 5 parameters

You'll need to call it once for every tile that animates, so if you have 2 tiles you do:


Hope this is useful for someone.

edit. If you don't want to use up all your sprite sheet with frames you could store the animation frames data in a table and copy it to the main tile and just have your main tile in the sprite sheet. If I'm correct in the way that integers are stored then it would take 4 tokens per frame.

edit2: I just realised that strings cost same tokens regardless of how big they are, so you could use a single string to store as many frames as you want for minimal tokens.

P#121099 2022-11-21 09:14 ( Edited 2022-11-21 11:49)
:: Unfold ::

Cart #picotuner-1 | 2022-11-21 | Code ▽ | Embed ▽ | No License

A cart I wrote to experiment with the 0x808 serial port. Arrow keys adjust the frequency and volume of the sin wav being written to the port. A graph of the samples written each frame is displayed to the screen.

Revision 1:
Added some enhancements:
Added several waveforms besides sine which can be cycled using πŸ…ΎοΈβŽ
Tuned to C4 = 256 Hz rather than A4 = 440 Hz to have a nice 12 cycles per frame synced initially
Updated graph to distinguish between points and the lines between them and added a zero line
Displaying the min and max of current waveform (useful for testing that new waveforms stay in range)

P#121097 2022-11-21 07:31 ( Edited 2022-11-21 17:47)
:: Unfold ::

Cart #aurapower-0 | 2022-11-21 | Code ▽ | Embed ▽ | No License

Hi everyone, I wrote this song over the weekend, I hope you like it! πŸ˜€

P#121087 2022-11-21 00:44
:: Unfold ::

I've found that even with my small collection of gamepad/controllers being hooked up to various devices, that the default mappings on gamepads differ widely. It made it hard to me to know which button to label as which in my games.

So if you just plug in your gamepad and boot up PICO8, which buttons map to which keys?

Naturally, it's gonna vary but based on my own controllers and a very unscientific survey on Twitter, I've come to accept that the B button on a gamepad maps to Z on keyboard, and A button maps to X on keyboard.

Like so:

Obviously, you can remap the buttons and all that jazz but out of the box, this seems to be the common config. This is how my Buffalo gamepad is when plugged into my Windows machine...and gotta say, it makes sense. The B button is left of the A button, just like the Z key is left of the X key on my keyboard.

What have you found with your various controllers and gamepads? Maybe this thread can serve as an index of controllers and how they map to PICO8 by default. Just make sure to outline the brand of controller and the device you're using it with.

P#121079 2022-11-20 21:16
:: Unfold ::

the current version of PICO-8 (0.2.5) for Windows has white window title bars:

the white title bar is distracting, no matter if app colors are set to light mode or dark mode in Windows settings.

this mockup made in Microsoft Paint shows the Windows title bars in dark colors from the PICO-8 palette:

and here is a much more coarse hand-pixeled mockup of how the colors could look like:

  • Inactive window's title bar (right)
    • background: PICO-8 color #0
    • foreground: PICO-8 color #6
  • Active window's title bar (left)
    • background: PICO-8 color #1
    • foreground: PICO-8 color #7
P#72567 2022-11-20 14:47
:: Unfold ::

バージョン 2 - VERSION 3 - FINAL


P#121023 2022-11-19 23:37 ( Edited 2022-11-22 02:52)
:: Unfold ::

Over the past few weeks I've been working on Celia, a TAS tool for PICO-8 based on picolove, and it's finally ready for its initial release

Celia comes with 2 tas tools, one that should work for any PICO-8 cart (with some caveats, in the repository readme), and one that's more specialized, built for Celeste and mods. The tas tool code is layed out in a way where you can extend it to create tas tools for specific games, enhancing the normal functionality, so it also doubles as a tasing "framework" (api documentation coming soon).

Celia is based on my personal fork of picolove, Which has much better compatibility with PICO-8 carts than other forks, from what I've seen.

I'd love to hear any feedback, bug reports, and feature requests/suggestions. In addition, if you make a tas using Celia, feel free to post it here, I'd love to see it!

As a demonstration of the tas tool, I made a tas of Get Out of this Dungeon by @Insanus, which you can check out here

Happy TASing!

P#121017 2022-11-19 22:01 ( Edited 2022-11-19 22:16)
:: Unfold ::

Cart #casey_zaag-0 | 2022-11-19 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Zaag is pretending to be a lost 1980s vector arcade game. Blast the zoids and cleanse the Tau.

How to play

As an arcade game, Zaag of course asks you to dodge and blast enemies. Classic arcade difficulty.


Your blaster has an initial charge up time, so focus on staying alive at the start of each Tau. Look at the tail of each zoid to get an idea of their speed and direction. Your tele is ready immediately, but has a long cooldown.

If using a game controller, use the D-pad instead of the joystick. You don't want to hit tele or flip by accident.

Two player mode

Zaag supports two-player co-op. Enable two-player mode at the title screen by pressing any key on controller 2. Look out for friendly fire!

Death replays

Zaag uses the built-in gif recorder to save instant replays of your deaths (in the pause menu). The Pico-8's gif-maker is amazing—I'm surprised every game isn't using it.


This is my first Pico-8 title! It was inspired by Omega Zone by @kometbomb, Asteroids, and other brutal vector arcade games. It's indebted to @slainte for this explanation of _env in Lua

P#121013 2022-11-19 21:07
:: Unfold ::



Cart #smb1allstars-0 | 2022-11-19 | Code ▽ | Embed ▽ | No License

P#120995 2022-11-19 17:10
:: Unfold ::

Cart #bdepsoja-3 | 2022-11-19 | Code ▽ | Embed ▽ | No License

3 min score attack Shooter!


How to Play

  • X or Z Button : Shot

  • Power-up 2 levels.

  • Closer to the enemy, can fire shots faster.

  • Destroy your enemies faster,get a bonus of up to 12x.

  • Time expires when 3 minutes elapse.



KENJI MIZUTA(programming, music compose, and other)

twitter ID:@suidengetsu

P#120987 2022-11-19 12:43 ( Edited 2022-11-19 16:14)
:: Unfold ::

A game about escaping a dungeon, one room at a time.

Cart #pathofagni-0 | 2022-11-18 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Arrow keys to move and aim
z/c jump
x/v fire(ball)


  • Progress is saved whenever you enter a new room or defeat a boss, so if you get stuck you can come back later
  • You can reset the current room, toggle music, or reset your whole progress from the menu (press p or enter)
  • You can hold x, press the arrow keys to aim your fireball, then release x to shoot
  • You may find a room too difficult to beat right now. Please take a break and come back - I know you can do it!


  • 24 carefully designed rooms to overcome, with
  • 8 types of enemies and obstacles, and
  • 3 unique boss fights
  • All original sprites, levels, music, sfx (and code)

Mini devlog

This is my first completed pico-8 game.
About a year ago I decided to make a simple platformer built around shooting fireballs.
I'm the kind of person who has trouble finishing projects, so you already know I dropped it after a while to work on something else.

A few months ago I decided to revisit the game with the goal of finishing it no matter what.
This took a lot of time, way more than I expected!

I ran into major problems when I encountered the token limit, and had to do some massive refactoring.
In the end I still had to do a lot of the typical tricks (multiple assignments, hardcoding stuff, etc) to keep the token count down, which was kind of frustrating.
This did force me to reduce scope and actually finish the game though.

I had several friends playtest the game during development, which allowed me to iterate on the mechanics and levels.
I wanted the game to feel rather challenging for the average player, but always fair and possible to overcome.

I hope some of you find it fun :)

If you find the game too easy, please play on mobile for more of a challenge (not a joke)

P#120888 2022-11-19 05:28
View Older Posts
Follow Lexaloffle:          
Generated 2022-12-04 08:18:51 | 0.158s | Q:88