SourMesen / Mesen

Mesen is a cross-platform (Windows & Linux) NES/Famicom emulator built in C++ and C#
https://www.mesen.ca
GNU General Public License v3.0
1.26k stars 320 forks source link

Feature request: support for "split-rom" format #538

Open Shoegzer opened 5 years ago

Shoegzer commented 5 years ago

This would support loading from split-rom formatted files as documented in the official MAME NES software list. This format is more accurate to the original chips contained in the cartridges (typically .chr and .prg) than the iNES .nes format that combines these chips into one file.

SourMesen commented 5 years ago

Thanks for the suggestion.

I'm not really convinced this is more "accurate" than a single .nes file though. Even splitting into one PRG and one CHR file is not accurate, a lot of games contain multiple chips for each. And splitting prg/chr into multiple files each (e.g one per chip) would then requires a naming convention and/or database to load properly. Not to mention MAME's format requires a database to know which mapper the game is, how much extra RAM it has, etc. These are all problems that are solved by the NES 2.0 format - I would rather not support yet another file format when it doesn't really offer any advantages over the existing ones.

Shoegzer commented 5 years ago

All fair points, though I'll say the "MAME format" doesn't just split files into PRG and CHR - if you look at the XML from the link above you'll see games are actually split into all the various chips if they existed that way on the original cartridge. MAME takes the same approach as it does with arcade boards, where all the chips are documented and dumped as individual files.

I'm still hoping you'll consider this as an option for those users who only have their nes games dumped to this format as people who follow MAME (and others who just rely on their software lists) would. And compatibility with such a mainstay emulator would be a key advantage of supporting the format.

Also the database you mentioned could just borrow directly MAME's data such as the XML provided in the link above - could it not?