Log In  
Follow
andrejtrindade
Cartdata Editor
by andrejtrindade
STAR SPLORE
by andrejtrindade
Tiny Tactics
by andrejtrindade

Cart #hollow_seeker_cartdata-0 | 2025-10-21 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
3

This is a simple fork of Hollow Seeker that saves your hiscore (and prints it on the screen, obviously).

How to play

Go forward in right direction.
Seek a hollow as refuge not to be crushed.
[Z][X]: start/retry game

Implementation Notes

Changes were kept to a minimum, only 10 lines of code added.

Enjoy!

3
2 comments



Cart #cartdata_editor-0 | 2025-10-17 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
5

Warning

This tool overwrites saves from other carts. Make sure you know what you are doing.

Controls

Instructions on which keys or buttons to press are displayed on screen at all times.

Note: pause menu is supressed in keyboard mode, hold ENTER or P for a second to display it.

Context

  • PICO-8 executables save cartdata as text files in the cdata folder.
  • BBS javascript, on the other hand, is limited to your browser's internal storage, which is a lot less convenient for users to access directly.

Purpose

This tool allows you to easily transfer your progress between PICO-8 installations, particularly from/to the BBS. It also allows you to edit your saves on the fly.

[ Continue Reading.. ]

5
0 comments



Link example

Here is a link to Google in a standard paragraph.

  • Here is a link to Google in a bullet list item.
  1. Here is a link to Google in a numbered list item.

Mention example

This post was created by @andrejtrindade.

  1. This post was created by @andrejtrindade.

Bug

Why are links white when they appear in a bullet or numbered list item?

This looks like a bug on the BBS...

2
2 comments



Cart #caroline_cartdata-6 | 2025-10-10 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
4

This is a simple fork of Caroline that saves your progress.

  • Saving happens when you enter a new room
  • Time tracking, collectibles and deaths are also saved
  • You can reset save data in the pause menu

This fork aims to help those who prefer to play in short bursts, like myself.

Caroline is a "Portal demake disguised as a Celeste Classic mod", according to @Meep (one of the authors).

Play using the ESDF keys and a mouse.

Enjoy!

Implementation Notes

  • Changes were kept to a minimum, I counted only 23 lines of code with a diff tool
  • I had to use split() on two tables to stay below the token limit

4
1 comment



500 Featured Carts

Yes, we have just crossed that milestone! Have you ever wondered what kinds of carts don't make it into the featured section of the BBS? Call me crazy, but I have.

So I looked at the 500 top-starred carts (searching for tr:2015-2025) and checked which ones aren't featured. It happens there are only 30! Here they are (with links, in case you want to go check any of them):

  1. (155 stars) Palette-Maker
  2. (147 stars) Foreverred
  3. (134 stars) Super Mario Bros. (Authentic)
  4. (134 stars) Dank Tombs Tech Demo (with full write-up!)
  5. (116 stars) memsplore
  6. (101 stars) How to retrieve mouse coordinates (with demo)
  7. (94 stars) Caroline
  8. (92 stars) Old Site
  9. (90 stars) OLDESTE
  10. (88 stars) Volcana
  11. (87 stars) Super Mario Bros.
  12. (80 stars) Fuji
  13. (80 stars) Adelie
  14. (79 stars) picozelda
  15. (78 stars) From Rust To Ash
  16. (77 stars) Baba Is You Demake [FULL GAME]
  17. (77 stars) Picodex - A Pokemon Battle Sim
  18. (77 stars) [Dialogue Text Box Lib] Dialogue Demo
  19. (75 stars) Pico-8 Tetris
  20. (75 stars) Awake V1.1
  21. (75 stars) Rotating a sprite around its center
  22. (73 stars) Demi Daggers
  23. (71 stars) Squiddy (PICO-1k Jam)
  24. (71 stars) INGESTE: Play Celeste Classic as Kirby!
  25. (71 stars) PICO-RAY V1.0
  26. (70 stars) Super Mario Bros. Map Demo - All Levels in one cart
  27. (69 stars) Super Mario Bros. Demo
  28. (67 stars) Fill Pattern Catalogue
  29. (67 stars) Mega Game launcher
  30. (64 stars) PicoShop Pro

My favorite cart on this list is Caroline. What can I say? I'm not so much into precision platformers, but I do love Portal...

[ Continue Reading.. ]

3
11 comments




This cart is a fork of the original Seinfeld Simulator 1.0 by @Rangee27.

Quality of life improvements

  • You will only see jokes that are not in your "Joke-iary" yet (until you complete it), works both in kid mode and 18+
  • You can disable mouse in the pause menu - in case you enabled it by mistake on a device with no mouse
  • Better contrast on the "Joke-iary" and some other text (title screen / button prompts)
  • Same cartdata ID, so you can switch from the original to this cart and vice versa as you please

