Holiday at the Old Arcade

There has been a pretty incredible community of developers, lately, creating entirely new and original titles for old ‘70s, ‘80s, and ‘90s gaming devices. If you happened to still own one, you could bring out your dusty old Atari VCS from 1977 and find any number of brand new games for it on AtariAge.com, for example, that have been developed just this year. If the NES was your console, you’ll find a collection of new home-brew NES games on itch.io. New Commodore 64 games can be found there as well.

In fact, almost any old system you can think of (ColecoVision, Intellivision, ZX Spectrum, Gameboy, and even Amiga) have new games that are being developed for them now.

It turns out these games are a ton of fun to play, especially on the original hardware. If you can find original hardware that is still working, that is. Luckily, most of these games include downloadable ROM files that you can play in emulators on modern computers, too.

I’ve been doing my small part to try and support all of this great new development (finding time to discover and play retro games in your spare time is hard work!) and lately I’ve been wanting to take all of these games I’ve been collecting and organize them a little better. Make them easier to play.

It seemed like a perfectly fine way to spend a holiday break.

In Search of the Spirit
of Christmas Flynn’s

OpenAI’s idea of what Flynn’s arcade might look like today.

As most Mac users can tell you, there isn’t quite as much love for us when it comes to organizing and playing retro games on our iMacs and MacBooks as there are for Windows or Raspberry Pi users. There are some really nice emulators that have been developed and ported to the Mac by some smart engineers, so Mac users can play just about every old retro and home-brew game that Windows and Linux users can play. When it comes to “front-ends,” though, that let you easily access and play those games in one place, Mac users are usually left with more awkward solutions to get them up and running.

I was hoping for something a little better.

What I was really hoping for was something that might be able to evoke the great spirit of the fabled Flynn’s arcade in some way. I was wanting a fun arcade museum, of sorts, where I could give the games I loved a real pride-of-place, and where I could play all the new games I had been collecting from one easy spot.

It would be nice to run this new retro museum on our living room TV, too, so that my wife and I and our friends could enjoy some retro gaming on the weekends, if we wanted to.

The final version of “The Old Arcade” retro gaming museum I wrote in SwiftUI. Here, showcasing some of the greatest arcade games that ever existed.

Always looking for an excuse to practice SwiftUI, I set out on my holiday break to try and build my own personal gaming front-end and retro museum. Something I could run on a spare Mac mini we had lying around, or could play on my MacBook whenever I needed a break from work.

This was something I had been tinkering with for a few years. It was time to finally finish it.

With the spirit of Flynn’s Arcade as inspiration, I came up with these requirements to work from (developers always need requirements, even for holiday side-projects)…

  1. The front-end needed to provide a flexible way to organize all of the list of games into logical categories so that they could be properly showcased.

  2. It needed to be able to present this exhibit of games in their best light, using whatever high-quality visuals I could find for them.

  3. It needed to provide a nice and easy way to view any supplemental materials that might have accompanied the games (game manuals, magazine ads, etc.), to help present and preserve their story.

  4. It needed to be able to launch different types of emulators. Each game runs in its own emulator, often requiring its own configuration options to run it with.

  5. Being able to view a PDF of a game’s manual allows you to look up what the game’s controls are, but I wanted the front-end to provide a little more convenient way to see what those controls were, at a glance, before launching a game.

  6. It needed a visual indicator to show when a valid ROM was available to be played.

  7. It needed to be able to run in a safe, full-screen “kiosk” mode so that it could be set up as a safe, dedicate environment connected to a TV.

  8. I wanted it to look polished, professional, and hopefully convey the feel of an old 80’s arcade museum, using colorful themes and fun imagery.

  9. Finally, it needed to fully support using a gamepad to use it.

Options to enable full-screen and kiosk modes allows the front-end to be set up as a controlled, dedicated environment on a TV.

Gamepad Support

Most retro games are best played using a joystick or gamepad, so the front-end needed to function fully under gamepad control, too, so that you could continue to use it without needing a mouse or keyboard. Even the game manuals needed to allow paging with the gamepad so that game instructions could be easily read from the couch.


