SFROM Format (SNES Nintendo Switch Online)

Format information for the .sfrom files used on the SNES Nintendo Switch Online app. All values are little endian unless stated otherwise.


Found at the end of the ROM file:

Start Size Description Notes
0x00 n Game Info Data This is explained later.
n 0x4 Game Info Data Size
n+0x4 0x4 Magic Number "Can1"

Game Info Data

Start Size Description Notes
0x00 0x4 0x00000247
0x04 0x2 Game preset ID Configures emulator depending on the game
0x06 n Game settings Other game settings and description

Game Settings

Key Size Value Notes
0x55 0x5? Unknown
0x65 0x1 SuperFX Flag? Only seen with value 0x0C
0x70 0x1 Amount of players Seen with values 1, 2, and 4 (Super Puyo Puyo 2)
0x74 0x1 Unknown Only seen with value 0x06
0x76 0x1 Unknown Always different between games

SFROM Format (SNES Mini / Classic)

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


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


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.

Common Info

You can find a list of Game Preset IDs used in this spreadsheet: