prototector wrote:
So my suspicion arose with the Kazzo with a recent attempt at a ROM dump.
I have a prototype game (MMC3) that I dumped, which only appeared to differ from the retail by one byte at a specific position in the header (booooo!). I found it peculiar because someone else dumped a different prototype copy of the same game last year and theirs showed the EXACT SAME single difference (location and value). One might assume both prototype copies have the same build, hence the same difference, and leave it at that. Except I decided to test this further.
I dumped one of my retail carts, Blades of Steel (unrom), and compared it to the publicly available download of it, which is supposed to be verified. Lo and behold, my Kazzo ROM dump differs by 1 byte from the download, at the exact same header location the prototype of the other game differs from its retail version.
More than that, the difference in hex value of the 2 games dumped by the Kazzo compared to the downloadable ones are the exact same. ie:
Hex value at position 06 of prototype of MMC3 game: 42
Hex value at position 06 of downloaded retail version of MMC3 game: 40
Hex value at position 06 of my Kazzo dump of Blades of Steel UNROM game: 23
Hex value at position 06 of downloaded retail version of the same: 21
So you see, it looks like the Kazzo is doing something weird where it dumps them with a hex value at 06 that is 2 higher than what it should be. Because of that, I think that my prototype (and the copy from the other guy) is actually 100% byte-wise identical to retail and it's just the Kazzo that dumped it this way.
What's the reason for this?
The header is not part of the ROM dump. The ROM dump is apparently coming out perfectly for you.
Traditionally, headers were created by hand by the person who dumped them, encoding information that you'd learn by inspecting the board or by trial and error.
You can look at the
iNES file format on the wiki to see what's in byte 6.
A difference of 2 indicates "battery backed RAM" in the header. Ther dumper doesn't know if a cart has a battery in it, so apparently it sets that bit by default just in case. You can manually change it with a hex editor (or use Nestopia's header editor, or
quietust's header editor).