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).


Posted February 3, 2015

In late October we moved from the piss soaked streets of San Francisco to Berkeley, where the breeze is more veggie pizzeria than urine, unless you’re downtown of course. After 18 years I was ready to cross the bay, and always fond of Berkeley, a cozy town frozen in perpetual cycles of autumn and summer. The cottages and Maybeck Craftsmans tucked back into the oak and eucalyptus trees make walks in our neighborhood feel like being inside a pop-up book. Just with more earth-tone slacks, walking sticks and Merrell hiking boots.

We were also desperate for more space, which has been fantastic and worth the 30-minute BART ride. Still, there’s no spare bedroom or finished sprawling basement to hold all our gaming crap. There is a basement of sorts though, and a little room down there which I’m turning into a workspace for projects like a Gyruss restoration.

My old game consoles were originally on an IKEA Kallax (not to be confused with KALX, endorsed) which took up a load of space. I replaced this with an acrylic media cabinet which is rather packed but doesn’t have a hovering presence or block the cabinets behind it. Cable mangement wasn’t easy for nine consoles and took a few tries to get tidy. I ended up drilling a hole in the wall nearby in order to pass an HDMI cable from an iMac to the television for MAME, which works nicely. I think Battle Garegga emulated is arguably better than the Saturn port (unless your Saturn is hooked up to a BVM).

In early October the Duo-R came back RGB modded, so I finally played through Castlevania: Rondo of Blood, which was, duh, totally awesome. Initially after moving I didn’t play too much, but that’s picked up a bit. I also slowed down on buying games, but last week grabbed three Saturn and one GBA games: Rayman, Silhouette Mirage (ehh), The Game Paradise!, and Klonoa: Empire of Dreams.

At night over the past couple weeks I’ve been playing Castlevania: Symphony of the Night, watching the wind blow through the trees outside our windows (trees!), and appreciating every day.

Emulation on a Plasma Redux

Posted March 31, 2014

I’ve been researching SuperGuns a bit recently, certainly intrigued by the thought of having a stack of JAMMA PCBs in the corner to pull from. Especially shmups. While adding to my Saturn and Dreamcast wishlists, I’ll often check out the arcade originals in MAME. And shmups tend to play great. But after moving a lot of my retrogaming to the tv, where the actual consoles and a comfy couch replace the need to hunch over a desk, I thought I’d give the iMac-to-plasma another go for MAME, which is really the only thing I’m still using emulation for.

In a previous post I mentioned MAME shaders not rendering once it reached the plasma. And honestly, they give the image a quality that’s very much missing without them. Trying it again this weekend, it worked fine, and actually looked pretty good. Really good. What changed? Since then, there was an update to SDLmame, and we’ve replaced our previous plasma with a Panasonic TC-P55VT60 (grab one before Panasonic shuts off the tap!). The cable is just a simple Mini-DisplayPort-to-HDMI adapter ($10-15). The sound is fine, not super impressive. The iMac is only passing 2-speaker stereo for me, even after trying optical, but it’s not like those games are in Dolby (though this was still the case even when trying DVDs that did have Dolby 5.1).

Playing Gunbird 2 was a ton of fun, with vertical scanlines and a wireless gamepad rounding it out. As a vertical shmup, and no ability to go Tate with this shockingly non-rotatable 55″ plasma, the game still occupies a large portion of the screen, certainly bigger than any Tate-ready LCD I’d have. Is it the buttery consistency of a PVM? No way, what are you, crazy?

GCW Zero

Posted March 3, 2014

About a year ago I rediscovered my nearly forgotten Dingoo A320, the notorious Chinese handheld trojan horse whose principle payload is console and arcade game emulation. Ignoring the frustrating memories I had setting it up, I dusted it off and started again, by way of Windows, by way of Parallels. The Dingoo’s small, about the size of two iPhone 5’s sandwiched together, with a 2.8″ LCD at 320×240, 360MHz CPU, 32MB RAM, 4GB of internal storage and a MiniSD slot, a battery that lasts forever, and an FM tuner. Even for 2009 this was low tech, but it’s affordability, and perhaps lack of competition at the time, gave traction to the unfortunately named Dingoo. Pre-Neo Geo X Metal Slug in your pocket. Even Amazon sold it.

