james1095

FPGA NES

Recommended Posts

I came across this today.

 

https://github.com/brianbennett/fpga_nes

 

There have been a number of NES implementations on FPGAs but this is the only one I've found with the code available. It looks a bit half baked at this stage but it's worth keeping an eye on. He's using a Spartan6 dev board so it should be fairly easy to port it to the Papilio.

Share this post


Link to post
Share on other sites

Well, maybe some people here can improve upon it.

 

There are a number of other FPGA NES implementations out there but none of those that I've found have the code available. I get annoyed when I come across projects like that "Hey look at this cool thing I did, but you can't have the code to try it yourself."

Share this post


Link to post
Share on other sites

I got curious and downloaded this code and ran it through ISE.  The project is setup for a Spartan6 LX16 and it uses 72% of the slices (1700 slices) so my guess is that it will not fit in the LX9 on Papilio Pro (which has 1430 slices) without cutting something out.  I did get the code to run on Pipistrello with very few modifications, using the LogicStart wing for sound and analog VGA output. 

I do see some artifacts in the sprites (a line down the middle of Mario for instance) but for most part it's playable and it comes with a long list of games.

If anyone is interested I can post the code modifications I did to make it run.

 

Here is an image that shows the line through Mario:

 

mb.JPG

Share this post


Link to post
Share on other sites

Oh nice one. I think even if the mods you made are minor there is a benefit posting the code as it saves someone else doing the same thing again. This was on my long term todo list of things to try. I guess eventually if I pick it up it will end up on my code repository on google but for now I'm trying to finish the williams hardware to a more complete state.

Share this post


Link to post
Share on other sites

I wonder how hard it would be to extract his implementation of the PPU and interface a smaller FPGA with that to a real NES? I know there have been some attempts to come up with a modern FPGA based PPU in order to add RGB output to the NES and support the special color pallets used by the Vs. arcade games. I haven't seen any open source attempts though.

 

I'll have to see if I can get this to synthesize for the Virtex5 now that I've got that board working. It certainly has enough resources, I'm just juggling so many projects that progress is slow on all of them.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now