Easy access to supplemental materials helps provide access to a game’s history and story.

Icons help indicates what supplemental info is available for each game.

A game’s controls can be quickly viewed before playing.

A built-in PDF reader allows viewing game manuals, even with a gamepad.

A gamepad icon appears to let you know when a gamepad is connected and available to use. A keyboard is shown when it’s not.

A Place to Play

Title screen for “A Pig Quest”, a new Commodore 64 game, published in 2021 by Protovision.

Two of the pages found inside the fun game manual included with “A Pig Quest”.

The Atari 2600 never had a version of Galaga to play when it was being sold. Champ Games released a port as “Galagon” in 2019.

Most of the new home-brew games being developed and sold for old hardware today include a copy of the digital ROM file with the purchase so that you can download and run them in modern emulators.

A Pig Quest,” for example, is a fantastic game created by Antonio Savona, Mauricet, and Aldo and Caetano Chiummo for the Commodore 64, and published by Protovision in 2021. Along with a beautifully illustrated game manual, the game comes with a ROM file with the purchase (in this case, a digital copy of a Commodore 64 cartridge file), which I can have the front-end launch using the VICE emulator.

Manual cover art for “Galagon”.

Galagon” is another example of a new game for the Atari 2600, created by Champ Games. They have been putting out some really impressive new titles for that technically-challenged old device, and they’ve also been include some nice manuals and artwork to go along with them.

It’s amazing how much fun something as simple as a well-designed game manual can add to a game’s experience.

A Play icon appears when the selected game has a ROM available to play.

For games that have valid ROMs available, a Play icon appears indicating that the game can be launched and played by the front-end.

A Museum to Wander

* Games, including games emulated and ran from ROM files, require having a proper license to play them.

A print ad in French for the Atari 2600 version Pac-Man. “Ghosts do exist, Pac-Man manages them.”

I wanted my little museum to be a showcase for all of the retro games that had meant something to me throughout the years, not just the ones I owned ROMs for and could play now.* I tried to accomplish this by providing a special spot for them, too, and then tracking down the best supplementary materials I could find to represent them with—game manuals in PDF form, scanned images of their packaging, print ads and flyers that had been used to promote them, etc., etc.

For these games, the front-end became more of a history museum and art gallery.

I really liked the print ad Atari ran in France, for example, when it launched Pac-Man. “Ghosts do exist, Pac-Man manages them.“ Or at least I think that’s the translation. (Managing ghosts does seem a bit formal for a game description, and something I might be loosing in the translation, but a fun way to think about Pac-Man nonetheless.)

Mattel’s ad comparing “Major League Baseball” on the Intellivision to Atari’s “Home Run” on the 2600.

Some of the old Intellivision ads were another fun example. Back when they were in fierce competition with each other, Mattel had ran a legendary campaign featuring sports writer George Plimpton, comparing Intellivision’s “Major League Baseball” to Atari’s “Home Run”, and it had been incredibly effective. Atari was eventually forced to come out with a new “RealSports” series with more realistic graphics and gameplay.

And did you know Atari once had a campaign in the U.K. for Battle Zone, Dig-Dug, Centipede and Moon Patrol that featured some really great comic book style print pieces? I had no idea…

Taken from a printed brochure to promote the Atari 400 and 800 computers.

The gaming hardware, themselves, also had some nice marketing materials created for them. Especially the Atari 400/800 computers, sold by Warner Communications. The front-end museum became the perfect place to preserve and organize that kind of stuff to.

There was so much imagination and creativity that went into promoting these old games and gaming devices. Being able to create a place to collect, preserve, and showcase some of it turned out to be the next best thing to playing the games, and just as fun.

Curating the Games to Showcase

It became pretty easy to find a way to convey the wonder of these games and give them their pride-of-place in the museum. All I had to do was select some of the games I thought best represented an old system, and then present them prominently using their original artwork and screenshots.

