The Popeye Replay project

The "TPP2" board (as it is called by Nintendo) is a single Z80 CPU board with only a few custom ICs. So it is a perfect candidate for a first Replay project. I managed to implement the whole CPU board including audio and the whole VIDEO board in VHDL.
After I got the code "somewhat" running, I started to modify it to get a clean, synchronous RTL design.
It synthesizes using the Replay board as target - so it starts up in test mode and gives the usual test messages on my monitor. Furthermore it starts in game mode and shows the demo-run as well. You also can "insert a coin" and play! :-)

test screen splash screen game screen


And here a small AVI (you may need a decent player like VLC installed on your system to view it):

LINK TO POPEYE DEMO VIDEO (~10MB)


I used a kind of "debug" video output by using the spare I/O of the Replay board. This connector uses only one single bit per colour via a resistor. Enough to see that the implementation works fine. Below a picture of this demo setup. Audio is already passed via the DAC on the Replay board.

demo setup


Luckily my (original Nintendo!) board version does not have the custom "protection ALU" (I assume it is a cost-down hardware version) and it also has a slightly different EPROM content on the CPU board (compared with code I found for MAME) - probably because of this missing protection feature. Saves me quite some time...

To operate it using its very own video mode (w/o any tweaking on the video signal, like scan doubling), I set up a special cable connected to an ordinary TV set. See here for details on the cable.

Source code:

Fully functional code, also mapped to replay board - the generated "replay.bin" loads off an sdcard...
Actually, I implement this game on the Replay board and won't support the other platforms for now.

Some facts:

- Separate CPU and VIDEO board, similar to original
- Both parts implemented fully synchronous in VHDL
- CPU board runs at 4MHz
- VIDEO board runs at 10.08MHz
- 1x 8bit CPU (Z 80)
- Video: 9bit (3R/3G/3B), H:~16kHz, V:~60Hz
- Audio: 1x Yamaha YM2149 (and compatible)