List of all the NES emulators in development

You can talk about almost anything that you want to on this board.

Moderator: Moderators

User avatar
Memblers
Site Admin
Posts: 3878
Joined: Mon Sep 20, 2004 6:04 am
Location: Indianapolis
Contact:

Post by Memblers » Fri May 14, 2010 3:06 pm

There are enough emulators for the NES for an actual complete list of them to be fairly interesting (and lengthy). Especially to see the variety on non-PC platforms.
mic_ wrote: I disagree. Most beginner coders who think "hey, writing a game would be totally radical!" and actually finishes their project end up either doing a remake of some old game (tetris, arkanoid, pong, snake), or something very similar. I'm not saying there's anything wrong with doing that - I'm just pointing out that there's nothing inherently more creative or "new" about writing a game compared to an emulator.
That's a good point, a lot of first projects aren't really original but it's kind of like comparing between a 14 year old's sketches, a van Gogh painting, and a 3 year-old's coloring book. :P

I guess it depends on what kind of stuff people want to write. If one just wants to write boring ol' stuff that is just 100% following specifications, then emulation would help you get good at that (assuming a ~95% documented system like the NES). If you want to come up with all sorts of cool stuff, and face all kinds of challenges in figuring out how it will work, then writing a game is the way to go.

Me personally, last year I had started to write a 6502 emulator (in Propeller assembly). I figured if nothing else, it would be the beginnings of a homemade NSF player. But it was so tedious and boring to code, that I was falling asleep while writing it, no kidding. I guess as soon as I knew it was possible, it wasn't as fun anymore, heheh.

User avatar
koitsu
Posts: 4218
Joined: Sun Sep 19, 2004 9:28 pm
Location: A world gone mad

Post by koitsu » Sun May 16, 2010 9:07 am

I spent the past 3 hours this morning adding the following document to the Wiki:

http://wiki.nesdev.com/w/index.php/Emulators

This is in no way a comprehensive list -- I only went through 4-5 pages of NESemdev posts, not all 18 (?). But that's the entire point of a Wiki -- you can edit it and improve it.

I also linked it on the main Wiki page, since it's a pretty common topic. I took the time to clean up the CSS, HTML, and other whatnots on the main Wiki page too (what a mess!).

User avatar
Banshaku
Posts: 2393
Joined: Tue Jun 24, 2008 8:38 pm
Location: Japan
Contact:

Post by Banshaku » Sun May 16, 2010 3:03 pm

koitsu wrote: I took the time to clean up the CSS, HTML, and other whatnots on the main Wiki page too (what a mess!).
Usually you're supposed to use the least possible html tags inside the wiki to make it easier to change style. I just had some idea for the main page and saw some style I liked on wikipedia after seeing some "blue box container". I didn't know how to get the template for it so I just extracted the html. This is one of the main reason of the mess ;) Which would mean the template had similar html/css too..

User avatar
koitsu
Posts: 4218
Joined: Sun Sep 19, 2004 9:28 pm
Location: A world gone mad

Post by koitsu » Sun May 16, 2010 7:19 pm

Banshaku wrote:
koitsu wrote: I took the time to clean up the CSS, HTML, and other whatnots on the main Wiki page too (what a mess!).
Usually you're supposed to use the least possible html tags inside the wiki to make it easier to change style. I just had some idea for the main page and saw some style I liked on wikipedia after seeing some "blue box container". I didn't know how to get the template for it so I just extracted the html. This is one of the main reason of the mess ;) Which would mean the template had similar html/css too..
If the CSS in the "style" statements could be put into their own class (in a .css file somewhere and then included with <link> within <head>), then all those div statements could become <div class="whatever">. There's also the possibility of getting rid of the table stuff altogether (it's possible to do using CSS and <div>), or using Wiki syntax for tables. :) Anyway, that's for another discussion.

User avatar
Zepper
Formerly Fx3
Posts: 3218
Joined: Fri Nov 12, 2004 4:59 pm
Location: Brazil
Contact:

Post by Zepper » Mon May 17, 2010 2:30 pm

- Great. :) Two things: a) Isn't Nestopia available for MacOS? b) I'm removing the DOS mention, since RockNES has stopped DOS support at version 4.xx. Indeed, there's one Linux version, but it's so outdated that I thing not worth to mention it.

Mednafen
Posts: 60
Joined: Wed Sep 13, 2006 12:45 pm

Post by Mednafen » Thu May 27, 2010 8:49 pm

mic_ wrote:Only those announced here at the forum? Can't be that many. But if you included every NES emulator ever released I'm guessing the count would approach 1 shitload.
Counting forks(including ports of popular emulators to game consoles), and multi-system emulators, and excluding emulators that never had a release/working code in a repository, I'd say there are around 180-200.

User avatar
koitsu
Posts: 4218
Joined: Sun Sep 19, 2004 9:28 pm
Location: A world gone mad

Post by koitsu » Fri May 28, 2010 7:05 am

