Some pics
I took it with a phone, so bad quality. But you get the point.
Picture 2 showing the FPGA board needs some explanation: The component right in the middle is the FPGA.
The component below is the Intel strataflash, 16M NOR flash. It boots the FPGA, loads the menu and fills foreground, background (if ROM) sprite ROMs as well as sound ROMs; 8088 CPU program
execution (ROMs and optionally ROMA/ROMB in RAM sockets) is done directly in different sections of the flash depending on the game chosen, i.e. moving pointers. With a reset, the first 2 scratch
pad rams containing high-scores, credits etc are block-written back to flash. So when a game is started again (even after power down), it keeps highscores. An mcs file containing all data is written
one time into the flash via a RS232 interface (you see the white serial cable on the top right). For doing so, the FPGA is configured with a bit-stream that is running a picoplaze embedded cpu connected
to the flash via PLB as well as a serial i/f driver - the code in the rom of the picoplaze runs a simple CLI to read/write/erase the flash. Once this is done, power-up or system-level reset brings the thing
to life.
The cable to the top, left is the VGA cable to the computer monitor - as the card only supports 3-bit color, the colors in the picture are not true but have
been tested to work on the Digilent Nexsys2 board which has 11-bit (4 R, 4 G, 3 B). So no worries.
The small bugs above the RJ45 Ethernet jacket on the left hand side are two 2-channel DAC. The top component, first channel is used for audio, the
second channel for (streaming) voice, both driven by a SPI interface from the FPGA. The DAC is high-current, i.e. can directly drive a (small speaker) or
an audio cable.
On the bottom you would find (if I were a better photographer) cursor switches, a rotary switch, DIP switches and LEDs. My plan is to bring the DIP switch out for folks to do their changes manually
instead of integrating this into the menu software - for a simple reason, I am not intelligent enough to write accurate assembler
