Creating a Pong-style game seems to be a “Hello World” style project for FPGA developers, and was one of the first projects I attempted when I started experimenting with VHDL.
The platform for this project is the truly brilliant Turbo Chameleon 64 cartridge. For anyone who’s not familiar with this piece of kit, it’s an FPGA device that can be used either as a standalone miniature computer, or as a cartridge attached to a Commodore 64!
Originally designed to provide a VGA output for a Commodore 64, the project’s grown and while it performs that initial task admirably, it has a near flawless emulation of the *entire* C64, provides SD card emulation of disk drives, REU emulation and even freezer cartridge emulation!
It can also run other cores, and has suffiicent flash onboard to store 16 of them. So far, cores are available to emulate the C64, 48K Spectrum, Amiga (Minimig), and also a neat Game of Life core which makes use of the parallel nature of FPGAs to calculate an entire row of cells at a time.
There’s also a hardware test core, which I used as a starting point for this project. To try it out, just use the Chameleon’s Chaco program to upload the .rbf file into a free slot, then launch the core from the Chameleon’s own menu.
When it starts up, it will launch into a game between two computer-controlled players. To take over from one of the players, just click the left mouse button on an attached PS/2 mouse. A second player can use a mouse attached to the keyboard socket.
The reset button resets the scores, and the menu button exits the Pong core and returns to the Chameleon C64 core.