Page 1 of 1

Feature Idea: Selectable Mappers

Posted: Sun May 22, 2011 8:00 pm
by 6T4
I have recently been thinking about features for NESFaCE (an NES emulator I am writing) and this idea came to mind. One of the main reasons I had for starting this emulator in the first place was to provide 100% compatibility, which as far as I know, NO current NES emulator offers. One of the biggest reasons for this is a lack of support for certain mappers. Sometimes it's because there is a lack of technical information, sometimes the author(s) just won't spend the time to program all of them, and sometimes the games declare the wrong mapper number in the header or don't even have a header.

However, a lot of the mappers that aren't often programmed into emulators are compatible with one of the more common mappers (MMC1, MMC3, etc). So, I propose that if an emulator can't detect what mapper a cartridge is using and/or doesn't support that mapper, let the user try the mappers it does support, one by one. Sure, you could force many current emulators to do this now by modifying the iNES header, but an option in the emulator would be much more user friendly. It would also be a good idea to have this option for games even where a supported mapper is detected in case the game really uses a different mapper.

As far as coding this, it seems like it would be fairly easy in most cases. Most NES emulators clearly split the mapper code from the other types of code and only use the code for whatever mapper the cart they are running at the time uses, so they would only need to change which mapper code is being used. If anyone has any additional ideas or comments about this, let me know.

Posted: Mon May 23, 2011 11:04 am
by Disch
One of the main reasons I had for starting this emulator in the first place was to provide 100% compatibility, which as far as I know, NO current NES emulator offers.
This is a big undertaking. The big boys like Nestopia do a very, very good job. Maybe not 100% compatibility, but they get pretty close.

I don't want to discourage you or anything, but just know that this is a big undertaking =P. You post seemed to suggest that perfect compatibility was so simple that any emu can do it. There's nothing further from the truth.
However, a lot of the mappers that aren't often programmed into emulators are compatible with one of the more common mappers (MMC1, MMC3, etc).
If this were true, then those ROMs would use those mapper numbers.

The reality is, all those weird obscure mapper numbers have subtle differences that makes them incompatible with the more popular mapper numbers.

Hell, even mappers that share a mapper number are incompatible with each other a lot of the time.

Posted: Wed May 25, 2011 1:52 am
by 6T4
Disch wrote:You post seemed to suggest that perfect compatibility was so simple that any emu can do it. There's nothing further from the truth.
I didn't mean to suggest this; sorry if it read that way. By saying that no NES emulator has this, I was illustrating the complexity of it. I know some emulators are close (Nestopia, FCEUX), and others are getting there (Nintendulator). I was just saying that I am very interested in mappers and that is one of the main reasons I decided to write an NES emulator.
6T4 wrote:However, a lot of the mappers that aren't often programmed into emulators are compatible with one of the more common mappers (MMC1, MMC3, etc).
If this were true, then those ROMs would use those mapper numbers.

The reality is, all those weird obscure mapper numbers have subtle differences that makes them incompatible with the more popular mapper numbers.
Certain ROMs do mis-label their rom number to be mapper 3, for example, to be compatible with certain emulators. And yes, there are subtle differences that make mappers not 100% compatible, but in many cases the games will still work to some degree. Also, my feature would still be useful for mis-numbered roms. In addition, a few mappers are exact copies of others (114 and 182, 160 and 90, 161 and 1, and 255 and 225).