this is where i dump my less good cartridges
i am doing this
- because i want to publish even my less good cartridges
- i also don't want to clutter the BBS, so i put them in the same thread
2022-11-17: Welcome!
i gave up on PICO-8 years ago when i buyed it since i got overwhelmed fast.
now i rediscovered PICO-8 and wanted to try it again, so i did.
this is my first PICO-8 cartridge i ever made.
2022-11-20: Welcome! — special edition
i wanted to make this 'special edition' cartridge since i rediscovered PICO-8 with the making of 'Welcome!' (previous section), so this happened:
when i watched this talk about PICO-8 that i found on the lexaloffle.com PICO-8 resources page, @zep explained how data is stored in PICO-8 cartridges:
> all of the data is stored in the Red Green Blue data bits,
> it's encoded in the low bits of the RGBA channels
so i made this cartridge by recoloring the original cartridge (previous section) with the paint bucket tool in Pixelorama.
since he didn't say how many of the low bits of the RGBA channels are used, i found out myself:
in my first attempt, i recolored the cartridge while keeping only the lowest bit the same as before:
Recolored bits: | ✅✅✅✅ ✅✅✅⬜ |
Unchanged bits: | ⬜⬜⬜⬜ ⬜⬜⬜✅ |
i stopped halfway through to test if the cartridge would load in PICO-8, and the cart was corrupted.
so glad that i saved it as 'welcome_special-edition.p8.png' and didn't overwrite the original 'welcome.p8.png' — although if i did overwrite that cart, i could redownload it from this post (previous section).
in my second attempt, i tested loading and running the 'special edition' cart in PICO-8 very often, and i changed to leaving the lowest Two bits unchanged:
Recolored bits: | ✅✅✅✅ ✅✅⬜⬜ |
Unchanged bits: | ⬜⬜⬜⬜ ⬜⬜✅✅ |
this time, even the finished version of the 'special edition' cart has unchanged PICO-8 data, but a different-looking shell. with roughly 1 to 2 hours of work in each of the 2 attempts, i did it.
to generate the color codes that i needed, i did this in each cycle of color-picking (as needed):
- copy-paste the 'target color' and 'original color' into a Notepad (plain text editor) window, converted from Hex to Binary (in an online converter)
- copy-paste the Binary 'target color' in a third column, but change the low bits of each byte of the RGBA channels to the same-position bits of the 'original color'
- convert the new 'result color' back to Hex — also with an online converter — and use it with the paint bucket tool to replace the 'original color'
here is a comparison of the original cartridge with the new 'special edition':
original | special edition |
---|---|
![]() |
![]() |
so it's the same cartridge as before, but with a blue-green shell.
2022-11-21: Welcome! — special edition 2
since making the special edition cartridge from before (previous section), i realized that i want to make more special edition cartridges soon. but i don't want to make them manually again because doing this manually is tedious.
so i am making a tool named 'Pico-8 cartridge special editioner'. i don't want to publish it yet since it's still too unstable — in the early testing phase after finishing the most basic version that works.
![](/media/42335/pico8-cartridge-special-editioner_testing-screenshot-1.png)
![](/media/42335/pico8-cartridge-special-editioner_testing-screenshot-2.png)
this tool is a User Interface with these steps:
- upload the original Pico-8 cartridge
- upload the Special Edition artwork for the cartridge
- the program automatically combines the images in a similar way how i made my first 'special edition' cartridge manually (previous section).
but because the computer is doing it for me, it's easy and instant (at least in comparison. i still have to make my custom shell for the cart, but now the 'special editioner' tool makes sure the final cart works, so i don't have to)
here is a comparison of both special editions:
special edition 1 (special-editioned manually) | special edition 2 (special-editioned with 'special editioner' tool) |
---|---|
![]() |
![]() |
2022-11-25: the impossible cart
i used GIMP to overlay a gradient with too many colors on a cart's artwork. then i used my special editioner tool (explained in previous section) to make a working cart with it.
i did this to test how the impossible cover image would look like in splore.
the cover image degrades nicely, so thank you to whoever made sure that it's not possible to break PICO-8 with an overly colorful cartridge (and also @zep for making PICO-8 in the first place):
cartridge | shown in splore |
---|---|
![]() |
![]() |
fun fact: the gradient in the cart's program is the same gradient, but degraded in GIMP and then copied by hand into PICO-8 for roughly five hours including breaks:
2022-12-26: Welcome! — WEBP cartridge
WEBP is a better image format than PNG and GIF, because it can store the same quality images in much smaller files.
i found that PICO-8 can save and load WEBP cartridges, but without the label image, and not as BBS carts:
i hope that PICO-8 will soon support WEBP cartridges in the same way as PNG cartridges
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](https://www.lexaloffle.com/bbs/files/15232/me-square.jpg)
Hi @Sosasees:
Regarding your Impossible Cartridge. I did something like this years ago. Needless to say it was categorized as black magic. :)
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/media/64830/2_mepico8.png)
Neat
![](/media/64830/celeste_spec.p8.png)
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/media/42335/sosasees-profile-picture-2024-01-16%20p8_0.png)
@mattu82 now that i finally released my 'cartridge special editioner' (renamed to 'cartridge shell editor' and now 'cartridge shell replacer') (BBS post with info and download):
¿how did you make the 'Celeste special edition' before i released this tool? i find that really impressive
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/media/64830/2_mepico8.png)
@Sosasees I made it using a quick and dirty c# program I wrote. Here's the primary function of it:
static private Bitmap GetNewCart(Bitmap oldcart, Bitmap newimg) { var retval = new Bitmap(oldcart.Width, oldcart.Height); for (int x = 0; x < oldcart.Width; x++) for (int y = 0; y < oldcart.Height; y++) { var datpixel = oldcart.GetPixel(x, y); var imgpixel = newimg.GetPixel(x, y); var datr = datpixel.R % 4; var datg = datpixel.G % 4; var datb = datpixel.B % 4; var data = datpixel.A % 4; var imgr = imgpixel.R >> 2; var imgg = imgpixel.G >> 2; var imgb = imgpixel.B >> 2; var imga = imgpixel.A >> 2; var newr = (imgr << 2) + datr; var newg = (imgg << 2) + datg; var newb = (imgb << 2) + datb; var newa = (imga << 2) + data; retval.SetPixel(x, y, Color.FromArgb(newa, newr, newg, newb)); } return retval; } |
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](https://www.lexaloffle.com/bbs/files/40166/batfoxsona 2018-08-24 v3c square.png)
Looking at these makes me think of the one unauthorized NES cartridge my brother had - they're clearly the same thing but also visually distinct. That is a memory I didn't expect anyone to evoke with PICO-8 - I'm glad this exists!
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/media/42335/sosasees-profile-picture-2024-01-16%20p8_0.png)
@mattu82 so you made your own cartridge shell replacer
i guess that like me, you based the algorithm off section "2022-11-20: Welcome! — special edition".
if this is true, i know that my explaination is understandable, and this makes me very happy
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/media/64830/2_mepico8.png)
@Sosasees Yep. I had been curious how pico-8 encoded data into images and this post laid it out clearly ☺
[Please log in to post a comment]