The Original Plan

Hardware emulation is not a new idea. Many older game systems, including arcade machines and the original Nintendo Entertainment System, have been adapted to function on modern computers and gaming hardware. FPGAs provide an excellent vector for this sort of emulation -- indeed, the Atari "10-in-1" joystick is an FPGA emulator for old Atari games. So, we thought it would be interesting to try it ourselves.

Our first goal was to port the original Pac-Man arcade game to our FPGA, a Xilinx Spartan 3. To do this we would need a hardware emulator (in some HDL -- in our case, we would use Verilog) and the Pac-Man ROM to run on it. Various websites offered guides to do this, and one even gave step-by-step directions to build the emulator and port the ROM. The problem is, we couldn't find a ROM. FPGA Arcade mentioned that legally, they could not distribute the ROM, and apparently they couldn't tell us where to find it, either. The other ROMs we tried did not port correctly, so we had a problem.

Insert Coins to Continue

Given these problems, it was obviously impossible to create our own ROM that we could port to our hardware. However, one useful thing that did come out of the hours spent on this was the code to drive the VGA signal. First, we tried using the guide at FPGA-4-Fun, but despite our efforts, we were unable to modify the code to suit our needs. As we looked for a new project to tackle we came across another page, which had code that worked for us out of the box. The VGA driving code can be found on the Project Results page.