Introduction
A .sfc file is a copy of the ROM in a cartridge for the Super Nintendo
Entertainment System, known in Japan as the Super Famicom, for playing in an emulator.
The older extension .smc comes from the Super Magicom, a 1990s copier that
loaded games from floppy disk. Copiers like it put a 512-byte header of their own in
front of the ROM, so .smc files often carry one, while .sfc
files are normally the plain ROM.
Structure
The ROM holds an internal header written by the game’s developer. Where it sits
depends on how the cartridge maps its ROM into the console’s memory: at
0x7FC0 in the file for LoROM games and 0xFFC0 for HiROM
games. Emulators find it by checking both places for a header that makes sense, and
detect a copier header when the file size divided by 1024 leaves 512.
+0x00title, in capitals, padded with spaces21 bytes+0x15map mode: LoROM, HiROM and speed1 byte+0x16cartridge type: RAM, battery and extra chips1 byte+0x17ROM size and RAM size, as powers of two in KB2 bytes+0x19region, developer ID, version3 bytes+0x1Cchecksum complement, then checksum4 bytes+0x20the processor’s interrupt and reset vectors32 bytes
The checksum is the 16-bit sum of every byte in the ROM, and the complement is that
value with all its bits flipped, so the two always add up to 0xFFFF.
Links
Software
Reference
- ROM header, SNESdev Wiki