This is Pico-8 running on the Clockwork Pi GameShell, a new hackable handheld game machine. GameShell has an ARM architecture, runs Linux, and works with the Raspberry Pi version of Pico-8.
Featuring a "modular" design, GameShell comes as a easy-to-assemble kit. You need side cutters or a hobby knife to separate the plastic pieces from their sprues and clean up the ends. Beyond that, the parts go together without tools. There are five modules: the main board, the screen, the battery, the keypad, and the speakers. Each module is enclosed in a plastic case with an easy-to-open lid. The modules are connected with little cables, and they all fit snugly in a Gameboy-sized case. There's a headphone jack and a microUSB port for charging, as well as on-board Wifi. The keypad includes D-pad, ABXY buttons, select, start, menu, and shift. You can also get a separate expansion module for shoulder buttons on the back.
I posted some unboxing photos to Twitter: https://twitter.com/dan_sanderson/status/1022265067142696961
The build quality is excellent, and the kit is designed to be foolproof. Unlike the RaspiBoy, everything fits together easily, with no fiddly bits to get wrong. Everything is injection molded and has a comfortable, traditional Gameboy feel in a thinner lighter form factor. Game play with the membrane-style buttons is fast and fluid. The 320x240 color screen is sharp, and while a little small for games expecting a desktop display, GBA and Pico-8 games are just the right size.
The microSD card comes preloaded with a Debian Linux derivative, known as "clockwork OS." It's just Debian with kernel patches applied for the hardware. The OS boots to a simple Launcher interface that you can use from the gamepad. The Launcher has big icons, and it's easy to add more simply by adding new files in certain places. All OS customizations are open source and on Github, and the Launcher is just a Python app based on Pygame that runs in user space.
GameShell also comes with RetroArch preinstalled, along with full versions of Cave Story and freeDM (a Doom clone) to get started. These aren't actually the best examples because they expect a bigger screen, but they'll get you playing right away. Though it's a little under-documented for beginners (and the user community is starting to fill the gaps), it's easy enough to copy over MAME, GBA, and NES ROMs, install new RetroArch cores, and even load up music files for the built-in music player.
The wifi reception is surprisingly weak. I have to be a few feet from the wireless router to stay connected, and character throughput over an ssh connection is too laggy for anything more than simple administrative commands or light edits. (I recommend a clever network-aware text editor running on another computer, such as Emacs Tramp, for extensive on-device file editing.) You can replace the kernel to get ethernet over USB, and you can disable wifi power-save mode to get better wifi throughput. I haven't tried these yet, nor have I tried connecting a keyboard to the microUSB port (not sure if that'd even work).
Setting up Pico-8
Update, June 2019: ClockworkPi has recently added a built-in PICO-8 installer for the GameShell! A while ago, I wrote a tutorial for adding it manually. They have since automated the tutorial and made it a default menu option! See the updated tutorial for the new installation procedure:
https://github.com/clockworkpi/GameShellDocs/wiki/Running-PICO-8-on-the-GameShell
The best so far
Like many, I've wanted a hackable homebrew game machine for so long that I've backed pretty much every Kickstarter on the subject, and have built a few of my own with 3D printed cases and soldering kits. RaspiBoy came really close to the ideal feature set with injection molded plastic, membrane buttons, and a stock RaspPi with all ports exposed, but fell down on a few design details in the keypad. I'm looking forward to 8b Craft's RetroStone, with a larger screen, HDMI out, all the USB and ethernet ports, and full pre-assembly. Shipping soon.
Until then, the Clockwork Pi GameShell holds the crown as the best hackable handheld. I could play on this hardware for days, everything is well designed for ease of use, and underneath it's a very familiar Linux/X11 set-up. You could probably do the whole RetroPie/EmulationStation thing here, but the simple Launcher with RetroArch is so much cleaner, and feels just right on the hardware. Cave Story is already on there, and it took me mere minutes to find some GBA ROMs and start playing. While the screen is a little small for on-device hacking without a second computer, I'm tempted to wish for an upgraded mainboard with Bluetooth keyboard/mouse capability, and maybe a little kickstand.
As an aside, it's also one of the better "modular" designs I've seen. I've been skeptical about modular educational kits for a while, mostly because I was dissatisfied with choices other kits make in where to apply abstraction and proprietary interfaces. Clockwork Pi is just getting started so there's not a lot else you can do with these modules yet, but I can already tell they're making smart simple design choices for the module interfaces and hardware designs. I'm looking forward to seeing where this goes.
Oh, a quick postscript that just occurred to me: GameShell does a soft shutdown, and it's accessible from the launcher menu. More hacked-together RaspPi handhelds have a physical power switch that you're not allowed to touch until you've fully wound down the operating system somehow. With GameShell, you just exit out to the Launcher and select the "PowerOff" option. It closes the OS and powers off.
Slightly better would be the thing we're used to from our phones and other portable devices running full OSes where there's a hardware accessible OS overlay menu that can do this at any time. But just the lack of a forbidden power switch adds a ton of usability and a feeling of safety that we take for granted from commercial devices.
(I recently found a short-run product that adds soft shutdown to any RaspPi and I immediately bought five of them. I'll be eager to add them to my projects!)
Oh wow, thanks for this informative post Dan. I'm glad to hear you weren't disappointed with it.
So, the burning question I have is... what's the PICO-8 performance like? Can it run demanding carts at 60 FPS (e.g. Dank Tomb, Rez's demos, etc.?)
Dank Tomb plays fine. It somehow never occurred to me that the smaller platforms might run the more CPU intensive games at a sluggish pace, so I'm not sure if what I'm seeing is what you would consider full performance. It seems mostly comparable to the desktop version to me. I notice slight sluggishness but I can't tell if that's actual lag. It's definitely playable.
Send me links to other candidates and I can see if there's a noticeable difference.
I'm thrilled to report that ClockworkPi took my PICO-8 installation tutorial, automated it, and made it a default menu option for the GameShell! I have updated the tutorial (and this post) accordingly.
krystman also now has a video walkthrough of the new procedure based on the installer. Krystian mentioned this in another post but for completeness, it's here: https://www.youtube.com/watch?v=ltBVKFw88zw
This is a generally well-made device, but I'm finding the screen way too small. It's a shame, as otherwise it's very well made, is one of the best looking hobbyist handhelds ever designed, and the dpad is surprising good - something a lot of handhelds get wrong.
it's true the screen is too tiny. A port of pico-8 on homebrew for 3DS would be great! (There is such a port for TIC-80 btw!)
[Please log in to post a comment]