Is anyone interested in teaming up on an open-source NES
emulator project? I recently discovered how crappy the Linux NES
emulators are (ports of Windows ones; sound doesn’t work most of
the time, video may or may not work, and some (namely iNES) just
segfault). An open-source project would end up with much better
emulation than a lone person could code (for instance iNES is a
closed-source project). There’s quite an audience for 8-bit
emulators (just look at the number of people playing them on their
laptops during any given class), and the NES is an attainable
I’ve been gathering technical info and I’m currently working on
a MOS 6502 CPU emulator. I’ll need some help from experienced 6502
people on this, but I think it’s within reach. After that the
project will expand greatly, since there are a lot of subsystems
that need emulation (the PPU video chip is a biggie). However, NES
emulation isn’t nearly as tricky as Commodore emulation; the NES is
much simpler, and most of it seems reasonably well documented (some
memory mapper chips are more complex than the 6502 itself, but 90%
of the games out there use simpler ones).
I plan to go ahead with this, but if anyone wants to help out,
there’s a lot that’ll need to be done. The emulator will be coded
in C. It’ll aim for simplicity and correctness at first; it can be
heavily optimized later. The PPU’s framebuffer will be independent
of any window or graphics system, but we can use something simple
like svgalib for testing.
It doesn’t matter if you know nothing about the NES’s
architecture. It was made in the 80’s and it’s elegantly simple. A
few hours’ searching got me 50 pages of documentation on the NES
and the 6502. The 6502 was used in a lot of stuff, in particular
the Commodore 64 and some Atari computers.
Let me know if you’re even remotely interested. I’ll send some
documentation to anyone who wants it.