Alex, who did this writeup about translating Galaxian’s Verilog code to VHDL is at it again with an exciting new project. He decided to see what it takes to recreate one of his favorite Arcade games (Bomb Jack) using only VHDL, the games schematic, the Open Source T80 Soft Processor, and technical information available on the Internet.
Along the way he has worked through issues such as how to simulate the T80 soft processor in the Xilinx simulator, making one big SRAM act like several small EEPROMs all being accessed at once, and dealing with inputs being the opposite of what you would expect!
His perseverance has paid off and as you can see in the video above he now has the T80 and his graphics subsystem outputting some Bomb Jack eye candy on a prototype Papilio Plus board.
The VHDL implementation is still unfinished but as a beginning we can say it’s a great start. As of yet the CPU, memory address decoder, input control switches, RAMs, background tile generator and character generator are implemented only the sound and sprite generator are still missing.
The project still require more troubleshooting but the biggest thing we get from it is the fact that Bomb Jack ROMs take 112Kb of space, which is too much for the FPGA to fit:
“The main win here is the fact that Bomb Jack ROMs take 112Kb of space, which is too much for the FPGA to fit. Currently the main CPU ROMs are implemented in internal FPGA BRAMs and the rest are stored in external SRAM.The problem is that the video circuit contains 9 discrete ROMs each addressed individually, so here I’m accessing the external SRAM on a 48Mhz clock trying to read various addresses so as to simulate 9 discrete ROMS to the video circuit!”
Note : the green digits on the top left of the picture are not part of the game but debug circuitry added for testing.
Very nice game to play with on the Papilio Plus, Great work!!
Follow the split to see more details from the videos youtube page and feel free to discuss in the comments thread and help improve this project.
Full text from Youtube Video details page:
“Still unfinished VHDL implementation of Bomb Jack on a prototye Papilio Plus board. This is the very first promising video output form the game as of yet. The CPU, memory address decoder, input control switches, RAMs, background tile generator and character generator are implemented. Still missing is the sound and sprite generator.
There are obviously some issues, one of the RAMs is failing self test at boot and some video distortion is visible, so more troubleshooting is required. The main win here is the fact that Bomb Jack ROMs take 112Kb of space, which is too much for the FPGA to fit. Currently the main CPU ROMs are implemented in internal FPGA BRAMs and the rest are stored in external SRAM. The problem is that the video circuit contains 9 discrete ROMs each addressed individually, so here I’m accessing the external SRAM on a 48Mhz clock trying to read various addresses so as to simulate 9 discrete ROMS to the video circuit!
The green digits on the top left of the picture are not part of the game but debug circuitry added for testing. Digits are changing too fast for the eye to see.”
Leave a Reply
You must be logged in to post a comment.