A Go library for identifying video game ROM and disc images. Detects console types from file extensions and headers, then extracts game metadata (IDs, titles, regions) from various retro gaming formats. Supports Game Boy, GBA, NES, SNES, N64, Genesis, GameCube, PlayStation, PS2, PSP, Saturn, Sega CD, and Neo Geo CD.
go get github.com/ZaparooProject/go-gameidimport "github.com/ZaparooProject/go-gameid"
// Auto-detect console and identify
result, err := gameid.Identify("game.gba", nil)
// With database for title lookups
db, _ := gameid.LoadDatabase("games.gob.gz")
result, err := gameid.Identify("game.iso", db)
// Specify console explicitly
result, err := gameid.IdentifyWithConsole("game.bin", gameid.ConsolePSX, db)# Build
make gameid
# Run
./cmd/gameid/gameid -i game.gba -json
./cmd/gameid/gameid -i game.iso -c PSX -db games.gob.gzThis project is a Go port of GameID by Niema Moshiri. The original Python implementation and game database are the foundation of this work.
Test data files in testdata/ are from the 240p Test Suite by Artemio Urbina, licensed under GPL-3.0.
GPL-3.0-or-later. See LICENSE for details.