Up until now I’ve enjoyed playing games from my childhood using PC emulators and more recently with RetroPie on a Raspberry Pi.

I don’t recall how I happened upon the FPGA Arcade site but it wasn’t long after reading about it that I’d placed an order with Amedia-Computer France and a board was heading for the shores of the UK. Amedia are currently the only European based distributor.

What is it?

The replay board makes use of different cores which run on an FPGA1. A “core” is the FPGA recreation of an arcade machine’s hardware such as Pac-Man or a home computer system such as the C64 or Amiga. Depending on how a core is implemented, it can provide a more authentic representation of the original hardware than emulation alone. It’s about as close as you can get to running the original hardware (custom chips not withstanding).

[FPGA Arcade] is about recreating gaming and computing hardware from the past in modern programmable devices, known as FPGAs. An FPGA contains a very large array of logic which can be configured by the user to perform just about any imaginable logic function.

Adam from the OneCircuit YouTube channel has a review of the Replay Board and if you’re interested in what it is the FPGA is recreating, there’s also a set of videos on his OneCircuit channel that covers repairing the hardware of various arcade machine boards. Of particular note is his project to clone the Pole Position arcade machine using an FPGA in which the Replay board also makes an appearance.

Initial Setup

FPGA Arcade with JTag and Serial cables attached

FPGA Arcade with JTag and Serial cables attached

Initial setup is quite straight forward. The public fpgaarcade svn repository contains pre-built versions of a few different cores such as the Vic20, C64 and Amiga as well as Pac-Man and Galaga arcade machine cores.

An ARM processor on the Replay board looks in the root of the SD card for a replay.ini file and uses this to load a “core” onto the FPGA. The default way to setup the card is for it to load a “loader” core which provides an on screen menu system to navigate and choose between the other cores on the SD card.

In addition to the files available in the SVN repo, each core (except the loader) requires a copy of the original hardware ROM code. For example the Amiga core requires the “kickstart” ROM code whilst the pac-man core needs several different rom files that cover the program code, sprites and audio. The ROM to load and the location/name of each ROM is specified in a corresponding ini file.

Below is the Replay board running the Pac-Man core. Ignore the Xilinx app/programming cable, those were still hooked up from testing out the Xilinx software. Only the SD card is needed to program the FPGA and boot the board.

I hate to think how much money I spent playing Pac-Man let alone Turtles and Street Fighter.

FPGA Arcade running the Pac-Man core

FPGA Arcade running the Pac-Man core

Accessories

Other than the board itself and an optional mini-itx backplate, you’ll need an SD card, an external power supply as well as PS2 mouse/keyboard, DE9 joystick and a DVI cable. Whilst DVI/DVI and DVI/HDMI cables are usable, monitors are apparently more tolerant of unusual video signals when on an analog connection like VGA. In my limited testing I’ve not run into any issues with DVI/HDMI but it’s worth having a DVI-I/VGA adapter to hand just in case.

Some variants of the board include a composite connector too but as the analog signal is also routed to the DVI port, a DVI-I/VGA adapter allows for the better RGB signal to be used.

Power supply wise, there’s a 5v header pin, ATX molex socket for 12v/5v (only 5v is needed) and a regular 5v (2.1mm pin +ve) DC barrel socket. A supply that can deliver 1A is sufficient although 2.5A will allow more headroom if a daughter board is used.

Whilst not required, I’d recommend buying a DE9 null modem cable (and RS232 to usb converter if you’re lacking a serial port) as it’s otherwise difficult to know why the loader or a given core isn’t booting. I spent a few hours trying to diagnose a monitor out of sync issue that was actually just a failure by the loader to upload a ROM to the FPGA coupled with a second failure to fall back to the emergency loader to display the error. This was immediately apparent once the debug text was displayed via the serial port and a forum post later, everything was up and running.

A USB keyboard/mouse can be used via a USB/PS2 adapter, but make sure the USB keyboard also supports the PS2 interface otherwise the passive adapter will be of no use.

Stretchy Vision(tm)

A monitor with a 4:3 aspect ratio or one that can be switched to a 4:3 mode is very useful otherwise you’ll be stuck with an ugly stretched view. Less of an issue if you’re using a TV as most provide a 4:3, 16:9, and stretch/zoom modes, but that leads onto the next issue, does your TV mount allow 90 degree rotation?

Some arcade machines had their displays mounted vertically so the video when displayed on a regular horizontally mounted monitor will be on its side. Arcade games are already challenging enough, lets not add to it. Having a monitor that you can rotate 90 degrees L/R (either via the monitor menu itself or physically rotating it) often comes at a premium and doesn’t help if you’re not already looking for a new monitor.

VonHaus VESA Mount

VonHaus VESA Mount

An alternative is a desktop mount that supports VESA mountable monitors and allow easy adjustment/rotation. Amazon have the “VonHaus Gas Powered” mount which unlike most of the other brands doesn’t require loosening of any knobs before moving/rotating the monitor, you just grab and move (I have the dual version of that mount - See the above Pac-Man photo).

There has been talk on the Replay forum of adding a frame buffer in the future which would allow optional rotation of the image prior to display or the addition of letter-boxing. That isn’t currently a feature though.

Closing Thoughts

The Replay board is very much an in-development project with many cores not yet publicly available, but those that are do appear quite usable. I did notice a few graphical issues on the C64 Ghostbusters game I tried but a few of my favorite Amiga games appear to run fine (Speedball 2, Pang, Another World…)

No complaints about the quality of the Replay board itself. There’s also an impressive amount of time and knowledge gone into making both the board and the cores for it. Check out some of the hardware reverse engineering videos on YouTube for an idea of the work involved in that process.

It’s a product that’s unlikely to disappoint as long as you keep the in-development nature of it in mind and if you’re looking to do some FPGA design as well, it may be a refreshing change from the regular development boards.


  1. Field-programmable Gate Array ↩︎