I had to do some tweaking to stay below the token and compressed limits, but I tried to keep changes to a minimum. Using a diff tool I only counted about 30 lines of code changed.

[ Continue Reading.. ]

8
2 comments



As the title says, I'd like to know what are the consequences of setting carts as forks.

Here's an example... I submitted STAR SPLORE last month. This week, I got a reply asking for some changes. I wanted to accommodate the request without changing the main cart, so I submitted an alternative version of the cart.

I didn't want to start a new thread for this alternative cart, though. So I just embedded it in a reply on the original thread. I guess that's why the cart doesn't show up in "New Carts", nor does it appear in my profile under "Cartridges".

And that's fine! It's an alternativo cart, I don't want anyone to find it before the main one...

But I noticed that, when I click "Edit" on a cart, there is a "Forks" section. I know what a fork is in GitHub, but what does it mean here?

Should I set this alternative cart as a fork of the original STAR SPLORE? What are the consequences of doing that in the BBS?

2
4 comments



While troubleshooting why unwanted shortcuts were triggering on my handheld, I noticed that map_scancodes does not suppress the original scancode if it corresponds to a modifier key.

For example, you can add the following line to your config.txt:

map_scancodes 4=5,224=6,

This will remap:

  • the A key (scancode 4) to B (scancode 5)
  • the LEFT CTRL key (scancode 224) to C (scancode 6)

Then, download this test cart and run it in PICO-8.

  • when you press the A key, it will detect only scan code 5 (key B)
  • when you press the LEFT CTRL key, it will detect both scancode 6 (key C) and scancode 224 (LEFT CTRL, not supressed).

You can test this with left and right CTRL, ALT and SHIFT.

Keep this in mind when mapping your handheld buttons, especially if they are originally assigned to modifier keys... So you don't end up accidentally triggering unwanted shortcuts.

1
0 comments



Cart #test_scancodes-1 | 2025-08-28 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
1

Note: this cart was mostly based on New Raw Key Reader, from dw817.

This is a very simple tool to show scancodes (and SDL key names) for keys pressed on a keyboard.

This can be useful when remapping handheld buttons. For example, I have an original RG35XX and I'm using the MyMinUI custom firmare. I wasn't satisfied with the default button mappings, so I decided to remap everything from scratch.

First, I commented the map_scancodes line in config.txt and ran this cart.

  • The A button was mapped to scancode 44 (spacebar).

[ Continue Reading.. ]

1
0 comments



While releasing STAR SPLORE, my second cart, I realized that it's nice to change the default title of you carts and its threads.

Here's what happens when you search for "star_splore" in "New Carts", for example.

You get a nice cart title, "STAR SPLORE 2025-08-16". If you click on it, you go to STAR SPLORE's thread.

  • The thread will have a nice title, "STAR SPLORE", which is independent of the cart's version.
  • The cart will have the same nice title as before.
  • Note that both titles are different from the cart's ID (star_splore).

I didn't pay attention to that when I released Tiny Tactics, my first cart.

You can see how it didn't look so nice.

Maybe those titles weren't exactly BAD, but I could do better.

[ Continue Reading.. ]

3
2 comments



Cart #star_splore-2 | 2025-09-16 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
13

It's like browsing "Featured Carts" in SPLORE... But they are ranked by STARs!

Controls

  • ⬅️➡️: previous / next page
  • ⬆️⬇️: previous / next cart
  • 🅾️: filter by game genre or by year
  • ❎: run cart

After you are done with the cart, enter the pause menu and select the last option:
back to ★SPLORE

About

STAR SPLORE aims to help you discover some of the best PICO-8 carts ever made.

  • That's why only featured carts are included.
  • That's also why carts are ranked by stars, the BBS version of "likes".

As imperfect as these metrics may be, they are the ones we have.

[ Continue Reading.. ]

13
26 comments



MyMinUI

I've just discovered MyMinUI, a custom firmware for my original RG 35XX... that has native PICO-8!

Note: MyMinUI is a fork of MinUI, a custom firmware much more people know about. MyMinUI is also available for some other handhelds: Miyoo Mini (and Plus), SJGAM M21 and GameConsole R36s.

Instalation

