#54028 - BGNG - Wed Sep 14, 2005 9:20 pm
I have a problem with the Secure CRC16 checksum in the headers of Nintendo DS ROMs. I can correctly calculate the Logo CRC16 and Header CRC16, however. Since the Header CRC16 uses the pre-calculated bytes of the Secure CRC16 checksum in ITS checksum, I know that the value in the Secure CRC16 are correct. Yet, when I calculate it, it fails.
The documentation I have says that bytes 0x4000 to 0x7FFF are used for the Secure CRC16, but I can't seem to get it to work. The same algorithm, however, correctly calculates the Logo and Header CRC16s.
I've attached the region of an anonymous ROM file from 0x4000 to 0x7FFF. The checksum in the file's header is 0xCAC3, but when I calculate it, I keep getting 0x8582.
Anyone able to help?
The file: 4000-7FFF.zip
(Note: This may be due to cartridge encryption, but the ROM filename table can be extracted correctly. Does, by chance, the FAT not get encrypted?)
The documentation I have says that bytes 0x4000 to 0x7FFF are used for the Secure CRC16, but I can't seem to get it to work. The same algorithm, however, correctly calculates the Logo and Header CRC16s.
I've attached the region of an anonymous ROM file from 0x4000 to 0x7FFF. The checksum in the file's header is 0xCAC3, but when I calculate it, I keep getting 0x8582.
Anyone able to help?
The file: 4000-7FFF.zip
(Note: This may be due to cartridge encryption, but the ROM filename table can be extracted correctly. Does, by chance, the FAT not get encrypted?)