There have been endless variations by other manufacturers, with larger screens and juicier specs, many of which look like the PSP Slim, which incidentally, also runs emulators with a modest amount of work. Metal Slug looked even better, but the emulation community seemed less matured.

Then in 2013 came the Kickstarter for the GCW Zero. Created by Justin Barwick, the GCW was the first American born effort at a handheld device created specifically for game emulation. Using a 1GHz MIPS processor and 512MB RAM, it runs Linux (OpenDingux), has a 3.5″ LCD at 320×240 in glorious 4:3 (“ideal for retro gaming”), 16GB of internal storage and a MicroSD slot. The specs felt sufficient, but what really got me excited were videos of the GCW in action by qbertaddict1, who I’d wager single handedly sold more units than by any other means. Nick Nillo gives a closer perspective from GCW’s camp, right up to his final thoughts on the project, post-launch. While they were initially tough to find, you can now order them through sites like Think Geek.

As the GCW is Linux-based, there’s a healthy developer community around an extensive library of emulators: Atari, NES, SNES, Genesis, Sega CD, TurboGrafx-16, MAME, Neo Geo, MSX1/MSX2, DOS, Game Boy/GBC/GBA, Neo Geo Pocket Color, Lynx, and likely even more niche platforms. Most work quite well with minimal fuss, including excellent sound emulation, which is a vast improvement over the Dingoo. It feels comfortable in your hands, with responsive buttons including a standard gamepad, analog stick, shoulder buttons, accelerometer, and, fortunately, no fussy touch screen. Loading games is quick over WiFi, which is a nice touch, though USB is obviously faster for larger uploads. While there hasn’t been a firmware update since October, 2013, the Dingoonity forums remain an active and vital resource for emulators and support.

When turned on, the GCW displays about four seconds of Linux boot process, then a clean and customizable icon-based interface. Most emulators offer their own configuration options, including save states. I spent many hours playing the prerequisite games, from 8-bit Super Mario Bros., Castlevania and Zelda, to Out Run, Ghouls ‘n Ghosts, and of course, Metal Slug. While console and handheld are generally solid, as with most arcade emulation your mileage will vary. Even Sega CD games like Popful Mail play great once the appropriate bios files are present (in the case of the emulator PicoDrive, in the hidden .picodrive folder of course!).

At the top of my wish list would be a larger screen, and two analog sticks rather than the one, along with wider analog support. The build quality is pretty decent but could be improved, though I realize this would drive up the cost. I had the sticky gamepad issue that seemed to plague many early units, which graphite lubricant fixed (just don’t get it on the screen’s plastic cover). A real sleep mode rather than the screen simply turning off would be nice, hopefully coming later through a firmware update.

And I see a value in more homebrew games, especially if Justin Barwick hopes to give the GCW an air of legitimacy. A rather good demo of the yet-to-be-released platformer Unnamed Monkey Game is included, which plays a bit like a sea green Super Mario Bros. There are several others but most seem comparable to mediocre iOS creations rather than the allure of a Game Boy adventure.

The GCW is a fun and promising device. Sometimes I just stare at it in my hands, amazed at its versatility, the power to put entire catalogs from dozens of gaming systems in your pocket. Maybe this much range and potential clouds one’s vision in a way, almost too good to be true. For some folks, the effort required, not to mention the ethical ambiguities, may dampen some of the GCW’s shine. But that’s ok, there are numerous next-gen Mario Bros. games for sale, and I love them too.

Video Game Emulation on the Mac

Posted December 28, 2013

While I’ve been preoccupied with schemes of obtaining a full-sized Robotron or Galaga ’88 for our apartment, and jealously watching others pack their basements with 50 games, I’ve also been having fun at least playing these games on my iMac. Writing that makes me wince of course, as the beautifully warped glow of an arcade monitor is the antithesis of a 27″ LCD. But this is what I’ve got to work with at the moment. Especially since measuring our elevator and realizing its opening is only 25″ wide, making all but the slimmest cabarets impossible. I suppose there’s the option of dollying it up the stairs, but there’s something about 7 floors that starts to make this sort of ridiculous.