If you want to install MyMinUI on a SD card and try it for yourself, I have some tips for you. First, grab the latest release and unzip it (don't delete the zip file, you will need it).

The instalation is pretty standard custom firmware stuff, and is well documented in the README.txt file. If you have any doubts, leave a comment below and I will try to help.

Now, for my tips... We will change a few files in your SD card - same card and partition where you copied some files from PICO-8 (Raspberry Pi's version) during the instalation process.

[ Continue Reading.. ]

2
9 comments



In this post I'll try to answer some questions regarding the ❎ and 🅾️ buttons. This is a design decision that came up early when I started making my first PICO-8 game.

I'll consider some well-received PICO-8 games from Nerdy Teachers' 200 Best PICO-8 Games when trying to address these questions. When I do that, I will provide the game's ranking in that list in parethesis, e.g., Celeste (#1).

Glyphs or Letters

  • Question 1: Should I use the ❎ and 🅾️ button glyphs when displaying commands on screen, or should I print letters for the key mappings?

In theory, you should use button glyphs, right? I mean, if you were making a NES game, you would prompt the player to press A or B. You wouldn't try to guess key bindings used by the emulator, even though a NES game released in 2025 has very slim chances of being played on original hardware.

Often, though, reality kicks in. If you upload your game to itch.io, for example, people are playing a browser game. Most may not even know what PICO-8 is or even suspect they need to consider key bindings. They may see "press 🅾️", reach for the O key, nothing happens.

[ Continue Reading.. ]

5
4 comments



I am currently developing my second PICO-8 game. I'm considering adding an option to load my first game directly from the new cart, if the player wants to give it a try.

Both games are single carts, and there is no sort of communication between them. It's a simple load call with a breadcrumb parameter.

I was concerned about cartdata though. Both games use cartdata to store progress, each using its own ID. And the PICO-8 User Manual states, in section 6.11, that "CARTDATA can be called once per cartridge execution".

The wording on the manual indicates that my approach was OK, but I decided to test it anyway, just to make sure.

Only once

First, I simply called cartdata twice to see how PICO-8 would enforce the single call.

cartdata("test_load_1")
cartdata("test_load_2")

This is the error message:

Simulating carts

[ Continue Reading.. ]

1
3 comments



Cart #test_102-8 | 2025-08-26 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
1

A very simple multicart to test:

  • stat(102)
  • load("#bbs_id")
  • load("localfile_or_multicartexport")

I made this test cart because I wanted to know if stat(102) is useful to determine whether I should load another cart from the BBS or as a local / exported file. Spoiler: it's not...

stat(102)

Value returned by stat(102), depending on how the cart is run:

  • number 0 when running .p8 file in PICO-8.
  • number 0 when running cart from SPLORE.
  • number 0 when running Windows .exe standalone.
  • empty string when running .html standalone export directly from filesystem.
  • "www.lexaloffle.com" string when running from BBS forum post.

[ Continue Reading.. ]

1
0 comments



I am currently developing my second PICO-8 game. I'm considering adding an option to load my first game directly from the new cart, if the player wants to give it a try.

I know, from the PICO-8 User Manual (section 6.1), that "BBS carts can be loaded from other BBS carts or local carts, but not from exported carts." But how can I detect from which type of cart the code is running?

stat(102)

I know, from the PICO-8 Wiki, that I can use stat(102) (not officially documented) to gather URL information. For BBS carts, it returns "www.lexaloffle.com". For local carts, it returns 0.

I wrote a simple test cart to investigate a little further.

function _init()
	s102 = stat(102)
end

function _update()
end

function _draw()
	cls()
	color(7)
	print("stat(102):",0,0)
	print("["..s102.."]",0,6)

[ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=169477#p)
1
9 comments



Tiny Tactics Postmortem

A few months ago I discovered PICO-8 and decided to make a game for it. It was a nice experience, and I'm proud of this little turn based, tactics / puzzle game. I'll try to summarize below how I made Tiny Tactics.

I didn't have much spare time to devote to this project (maybe 5 to 10 hours a week), but I think it went pretty smooth. I spent exactly 3 months making the game (from purchasing a license for PICO-8 to exporting the final version of the cart).

You can play the game and download the cart here.

I have also created a project on GitHub. It contains:

  • source code before flattening / compression;
  • spritesheet and map exports;
  • a standalone HTML version;
  • binaries for Windows, Mac, Linux and Raspberry Pi;
  • a walkthrough: GIFs I recorded using PICO-8, showing my solutions for each level;

[ Continue Reading.. ]

6
5 comments



Cart #tiny_tactics-5 | 2025-04-17 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
27

Tiny Tactics

A turn based, tactics / puzzle game for PICO-8

Controls

  • When you start the game for the first time it will show you the controls and ask if you are using a keyboard. Your answer will be saved, and appropriate button / key labels will be used on the menus.
  • Shorter levels (like the first few ones) will also show the controls at the bottom so you get used to them.
  • If you want to change labels from keys to buttons or vice-versa later on, just select controls on the title screen.

Features

  • 81 levels
  • 9 enemy types
  • 2 hours of gameplay (first playthrough estimate)

[ Continue Reading.. ]

27
44 comments