The Phoenix Replay project
The Phoenix board (I have got a G.G.I. version) is a 8085 CPU based board with no custom ICs. The sound is implemented
completely discrete (using NE555, some logic and a fancy melody chip).
Most work was this sound part, I set up special
NE555 and RC blocks which can be configured using electric parameters (R, C) but is completely synthesizeable!
It is implemented as full synchronous single-clock design and uses the 8080 configuration of the t80 for the CPU (which works
quite well).
As a highlight I also implemented the MN6221AA alarm/melody chip in VHDL. It produces an annoying sound (you may
know from this cheap greeting cards with sound), but the game is just incomplete without it!
Below some pictures of the game and my replay development setup running a beta version!
Download:
The implementation is finally released as initial beta version on these boards:
- FPGAARCADE.COM replay board, with Spartan 3E-1600 FPGA, ARM processor for SD-Card handling
--> Download available soon!
Note: the setup uses the very latest development environment (ARM and FPGA) of the replay board.
Thus I will wait for the source/binary releases as soon as the new replay ARM setup is tested and released. Can't
take really long anymore...
Source code:
I have the fully functional and synthesize-able VHDL code, but I still need some more tuning of the
analog section. I'll also release the MN6221AA and the NE555 implementations as separate projects.
The replay solution uses a FPGA configuration file without ROM code, the ROM files are uploaded separately
from the SDCARD. I took the naming for these ROM files from the usual MAME packages (I won't distribute).
Actually, I implement this game on the Replay board and won't support the other platforms for now.
Some facts:
- Board runs at 11MHz
- 1x 8bit CPU (8085)
- Video: 6bit (2R/2G/2B), H:~16kHz, V:~60Hz
- Audio: discrete (several NE555, RC filters and logic), melody chip MN6221AA
Actual utilization on Spartan 3E (approximate):
- Slice FF: 4715
- 4 input LUT: 5358
- RAMB16: 16
Due to the implementation of the "analogue" sound section, it barely fits to small 500E boards (100% utilization)
and I don't have the external flash feature implemented yet.
It has some possibility for a "low HW cost" sound implementation - but you do not really want that, do you...?