A while back, joshmillard posted Pico Jr, a fantasy-console-within-a-fantasy-console based on these specs:
"- 48*48 pixel four-tone greyscale graphics (so, colors 0, 5, 6, and 7 in the PICO 8 palette)
- 2 channel sound
- dpad and one button (other button could be reserved for meta-game/menu stuff)
- 1 page of sprite sheet
- standard sprite size of 6x6 pixels
- dodgy slow-refresh LCD screen (could simulate this by checking screen buffer every frame and only allowing pixels to move one shade of grey toward whatever the target is)"
I extended Josh's prototype by overwriting most of the Pico-8 functions with wrappers that enforce the Pico Jr limits. For example, if you use pget(12,5), it will give you the value of pixel 12,5 on the Pico Jr screen instead of the Pico-8 screen. It will also give you a color from the Pico Jr palette of {0,1,2,3} instead of the actual Pico-8 values of {0,5,6,7}.
Some functions have been disabled entirely, for example:
- No map support in Pico Jr
- No direct memory access (poke, peek, memcpy, etc.). Sorry tweet-jammers.
- No custom menus
- No cart data (for the time being)
If you try to use any of the disabled functions, like memcpy() or map(), your code will crash with a syntax error.
Other limitations to be aware of:
- I have hardly tested this at all. It's probably full of bugs.
- Put your code into the usual _init(), _update() and _draw() functions. Bare loops won't render correctly. (Sorry again, tweet-jammers.)
- Keep your code between the "your code below" / "your code above" blocks.
- Avoid using function or variable names that begin with two underscores (__). That's how all of the backend functions are named, and if you use that pattern yourself, you might end up overwriting something important.
- I didn't build in Josh's suggestion of 6x6 sprites. All the sprite functions are still based on standard 8x8 sprites.
Here's Josh's original Jump Guy, updated for the new dev kit.
And here's an empty cart, ready for your next portable game:
I hope to come back to this and make an Asteroids clone or something. In the meantime, I hope this makes it easier to make more of these goofy mini-games.
Be the God of Cellular Automata in AutoCell!
Press the buttons and unfold unique patterns created with algorithmic magic!!
Buttons do things, try them!
LRP, I love it!!!
yo dawg I herd you like consoles so I put a console in your console so you can play games while you play games.
play on pocketchip for best effect ;)
older:
v1.2: alternate palettes + tagline (for some reason)
v1.1: latest devkit version + blips & blops
Here I am wanting a 480x272 screen and you guys are shrinking the base on me ! :D
Thanks, ultrabrite. New cart uploaded with those bugs fixed (probably).
I've updated the base cart with some fixes for sfx, pal, palt.
Also, here's a racing game. For some reason the other cars disappear a lot. I don't know why.
@LRP: too bad you ditched the idea of alt palettes, an option for gray/green/blue/amber (0,4,9,10) would have been nice :)
ultrabrite: Main post updated with a new dev kit for you. This fixes the alt palette. You should now be able to update pj.plt and pj.p8plt to use whatever colors you want. I really like the amber palette you suggest. I'm tempted to make it the default, but I'll leave the colors as-is for now.
@LRP: great! I made a few palettes, I think gray, green (0,1,3,11) and amber work best.
also I noticed that cls(c) doesn't always actually use color c...
Diagonal is a possible keystroke. I tried it above and it just showed the fingers animate like I was pushing a single arrow and not two at once like Up/Left, Up/Right, Down/Left, and Down/Right.
Yeah, looks like I broke cls(c) when I fixed alt palette support. I've uploaded a new version that should fix it.
Phony is beautiful, now we need to run phony as a pixel layer in voxatron, so we can have a fantasy phone(phony) in a fantasy console(jr) in a fantasy console(pico) in a fantasy console!(vox). Further more I can run it in a VM just for shits and giggles lol.
[Please log in to post a comment]