Emulation on the Mac is an afterthought to the scene, but it’s still very possible. Returning to this after a few failed attempts years back, I almost gave up again and started considering buying a cheap PC or a Mac mini running Windows 7. But I hated the idea of maintaining a Windows machine, which would essentially hook up to my iMac’s screen anyway, so I kept at it until I found a working solution. This required many painful hours of digging through clumsy forums with hot tempered men. I get why they’re so angry though, this stuff can be a pain in the ass. Still, what’s been accomplished over the past 15 years in arcade and console emulation is pretty impressive.

I think the two largest obstacles are finding a decent front-end so you’re not wading through folders of files — not exactly like walking through an arcade — and MAME. The just released OpenEmu addresses the first, and does it with the ease of using pre-bloat iTunes. OpenEmu also comes with emulators for 12 systems built-in (though not yet MAME), as well as automatically populating your games with screenshots, typically a laborious task, though I would like to see the option of having both box art as well as in-game screenshots. I’d also like preferences to tweak the game window and shaders, and probably less likely, the ability to add your own choice of emulator.

OpenEmu’s going to be a great option for a lot of Mac users, but for now I’m going to stick with the setup I’ve been using for a few months that’s worked well for me. For a front-end I’m using EMUlaunch, which is hard to recommend considering the author discontinued it in 2008. But once you step back and survey the landscape, it’s a fairly powerful and customizable little app. Pros: fully configurable, supports 15 game systems using your choice of emulator, and fills your screen with a kiosk-like menu system listing games coupled to 1-2 screenshots. It puts you in the mood to game, which I don’t think OpenEmu does just yet. Cons: fully configurable means you go find what you think is the best emulator for a particular system, tweak the shit out of it, and hope it works with your games (though this is largely true for game emulation in general). This can take many hours per system if you’re finicky. Also, the UI is very un-Mac-like and sluggish; even idle, as in no emulators are running, it consistently sips 12% of CPU cycles. But it works, and everything else I’ve tried, OpenEmu aside, has been awful. Plus, it runs MAME.

I would gladly pay for an updated version if he considered continuing development and charging for it — EMUlaunch was written by one guy, it’s not open source like OpenEmu. On a sidenote, I’ve reached out to the author on a couple of occasions and he was nice enough to respond. But you’re likely to find everything you need from his setup video and the sort of hidden FAQ.

If you want to use a gamepad to control EMUlaunch and play games, which really is the only way to go, try plugging in an old PS3/4 controller, or a generic USB gamepad, both of which work great. No drivers required for the PS3 controller as it syncs via Bluetooth, and I think this works equally well with Xbox controllers. To control a front-end with your controller though you’ll want to use something like Joystick Mapper, which is $5 in the Mac App Store. I also configured it to quit the running emulator by triggering the right-two shoulder buttons. And optionally, if you want to really speed up the process of adding new games to EMUlaunch, try a Keyboard Maestro macro. This may seem like overkill, but I recommend it. This screenshot shows how I set mine up; you’ll have to redo the coordinates though unless you’re using a 27″ iMac at native resolution.

Choosing an emulator can be a subjective call, though in some instances there’s clearly a winner. These are what have worked for me:

  • NES – Nestopia
  • Sega Genesis – Genesis Plus
  • Sega 32X & CD – Kega Fusion
  • TurboGrafx-16 – MagicEngine
  • Arcade – SDLmame or Mame OS X

By far, the fussiest emulators are for MAME. If you have a front-end that will launch it, or don’t mind Terminal, I’d highly suggest SDLmame. It has the closest parity with the officially developed MAME for the PC and all-in-all is pretty solid. Still, here’s a few tips that have come in handy and were tough to pin down.

If you notice any vertical tearing in games, set waitvsync and syncrefresh to 1 in mame.ini. A good test is Narc, as the scrolling buildings in the background were noticeably affected.

If SDLmame crashes and you happen to lose the key/controller mapping you’ve painstakingly added in MAME, make sure mame.ini has the correct cfg path.

Shaders: a GLSL (OpenGL) shader pack can make a huge difference, adding a bit of scanlines and curvature resembling a CRT. Some may feel these are gimmicky, but honestly unless you’re MAMEing through a CRT in an old cabinet, this is the next best thing. I avoided it for a long time, then tried it and can’t imagine playing games on an LCD without it.

I like sairuk’s variation shader pack with these tweaks to /osd/crt-geom.vsh:

