Originally posted by: Pendragonx
So I just started using your fantastic program, and saw this romhack threw some errors .. I'm curious what it might mean (other than the obvious)
CoMV2.nes
iNES version: 1.0
platform: NES
mapper: 2
mirroring: Vertical
prg size: 128KB (1024kb)
chr size: 0KB (0kb)
prg ram size: not specified
battery backup: no
trained: no
*** warning ***
data in bytes 11-15, potential problems
0x49 0x20 0x31 0x2E 0x33
boards: (UxROM [UNROM, UOROM])
crc32: prg [89d98500]
some info on this relevant to this update:
the iNES 1.0 format supports has standard fields that use half the rom header and leave half basically undefined. The second half has been used in various ways over the years including some ad hoc extensions and self promotion for various people or sites.
As I understand it most emulators have settled on some de facto properties they recognize in the extended space. These are the number of sram/wram 8K units in byte 8 and the NTSC/PAL flag in byte 9. These are mostly useful for roms unknown to the emulator.
The problem is a bunch of roms floating around have other data in those bytes, so the sram and tv flags aren't guaranteed to be accurate. Emulators do a sanity check on this by looking at the bytes at the end of the header. If they are anything but empty (0x00), the emu ignores everything from bytes 8-15. If they are empty and bytes 8 and 9 have values in them they are considered good and used as appropriate.
sram units and tv system are reported from the header now. I should update the warning to make more sense. Those values can also be set in the editor now. There were some proposed uses for byte 10 which I had written code for but apparently it never caught on. Looks like I need to clean up to account for that.