Unless there's a second ludde in Gothenburg, he also wrote uTorrent and started ScummVM and OpenTTD.<p><a href="http://en.wikipedia.org/wiki/Ludvig_Strigeus" rel="nofollow">http://en.wikipedia.org/wiki/Ludvig_Strigeus</a><p>Edit: He added his previous projects to his profile after I wrote this comment.
Kevin Horton/Kevtris is the first person I've seen do an FPGA NES, about eight years ago, with almost complete mapper support no less: <a href="http://www.kevtris.org/Projects/console/index.html" rel="nofollow">http://www.kevtris.org/Projects/console/index.html</a><p>If you click through the quaint image map it's actually a fairly detailed description of what he did. Actually, explore his whole site, Kevin was a true emulation scene legend and his projects were all wild.
I love projects like this. It's a nice clean way to preserve some old arcade history without trying to find things like, say 27C16 MOS EPROMS that still work.<p>A group of guys I know did a similar piece of work when creating the Ms Pac Man / Galaga 20th anniversary machine for Namco. They took the original Ms Pac schematic (Z-80 based), a board that looks like this:<p><a href="http://images.cloud.worthpoint.com/wpimages/images/images1/1/0408/17/1_3618a0f83b9d2740054cdd6e3e959a6e.jpg" rel="nofollow">http://images.cloud.worthpoint.com/wpimages/images/images1/1...</a><p>and shrunk it down to a couple of FPGAs and an EPROM:<p><a href="http://imgur.com/plzWkSU" rel="nofollow">http://imgur.com/plzWkSU</a>
Not to be a pedant, but the NES's CPU was actually a Ricoh 2a03 processor, which was a modified MOS 6502 processor. The only difference as far as I can recall, as the author said, is that the Ricoh 2a03 lacks a binary encoded decimal mode, so on initialization you would set this status by calling `CLD` in your initialization of a game.
There's a capstone electrical and computer engineering course at my university where the students have to complete a very similar project: <a href="http://ece545.com/F12/index.html" rel="nofollow">http://ece545.com/F12/index.html</a><p>The NES is a popular choice, but many other game consoles and computers have been modeled as well
Regarding the mappers:<p>There's another project called the Powerpak, which is essentially an FPGA programmable flash cart. You can put it in your nintendo, and it will allow you to play nintendo roms stored on a CF card. What might help you about this, I think, is that the mappers are loaded dynamically off the card. So this allows the creator of it to add support for more mappers as time goes by. I don't know if this would help you, but maybe you could use this for your own project as well? After all, if your FPGA nes is the same as a normal nes, then you could use an FPGA flash cart to load all your games. At the very least, maybe looking at the mappers would help you out.<p><a href="http://www.retrousb.com/product_info.php?products_id=34" rel="nofollow">http://www.retrousb.com/product_info.php?products_id=34</a>
I know precious little about hardware stuff and I was curious, how true an emulation does this sort of methodology produce? I remember reading this article (<a href="http://arstechnica.com/gaming/2011/08/accuracy-takes-power-one-mans-3ghz-quest-to-build-a-perfect-snes-emulator/1/" rel="nofollow">http://arstechnica.com/gaming/2011/08/accuracy-takes-power-o...</a>) about the difficulties inherent in true software emulation and I was wondering if someone out there could relate the two in a way a hardware/emulation newbie could understand.
people interested in this may also be interested in wiz, a high-level 8-bit 6502 / Z80 assembly language and its compiler: <a href="https://github.com/Bananattack/wiz" rel="nofollow">https://github.com/Bananattack/wiz</a>