SFROM Format

Format information for the .sfrom files used on the SNES Mini / SNES Classic.

Header

Start Size Description Notes
0x00 0x4 0x00000100
0x04 0x4 File size Includes the header and footer
0x08 0x4 Location of ROM Always 0x00000030 in official files
0x0C 0x4 Location of PCM samples Comes after end of ROM in official files
0x10 0x4 Location of PCM footer Equals file size if PCM data missing
0x14 0x4 Location of footer (below) Same as New 3DS's SNES VC header starting from 0x30
0x18 0x4 Location of S-DD1 data offset Footer location + 0x2C
0x1C 0x4 0x00000000
0x20 0x4 Unknown Footer location + 0x1B. Some kind of a flag?
0x24 0x8 Wii U Virtual Console Game ID WUP-J**X, X β€” title region (E = USA, J = Japan, P = EUR)
0x2C 0x4 0x00000000

Footer

Start Size Description Notes
0x00 0x1 Emulation speed in FPS 0x3C == 60
0x01 0x4 ROM Size
0x05 0x4 Size of PCM samples 0 if missing
0x09 0x4 Size of PCM footer 0 if missing
0x0D 0x2 Game preset ID Varies between games
0x0F 0x1 # of players? Usually 0x02. Setting to 0x0 disables the second controller
0x10 0x1 Sound volume
0x11 0x1 ROM Type 0x15 for HiROM and 0x14 for LoROM
0x12 0x1 Super-FX flag? 0x0C if the game uses SFX Chip, 0x00 otherwise
0x13 0x7 0x00000000000000
0x1A 0x4? Unknown Usually 0x00000100
0x1E 0x4? Unknown Always 0x00000100

Taken from this gist, which was taken from this pastebin from @Cluster_M, cleaned up with anpage's own findings added in. The pastebin was originally written by pcm720 on the GBAtemp forums.