Skip to content

Game Identification

This page details the hashing method used for each supported system:

NESlink

If the ROM starts with NES\1a, the first 16 bytes are ignored and the remaining file contents are hashed. If the ROM does not start with NES\1a, the entire file is hashed.

Famicom Disk Systemlink

The entire file is hashed.

NOTE: As saving mutates disk data, local copies of loaded images are required to ensure that their hashes do not change across sessions.

SNESlink

If the size of the file is 512 bytes more than a multiple of 8K, the first 512 bytes are ignored and the remaining file contents are hashed. If the size of the file is not 512 bytes more than a multiple of 8K, the entire file is hashed.

N64link

The entire file is hashed.

This may result in three unique hashes for each game. The z64 extension is big endian (ABCD). The n64 extension is little endian (DCBA). And the v64 extension is middle endian (BADC).

GBlink

The entire file is hashed.

NOTE: RAVBA appears to 0-pad the data if the the size specified by the ROM (address $148) is larger than the file. I have yet to find a case where this occurs.

GBClink

The entire file is hashed.

NOTE: RAVBA appears to 0-pad the data if the the size specified by the ROM (address $148) is larger than the file. I have yet to find a case where this occurs.

GBAlink

The entire file is hashed.

VirtualBoylink

The entire file is hashed.

Master Systemlink

The entire file is hashed.

MegaDrive (Genesis)link

The entire file is hashed.

Sega 32Xlink

The entire file is hashed.

Sega CDlink

TODO: Need to investigate this further. Is this system even supported?

A 1KB buffer is hashed. The first 512 bytes of the buffer are the first 512 bytes of track 0. I'm not sure what's in the second 512 bytes.

GameGearlink

The entire file is hashed.

Atari 2600link

The entire file is hashed.

Atari 7800link

The entire file is hashed.

Atari Lynxlink

If the ROM starts with LYNX\0, the first 64 bytes are ignored and the remaining file contents are hashed. If the ROM does not start with LYNX\0, the entire file is hashed.

NeoGeo Pocketlink

The entire file is hashed.

PCEngine (TurboGrafx16)link

The entire file is hashed.

PCEngine CDlink

TODO: I'm not really sure how this works. RAPCE hashes the "Mainboard Main ROM", but I couldn't get it to work. RALibRetro doesn't appear to hash anything, and there's no special code in RetroArch, so it would appear to be hashing the entire file, but which file? The zip is a bin/cue with multiple track files.

FBA (Arcade)link

The filename string without the extension (xxx.zip) is hashed. It is case-sensitive.

PC-8001 / PC-8801link

Load tape images and disk images loaded in drive 1 (program disk data) are fully hashed.

NOTE: As saving and other manipulations can mutate disk data, local copies of loaded images are required to ensure that their hashes do not change across sessions.

Changeloglink

Last 10 changes on this page:

  • [2019-01-15 09:45] Raphaël Zumer: Update Lynx
  • [2019-01-04 17:41] meleu: cosmetic
  • [2019-01-04 17:41] meleu: reverting title changing for PC-8801/8801
  • [2019-01-04 17:39] meleu: making clear that arcade method is filename without the extension
  • [2019-01-03 11:43] Raphaël Zumer: Add FDS and PC-8001/8801
  • [2019-01-01 19:32] Jamiras: Updated Game Identification (markdown)
  • [2018-12-28 09:18] Jamiras: Updated Game Identification (markdown)
  • [2018-12-28 09:15] Jamiras: Created Game Identification (markdown)