Archives for April 2018

Pi-to-JAMMA

Posted April 1, 2018

After researching a few mini-PCs last year to play MAME in a JAMMA cab, I ended up with a Raspberry Pi 3. While the PCs were at least several hundred dollars, required Windows, and a power source, the Pi was $35, has no paid licensing, and gets 5v off the JAMMA harness. With growing momentum around Linux game emulation, the Pi seemed well worth experimenting with.

Raspberry Pi 3 with ARpiCADE adapter

I’ve used MAME since the early 2000s, first on a PC and then a Mac, but the Mac experience is clearly second class, sometimes forcing you into some frustrating workarounds and Windows virtualization as a last resort. While it’s ideal to keep an old PC around for emulation/ROM burning/Steam, it’s still entirely possible to throw SDLMAME and some ROMs on a 27″ iMac and have fun. Even simpler, OpenEmu. But when my iMac’s screen died and I moved to a MacBook Pro, playing games became less exciting on a 15″ LCD, especially compared to sitting at a cab.

Connecting the Pi to JAMMA requires a bit of hardware, so I tried out the ARpiCADE, a Pi-to-JAMMA adapter and Raspbian build with 240p output, no scaling or hardware lag, a bumpy but improving menu system, and incredibly dedicated support from its Australian developer “dee2eR” who tirelessly answers questions at KLOV and Aussie Arcade. ARpiCADE is really the hub which pulls together various open source efforts, from the frontend Attract-Mode to a range of emulators like MAME 0.192 and 0.172, AdvanceMAME, MAME4all, RetroArch, and Daphne (Dragon’s Lair!).

Emulator support is decent, though I’m far from current on this stuff. I’d like to say in general if you were happy enough with MAME on your PC, you’ll likely be satisfied with the Pi, but your mileage will vary –I’ve not explored all that many games at this point. Certainly the more familiar you are with a game the more flaws you’ll notice, Pi or otherwise. Running a granular comparison across a few games on a average PC vs the Pi3 would be interesting. One game I know pretty well, Donpachi, doesn’t play on the Pi like the original PCB–I’m unsure how it fairs on a PC. DoDonPachi, released two years later and also on Cave’s first gen 68000 hardware, seems to play accurately from what I’ve seen and heard from others. Truxton II looks and plays great to me, but I don’t have the PCB to compare it to.

Whether the games emulate well enough, they do tend to look pretty great, at least on my Nanao MS8. On the MS9 that’s in my Egret II they’re not quite as sharp and vibrant, but it probably has more wear than the MS8. I do think the MS9, while somewhat smoother, just doesn’t resolve images as nicely.

As of v3.811 setup is now simple enough: download the ARpiCADE disk image, flash onto an SD card (I use ApplePi-Baker), copy game ROMs onto the SD, and insert into the Pi. It’s now so straight forward that I really wonder what the hell I was messing with for all those hours many months back. But then I remember all the ways it needed help, like modifying scripts to force 240p over its 480i default (now a menu option), and spending far too much time getting wifi and ssh working (now both on by default). Very recently I noticed a mention at the bottom of the v3.7 documentation explaining how we finally got wifi working by modifying the blacklist.conf file, a solution that should really be credited to “ktb” on the Pi forums. And even easier than tweaking files through ssh was having the Pi appear in Finder as a shared device. But in the end, dealing with permissions and the slow speed of copying ROMs this way wasn’t really worth it. Though tweaking config files on the fly and sudo reboot is certainly quicker than shuttling the SD card between the Pi and a computer.

Other than maintaining a vertical and horizontal build of working ROMs across two SD cards (at least for now–there must be a one-build solution), the biggest issue that remains after flashing a new disk image is resizing the boot partition in Ubuntu (which seems to fail for me half the time). If the ARpiCADE disk image is smaller than the SD card, you’ll need to resize the partitions in order to take advantage of the extra space. Raspi-config alone will not resize the boot partition. If you’re working on a casual build it may just be easier to use the same size SD card and not expect to be able to load entire libraries of games. If you know of a simpler method please leave a comment.

At times this project nearly drove me to the point of throwing it out the window, but it’s also been interesting to work with the Pi, Linux, and a bit of Ubuntu. It’s kind of amazing to see what a $35 computer can do. I’ve also been testing out a Raspberry Pi Zero ($5) and Zero W (wifi, $10) in hopes of programming a Python script which can blink Atari cone LEDs when credited, effectively replicating Atari’s logic which was built into most of their early 1980s games. If you’re a programmer or know one willing to help, send them my way!

A more detailed walk through can be found in my ARpiCADE notes, which are pretty up to date as of v3.811, and my ROM compatibility list which is not so up to date (also see the official ARpiCADE ROM compatibility list).