Zepper wrote:- Great. :) Two things: a) Isn't Nestopia available for MacOS?
It's hard to determine, and it's a debate. The official author of Nestopia is Martin Freij, who's responsible for the Win32 version of Nestopia. All the other versions (for other OSes), as far as I know, only get updated after the official Win32 release is out -- because they have to backport the changes.

The OS X version is a "port", also called "Nestopia", and maintained by Richard Bannister. Don't confuse this with "OpenNestopia" which is maintained by Josh Weinberg. Be sure to note that Richard's version is version 1.41 while the official Win32 version is only up to 1.40.

Finally, there's a Linux port from someone named Arbee.

Summary: Win32 is the only official platform that I know of, with all the others being done after-the-fact. None of the projects appear to be "centralised", meaning there's no unison between all of the authors. It's MAME all over again.

If someone wants to add the two OS X ports to the list, be my guest -- it's a Wiki.

User avatar
Petruza
Posts: 311
Joined: Mon Dec 22, 2008 10:45 pm
Location: Argentina

Post by Petruza » Fri May 28, 2010 11:26 am

I'm developing yet another NES emulator just because I wanted to code something challenging, as opposed to my day job which is definitely not.
It won't be a regular emulator which tries to emulate exactly the original NES and nothing else, it will be, I think, something new and original. No too original since it's inspired on Pacifi3D and the LUA-scriptable feature of FCEUX, but hopefully different.

I also thought that emulating the NES would be a good starting point to build knowledge of 6502-based machines to later emulate other consoles or computers based on that chip, as the commodore and the atari for example.

As I see it, contributing to an already working emulator won't help a lot either, because emulators like Nintendulator, Nestopia and others are already pretty accurate, and I'm not sure about how much they can be improved.

Edit: this is on the wiki, I see now.
[ What I would like to see is a list of working, accurate, finished emulators written by users of this forum, along with their creators. (if there's not already such thing) ]
Last edited by Petruza on Fri May 28, 2010 12:43 pm, edited 1 time in total.

User avatar
tokumaru
Posts: 11858
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Post by tokumaru » Fri May 28, 2010 11:56 am

Petruza wrote:emulators like FCEU and others are already pretty accurate
I don't find FCEU accurate at all. It plays most games fine (probably because it was tailored according to the existing commercial games), but when it comes to the tiny dirty little details we run into while homebrewing, it's not reliable at all.

User avatar
Petruza
Posts: 311
Joined: Mon Dec 22, 2008 10:45 pm
Location: Argentina

Post by Petruza » Fri May 28, 2010 12:21 pm

Which ones are the most accurate emulators available?
I always took FCEUXD SP as reference cause it has a good debugger, but I really don't know.

User avatar
tokumaru
Posts: 11858
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Post by tokumaru » Fri May 28, 2010 12:42 pm

I've always considered the FCEU branches good for debugging logic, but they aren't amazingly accurate when it comes to timing and graphics.

The most accurate ones I'm aware of are Nintendulator and Nestopia. Whenever I'm testing sensitive code those are the ones that behave the most like my real NES (but even they are wrong sometimes).

User avatar
Petruza
Posts: 311
Joined: Mon Dec 22, 2008 10:45 pm
Location: Argentina

Post by Petruza » Fri May 28, 2010 12:50 pm

What percentage of original* games ( leaving out homebrew and demos ) would you say used some graphic technique that would require accurate timing, other than a regular sprite-0 hit scrolling to make a horizontal split-screen?
I don't know if I'm being clear about this, I want to know how much mid-scanline scrolling or other techniques I'm not aware of, were used, to have an idea of how serious is for an emulator not to be accurate about PPU timing.
I leave APU, sound & music out of the question on purpose.


PS: I use the term `original game` to refer to a commercial game released back in the days of the NES. Is there a more used and accurate term for that?

tepples
Posts: 22051
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples » Fri May 28, 2010 1:23 pm

Petruza wrote:What percentage of original* games ( leaving out homebrew and demos ) would you say used some graphic technique that would require accurate timing, other than a regular sprite-0 hit scrolling to make a horizontal split-screen?
Balloon Fight uses cycle-timed NMI to make a horizontal split screen in Balloon Trip mode. Pirates! and Marble Madness both use mid-scanline CHR bank switching. F1 Race, Rad Racer, Space Harrier, and 3D World Runner use timed scroll writes to bend the road. Cosmic Epsilon uses this along with timed horizontal scroll writes and timed CHR bank switching to change texels in the scrolling path.

By excluding APU, you exclude Time Lord and a few games by Codemasters, which abuse the DMC IRQ as a generic timer so that they can put the sprite 0 split near the bottom.

User avatar
Petruza
Posts: 311
Joined: Mon Dec 22, 2008 10:45 pm
Location: Argentina

Post by Petruza » Fri May 28, 2010 1:51 pm

Ok you made your point. Pretty serious.

User avatar
tokumaru
Posts: 11858
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Post by tokumaru » Fri May 28, 2010 1:51 pm

A game that is notoriously hard to emulate is Super Cars. It uses $2004 reads for timing purposes, and very few emulators handle such reads correctly, AFAIK.

Post Reply