A carefully crafted Pico-8 demake of Rareware's ZX Spectrum classic, lost in space and with only your blaster to protect yourself, you must collect all pieces of your spaceship, fuel it up and escape as soon as possible
-Main game and most music/graphics by myself, Coffee Bat
-In-game song 3 by the outstanding Blameitontherobot
-Original game by the amazing Ultimate/Rare
-A couple of ideas and the main inspiration to make this game thanks to Asobitech and their amazing Super Jetpak DX
This is the first game I have made in PICO-8, and by far the most fun I've had making a game. It is a platformer inspired by Celeste. (Original, I know)
This game is actually being made as part of a school project, so any feedback would be much appreciated. Whether bugs I missed or just something you think would improve the game.
Also, the code I've written for this is sort of a mess - we don't talk about it.
I'm very new to linux and raspberry PIs, but I saw that pico 8 had a raspberry pi option so I thought it'd be fun to try it out. All the instructions I saw online looked pretty plug and play so I extracted the folder to the home directory, but when I double clicked the pico8 file a window would briefly pop up then disappear, and upon trying to run it from the command line I got the error message "segmentation fault". Are there any settings I should change? I am using a Raspberry pi 4 4gb model.
Thank you for any help you have.
TL;DR: Do you like your pixels razor-sharp? Do you like PICO-8? Then get this handheld.
This is the new Game & Watch
This is the Game Boy Micro
And this is the new Waveshare GPM280.
Looks good, don't you think?
And it runs PICO-8 perfectly. The screen, oh, yes the screen. In a word: razor-sharp pixels.
128x128 is such an oddball resolution. Practically no screens in use can scale that resolution easily, the only exceptions are 1024x768 screens and the iPhone 4's 960x640 retina screen. The solution to this conundrum? A smartphone-like high DPI screen plus an intelligent scaling algorithm. An approach taken by the upcoming Analogue Pocket for example. But that won't run PICO-8.
Take a look. On the bottom is the pixel-perfect iPhone 4 screen (5x integer scale), on the top is the GPM280 screen. Also notice the 45° diagonals, on the RG280V they don't look right because of uneven scaling. Here they are perfect. (Right-click on this picture to enlarge.)
Here is another comparison (Right-click to enlarge). Oh, yeah, razor-sharp pixels. How is this possible? Again, high DPI: 286 DPI to be exact. That's almost iPhone territory.
A responsive D-Pad with some clickyness and buttons with plenty of travel. All good.
The Pi 3 (in the compute module variant) handles 60 FPS carts with ease. No complaints here.
This one is really unfortunate. You get two hours of play time. The select and start buttons also show the battery status with green, blue and red LEDs. If it's close to drained the LED starts blinking. The battery will only charge when the power button is in the off-position. Try turning off the Wi-Fi when not in use. If it weren't for the battery situation I would declare this to be the perfect PICO-8 handheld.
I didn't manage to add PICO-8 to recalbox but I succeeded with Batocera. That OS is much more polished anyway. It does have out of the box support for PICO-8 but it's an PICO-8 emulator with some compatibility issues, not the real deal. Let's fix that.
I created an nifty installer package so you can install PICO-8 with very few steps. That includes extra features like shortcuts, sharp picture scaling and swappable controls.
Pixelpunker's PICO-8 Installer
How to install
- Download GPM280 DTBO and unzip it to the overlays directory. Edit config.txt and add the following lines to the end of the file:
dtparam=spi=off dtparam=i2c_arm=off gpio=0-27=a2 dtoverlay=dpi24 enable_dpi_lcd=1 display_default_lcd=1 dpi_group=2 dpi_mode=87 display_rotate=3 dpi_output_format=0x7F217 hdmi_timings=480 0 26 16 10 640 0 25 10 15 0 0 0 60 0 32000000 1 extra_transpose_buffer=2 hdmi_ignore_edid=0xa5000080 dtoverlay=gpm280-pwm-audio
Turn on the Game Pi Micro. Once you are on the home screen, access the menu with the menu key and connect to your local Wi-Fi under Network Settings/Hostname
Turn on security under System Settings/Security
- Now reboot under Quit/Restart System. Write down your IP address under Network Settings. Now write down your password under System Settings/Security.
Login to your Lexaloffle-Account and download the PICO-8 zip file for the Raspberry Pi to your downloads folder.
Enter this command in Windows Terminal, Mac Terminal or a Linux Terminal.
It will ask for your password you noted earlier. Now type (and enter your password again)
ssh [email protected]_IP cd /userdata/ wget https://github.com/Pixelpunker/Pico-Host/releases/download/0.1/install-pico8.sh chmod +x install-pico8.sh ./install-pico8.sh
After successful installation the system reboots.
Your new home screen.
PICO-8 is properly installed with the following additional features:
- Sharp scaling
- Left and right triggers additionally function as ❎ and ⭕
- Press select for a screenshot
- Hold select for 0.5 s for a video
Launch PICO-8 in splore mode by choosing 'console' You can also swap controls between "Xbox style" ❎⭕ (which is the PICO-8 default) or "Nintendo Style" ⭕❎.
Browse screenshots and gifs you took with the select key directly on your Game Pi Micro.
Play PICO racer using the shoulder buttons.
Have fun. The fantasy console is no longer a fantasy. It's in your hands.
So, yesterday my brain exploded when I messed around with the new music filters introduced with 0.2.2, and went on a rampage of updating songs in my local carts to use them where neccesary, and just now I changed the music in the hello.p8 demo. I hope you like it!
I'm making a collection of songs called Noclip, which anyone here in the community can use with credit, a bit like ToyBox. Here are the tracks I've made so far, enchanced with 0.2.2 music effects!
Track One: Seen. Not sure what you would do with this one, but surprise me!
Track Two: SysNull. Spacey vibes. An expanded version of a song I made a bit of time ago.
If you use these, comment on the post so that I can see what you've done with them! I'm excited to see the uses of these songs.
I tried making a 60 FPS game and noticed a weird behavior of my PICO-8: it's refresh rate stayed at 29-30 FPS even though the game was supposed to be running on 60 FPS according to stat(7) and CTRL-P widget. Movement looked choppy and the builtin FPS counter (stat(9) and show_fps config) shown 29-30 FPS. My monitor is capable of 60hz refresh rate and my CPU and GPU usage wasn't even remotely close to 100% (or even 8%, which is half of a processor core and can be a limit for single-threaded apps). It works properly on the web version.
P.S.: It works just fine on Linux on the same machine with the same cart and default config.
show_fps 1 foreground_sleep_ms 5 background_sleep_ms 10 host_framerate_control 0
Some stats and readings:
stat(7) and CTRL-P: 60/60 stat(9) and show_fps: ~30 stat(1) and CTRL-P: ~0.3 CPU usage: ~7% GPU usage (3D): ~30%
PICO-8 v.0.2.2 Windows 10 Intel core i7 gen9 Nvidia GeForce GTX (I don't know which exactly but not a bad one) Screen refresh rate 60hz
a standard normal typing game
- a: a
- arrow keys: move/menu select/etc
- b: b
- c: c
- d: d
- dash: -
- e: e
- enter: confirm/begin/etc
- f: f
- g: g
- h: h
- i: i
- j: j
- k: k
- l: l
- m: m
- n: n
- o: o
- p: p
- q: q
- r: r
- s: s
- t: t
- u: u
- v: v
- w: w
- x: x
- y: y
- z: z
Here is a Beta Build of Lil Dozer for testing. Full version to be released Spring 2021. Please be nice and don't steal it.
A WIP where I'm experimenting with making my code as modular as possible for easy unique room creation.
No gameplay to speak of yet, just the ability to open doors, have a shadow in the door light and spawn doors through buttons.
I've seen a significant performance difference between the latest v0.2.2 and v0.2.1b.
For this particular cart, it runs significantly slower on the latest version when measured with a stop watch, but when using the stat(1), the system claims the opposite--i.e. that it's faster. (These are both being run from the .exe on Windows.)
Version stat(1) Stopwatch Timed v0.2.1b 285 30 seconds v0.2.2 219 8 minutes, 14 seconds
I've included the cart for reference.
I started working on a new project and was wondering how i could rotate sprites and came up with this. It's not very efficient but once the rotation is done, the rotated sprite is cached in the sprite sheet. Please use it with care :)
I hope this can be useful to someone else too! Happy coding!