FPGA Genesis with Sound
Posted: Sun Dec 02, 2012 2:44 am
As mentioned in another post, my group is implementing a full Sega Genesis system on an FPGA. This is built off the fpgagen project by Gregory Estrade (Torlus): http://code.google.com/p/fpgagen/. We've ported the project from Altera to Xilinx and added an original YM2612 driver and cartridge/controller interfaces. Here are the preliminary results of our work:
http://www.youtube.com/watch?v=zDLWVD2OwmI
So far I have channels 1-4 plus the DAC output running. The other 2 channels would be easy to add but Xilinx is running out of memory trying to synthesize them. LFO and SSGEG are not implemented yet. As you can tell, there are a good number of bugs in the sound, but the basic channel output calculations are solid. Lots of thanks to Nemesis and the MAME authors for helping to get this off the ground.
Also thanks to everyone's help on this board for getting the sound to the output driver. I'll be releasing additional videos and open sourcing the code once everything's cleaned up if anyone's interested.
UPDATE: Fixed up most of the sound. Still a little bit of buzzing that we need to identify and get rid of. The problem was overflow in calculating the attenuation along with hardware issues. See the video here: http://www.youtube.com/watch?v=x17vwVRRScc
WARNING: I apologize for all the talking in the background (including myself). Our lab is pretty busy right now and there's not a lot of time to shoot the video. I'll get a clean version up when everything is completely done.
UPDATE2: Better video here: http://www.youtube.com/watch?v=zZyLj1gX0_k
UPDATE3: Source available at http://sourceforge.net/projects/teamgenesis/. Not cleaned up/commented in many places, peruse at your own risk.
http://www.youtube.com/watch?v=zDLWVD2OwmI
So far I have channels 1-4 plus the DAC output running. The other 2 channels would be easy to add but Xilinx is running out of memory trying to synthesize them. LFO and SSGEG are not implemented yet. As you can tell, there are a good number of bugs in the sound, but the basic channel output calculations are solid. Lots of thanks to Nemesis and the MAME authors for helping to get this off the ground.
Also thanks to everyone's help on this board for getting the sound to the output driver. I'll be releasing additional videos and open sourcing the code once everything's cleaned up if anyone's interested.
UPDATE: Fixed up most of the sound. Still a little bit of buzzing that we need to identify and get rid of. The problem was overflow in calculating the attenuation along with hardware issues. See the video here: http://www.youtube.com/watch?v=x17vwVRRScc
WARNING: I apologize for all the talking in the background (including myself). Our lab is pretty busy right now and there's not a lot of time to shoot the video. I'll get a clean version up when everything is completely done.
UPDATE2: Better video here: http://www.youtube.com/watch?v=zZyLj1gX0_k
UPDATE3: Source available at http://sourceforge.net/projects/teamgenesis/. Not cleaned up/commented in many places, peruse at your own risk.