This isn’t an FPGA emulating Mario Bros., it’s an FPGA playing the game by analyzing the video and sending controller commands. It’s a final project for an engineering course. The ECE5760 Advanced FPGA course over at Cornell University that always provides entertainment for us every time the final projects are due.
Developed by team membersĀ [Jeremy Blum], [Jason Wright], and [Sima Mitra], the video parsing is a hack. To get things working they converted the NES’s 240p video signal to VGA. This resulted in a rolling frame show in the demo video. It also messes with the aspect ratio and causes a few other headaches but the FPGA still manages to interpret the image correctly.
Look closely at the screen capture above and you’ll see some stuff that shouldn’t be there. The team developed a set of tests used to determine obstacles in Mario’s way. The red lines signify blocks he will have to jump over. This also works for pits that he needs to avoid, with a different set of tests to detect moving enemies. Once it knows what to do the FPGA emulates the controller signals necessary, pushing them to the vintage gaming console to see him safely to the end of the first level.
We think this is more hard-core than some other autonomous Mario playing hacks just because it patches into the original console hardware instead of using an emulator.
Nice Project!
Full FPGA hardware implementations (without emulation of the NES processor system, or reusing binary cartridge software) of Mario Bros. have been previously made in Verilog. Please have a look to:
http://www.youtube.com/watch?v=53Z-oyvzIag
and
http://www.youtube.com/watch?v=ixpff1Ofm2w
Those are very cool, too. This isn’t an implementation of the game, though, but of sufficient AI to play the original game.
very cool!
Very cool project indeed!
Please remove my first comment, except maybe the “Nice Project!”, which it is!
It’s ok. I was thinking this guy could hook his system into the one you mentioned.
exelente
Thanks Jeremy and company. I’ve watched all your Arduino tutorials and see your name on the Internet from time to time. Good luck in your future projects.