shawngmc / game-extraction-toolbox

Python tools for extracting ROMs from games and investigating files
MIT License
82 stars 10 forks source link

Future: NES Classic - Fix Excitebike ROM #19

Open Feilakas opened 2 years ago

Feilakas commented 2 years ago

In case you decide to add the NES Classic mini-console ROMs in the future. The Excitebike ROM will not work correctly because it is somewhat "malformed".

In order to "repair it" you will need to remove from the extracted file the first 48 bytes and the last 48 bytes (so reduce the file by 96 bytes in total). Finally, the header will need to be hex changed from "NES00" to "NES1A" (change the hex value in position 0x0003 from "00" to "1A").

After that, the file should have a CRC value of EFAF5890 which matches the NoIntro file "Excitebike (World) (Switch Online).nes"

shawngmc commented 2 years ago

I'm a bit torn on this one.

On the one hand, this isn't something GEX Toolbox can handle completely - the application can't talk to the NES Classic hardware, and that's kinda out of scope. There are also likely better tools for fixing known ROM files.

On the other hand, I do have some WiiU cleanup stuff in there, and this is somewhat within the 'spirit' of GEX Toolbox. Removing excess bytes and changing the iNES header (which is a functional change and not just copying a copyrighted string) is easily done within the tooling. iNES headers were not invented by Nintendo - they're a byproduct of the emulation community working with a bunch of disparate cartridge designs.

My initial thoughts here are to make it a different type of named task - 'repair' instead of 'extract'.