With the Atari 2600, for example, I simply arranged images of the boxes the games came in, showing off the spectrum of colors and artwork from their covers.

A typo in the original “Ghosts’n Goblins” arcade marquee? Or was this how it was originally titled.

For the arcade games, I used images of their original marquees, adding a simple lighting effect behind the selected game to make it look like it was lit up and turned on in the arcade.

All of the artwork from these old marquees were brilliant. Moon Patrol, Tempest, Asteroids, and the original Ghosts’n Goblins marquees were a few of my favorites.

If you ever want to take a deeper dive into the arcade’s past, Bitmap Books has put together an amazing collection of arcade artwork they call “Artcade”. I highly recommend it.

For the NES, SNES, and Sega Genesis games, they all came in boxes of consistent size and design, all with fun illustrations on their covers that could be used to represent those games.

For a time, Atari continued the tradition with their 8-bit computer software that they had started with their Atari 2600 by creating fun illustrations for their box covers.

For the old computers, such as the Atari 400/800 and the Commodore 64, and for the ColecoVision and Intellivision and Odyssey 2 games, I opted for finding screenshots to represent them, instead of trying to use their packaging materials. The quality of the packaging for many of those particular games had been a bit less consistent and much harder to find.

Some of the games did have some incredibly iconic packaging, though, so I made sure to include those visuals as supplemental materials.

It took a little time finding and selecting quality images, and then editing them down a bit to make them look polished and consistent, but luckily there are some really great sites out there to help. And once I had, the images provided a vivid display of retro-gaming history...

Providing Some Story Behind the Games

To really exhibit these old games properly, though, it helped to be able to see some of their original packaging, marketing, and game manuals too. The front-end provides a way to access both a game’s instruction manual (using a built-in PDF viewer with gamepad support), and selected packaging, flyers, and ads that had accompanied them…

The back of boxes for NES, SNES, and Genesis games often contained important backstory for playing the game.

For the dedicated gaming consoles, such as the NES and Sega Genesis, the best supplemental materials were usually the backs of the boxes that the games came in, so that’s what I featured in the exhibits for those games. The Cover Project was an invaluable resource for this.

The best supplemental materials for the retro computer systems, such as the Atari 400/800 and the Commodore 64, was any number of things from magazine adds to the their game packaging and instruction manuals. I evaluated each of those on an individual bases to select the material I thought worked best.

Arcade game manufacturers printed some really interesting flyers for their machines, usually directed at arcade and store owners, not players.

For the arcade games, manufactures had put out flyers they had sent out to owners of actual arcades and corner convince stories to convince them of all the money they would be making by putting their arcade machines in their stores. These printed flyers were often imaginative, illustrative, full-color pieces that added a new level to a game’s story. One that most players never got to see!

There’s a great site, The Arcade Flyer Archive, where you can browse through many of these old flyers yourself.

Making it Fully Configurable

Building a retro front-end, it turns out, is mostly about architecting it in a way to deal with all the complex emulator configurations as elegantly as possible, and to support the large number of external resource files to be displayed.

For this front-end, I made it all driven by a single JSON file that defined all the game categories, game systems, and all the games within them. This allowed me to curate and arrange the games however I wanted to—adding, deleting, and re-arranging them quickly without needing to re-compiling the app each time I wanted to update the exhibits. It also gave me a way to define custom appearances for the museum that could be selected at random each time it runs.


My Little Preservation Hall
for Retro Games

It was a lot of fun building this homage to old gaming. Is it like going to Flynn’s arcade? Probably not. But for a brief moment, as I worked on it in the late hours of my holiday break, it felt like I was a kid again, getting to unwrap a new Asteroids or Space Invaders cartridge that had been waiting under the Christmas tree.

Now, before the holiday is over for another year, I’m looking forward to playing a few rounds of “A Pig Quest” from our couch…


Previous
Previous

A Reusable Test Harness for Developing SwiftUI Apps

Next
Next

Crafting a Data-Driven Date Picker for SwiftUI