Raspberry Pi Floppy Console
At the end of May 2019 I started really wanting a Raspberry Pi portable for playing PICO-8 carts. Since PICO-8 carts are so small and I wanted that physical cartridge feeling, I figured maybe a floppy drive would do the trick! For a portable, this would mean ending up with something that looked ilke a 90s era floppy drive camera.
Sony Camera Boy. pic.twitter.com/rzKOhA2tlS— Arne (@AndroidArts) June 8, 2019
Apparently Arne of androidarts.com was thinking along the same lines right around the same time! I think it was independent, but there’s always the chance I saw his tweet and it was bouncing around in my subconsciousness.
However, since I have no soldering skills and didn’t want to give up on having a floppy drive by springing for something like the GameShell, at the end of June I opted to instead build a PICO-8 console. No portability, but it would prove the concept before I committed too much money or real effort into a Pi portable. And the floppy drive would still provide that vinyl-like feeling of intentional, non-browsing consumption.
- Raspberry Pi
- USB floppy
- Retro Brick case (optional)
To make the Pi behave as console-like as possible, I installed Raspbian on the Pi and set up an LXDE autostart file to run PICO-8 on startup when it finds a cart on the floppy drive. (Note that the user autostart file runs instead of the default.) My custom autostart file and startup script can be found here on GitHub.
Then, to access the floppy drive from within PICO-8, I set up the floppy drive
/media/floppy within fstab and added a link to it from within
the carts folder. Note that I turned off automount since automount stops the
bootup process if the USB floppy drive is empty. Instead, I attempt to mount
it in my startup script above.
echo '/dev/sda /media/floppy vfat owner,group,umask=000,noauto,sync 0 0' | sudo tee -a /etc/fstab ln -s ~/.lexaloffle/pico-8/carts/floppy /media/floppy
To customize the boot process, I just followed this guide and made a new Plymouth theme with the PICO-8 logo as a startup image.
A demonstration: pic.twitter.com/DOM3DDnh3q— mark egli (@markegli) July 6, 2019
PICO-8’s SPLORE doesn't handle navigating the floppy well because it blocks on loading the cart contents for the preview images. This makes navigating the carts on the floppy an exercise in frustration.
To get around the SPLORE limitations, I built a custom launcher to list the carts on the floppy. Using PICO-8’s ability to load one cart from another, you can then load a cart or navigate between carts.
By saving this cart on the SD card and loading it from boot, the console eperience is now complete.
For the full console effect I got the Retro Brick NES-inspired case. It’s larger than most other Lego-style Pi cases, with barely enough room for the floppy drive after a bit of reconfiguration. Luckily, it includes a lot of support bricks that weren’t strickly necessary, which made changing it up pretty easy.
The Retro Brick build
Modified to fit the floppy
Ditching the hinge
This page last updated August 9th, 2019.