CRTgamma = 2.0;
overscan = vec2(1.00,1.00);
R = 3.5;
const vec2 angle = vec2(0.0,-0.00);
cornersize = 0.01;

I briefly piped my iMac to a 42″ plasma through a Mini-DisplayPort-to-HDMI adapter, but you’ll lose the shader benefits, and frankly games looked better with shaders on the iMac than blown up even larger on an HDTV. Still, it works and would be fun at parties. Update: Shaders can work fine.

There you have it. Go play some old games!

Intel NUC

Posted September 20, 2013

A project I’d like to begin in a few months is to move gaming emulation off of my iMac to a dedicated Windows 7 box. There would certainly be many obvious benefits to this, but honestly the most rewarding part would be Hyperspin. I don’t currently have the space for a full arcade cabinet, and can’t picture myself standing up to play games for any real length of time, so all I really need is a headless device to connect to a plasma television.

Something simple, small and affordable. This isn’t a task requiring some bonkers custom water-cooled gaming rig with red and blue LEDs and dry ice. We’re talking pixely Simon Belmont here for the most part (ok, and NARC), not modern gen or even last gen gaming. Initially I considered an old Mac mini running Bootcamp, but then started noticing compact PCs at cheaper prices, such as the Intel NUC. For $300 you get an Intel Core i3, but you’ll need to install your own memory and hard drive, say 8GB of DIMMs for $70 and a 128GB mSATA for $140. And $3 for a missing power cord. And for that $500 you get 3 USB 2.0, 1 Thunderbolt and 1 HDMI.

For $600 the current Mac mini offers an Intel Core i5, same Intel HD Graphics 4000, 500GB hard drive, 4 USB 3.0, 1 Thunderbolt, 1 Firewire 800, 802.11n, SDXC, IR, Bluetooth, and audio in and out. It’s also assembled and likely comes with a power cable. The only benefit I see to the NUC seems to be SSD support for a $300 base, while Apple only offers it on their $800 Mac mini at an additional cost of $300 for 256GB. But considering Windows 7 would eat up a suggested ~50GB, that certainly puts a dent in the NUCs [not optional] SSD.

Where’s the Mac mini Windows equivalent.

Starting Again

Posted August 30, 2013

The ad, likely created on my electric Brother typewriter, said something like: NES, SNES, Genesis, and TurboGrafx-16 video game consoles for sale. I suggested they be bought as package deals with the dozens of games I didn’t want to try selling one-by-one. Many dozens! I had my mom post the ad at work and soon all but the TurboGrafx-16 were gone. I don’t think her coworkers knew what a TG-16 was. I probably wouldn’t have either at the time if it weren’t for Electronic Gaming Monthly, GamePro and other magazines filling in the juicy details. Released in North American in 1989, the TG-16 barely held shelf space in the central Illinois stores I shopped in. And now, 24 years later, it’s the system I most regret selling. Of course, I regret selling them all, especially the games; I can still see the boxes taped to my bedroom door and walls.

The TG-16 was pretty flawed: the pack-in game Keith Courage in Alpha Zones stunk (at least until you transported to the underworld), one controller port, RF output (both remedied only by pricey add-ons), small work RAM, an 8-bit CPU in an emerging fully-16-bit market, hardware-limited single-layer background scrolling, mismanaged marketing and the lost potential of great games that never made it out of Japan (or arrived censored). Still, the games looked and sounded beautiful and stood apart from the competing Sega Genesis (with its classy frosted plastic box sleeves) and was two years ahead of the SNES. The Legendary Axe, Blazing Lazers, R-Type, Bonk’s Adventure, Akumajou Dracula X: Chi no Rondo, and later, CD-ROM releases like Ys, Gates of Thunder and the SuperGrafx Ghouls ‘n Ghosts.

It’s nostalgia for this system, and its fourth generation peers, that’s led me down this path again. While emulation is fun and addictive (even on a Mac), soon you’re thinking about everything from homemade MAME cabinets to professionally built ones, running frontends from this, to modest open source projects, to the insane HyperSpin (when Forbes gets a heads up you know frontends have arrived). But at some point you simply turn to eBay and start buying the stuff all over again. And tracking down those games (boxes extra). And finally considering that Neo Geo you’ve always wanted. Then begins the PCB quest.