Skip to: Download | Installation | Usage | Technical Details
Introduction
Many console makers assign unique IDs to their games. While these IDs primarily serve as a method to uniquely identify the games, they're also used in various other capacities. Eg., game save data may be written to a directory based on the game ID rather than game title, game updates and DLC generally uses the ID, online databases (such as this GameTDB entry for Mass Effect 3) are frequently indexed by ID. Game IDs can also be used to help determine the region and even publisher of a particular game; eg., BCUS is typically used for first-party published PS3 games in the US, BLES for third-party published PS3 games in the EU, etc.
While end users generally don't need to be aware of a games ID, it can be helpful when collecting or verifying games, playing on emulators, downloading artwork, and any kind of hacking or modding. As a result, I wrote Read Game Media to easily extracted the ID from supported ISOs. Note that this requires that you already have a good rip of a game to your computer; it's not possible to use this to read the ID directly off a disc.
Read Game Media currently supports the following systems and game formats. Note: compressed formats such as CHD or XZ are generally supported for all formats, but not explicitly listed below.
- Sony
- PlayStation 1 / 2 - BIN/CUE, ISO, CSO
- PlayStation Portable - ISO, CSO, PKG
- PlayStation 3 - ISO, PKG
- PlayStation 4 - ISO, PKG
- PlayStation 5 - ISO
- PS Vita - PSV (PSVgameSD), PKG
- Microsoft
- Xbox - ISO, XBE
- Xbox 360 - ISO, STFS
- Nintendo
- NES / Famicom - NES (iNES)
- Famicom Disk System - FDS
- Game Boy / Game Boy Color - GB, GBC
- Super Nintendo - SFC, SMC
- Virtual Boy - VB
- Nintendo 64 - Z64, V64, N64
- GameCube - ISO, BIN, CUE, RVZ, CHD, physical device
- Game Boy Advance - GBA
- DS - NDS
- Wii - ISO, WAD, RVZ, CHD, physical device
- 3DS - 3DS, 3DZ, TMD
- Wii U - WUD, WUX, TMD
- Nintendo Switch - NSP, NSZ, XCI
- Sega
- Master System - SMS
- Game Gear - GG
- Genesis / Mega Drive - GEN, MD
- Sega CD / Mega-CD - BIN/CUE, ISO
- Saturn - BIN/CUE, ISO
- Dreamcast - BIN/CUE, ISO
- NEC
- TurboGrafx-16 / PC Engine - PCE, SGX
- TurboGrafx-CD / PC Engine CD - BIN/CUE, ISO
- PC-FX - BIN/CUE, ISO
- SNK
- Neo Geo CD - BIN/CUE, ISO
- Neo Geo Pocket / Pocket Color - NGP, NGC
- Atari
- 2600 - A26
- 5200 - A52
- 7800 - A78
- Lynx - LNX
- Jaguar - J64
- Bandai
- WonderSwan / WonderSwan Color - WS, WSC
- Mattel
- Intellivision - INT
- The 3DO Company
- 3DO - BIN/CUE, ISO
- Generic
- PC / unidentified ISO 9660 disc (full PVD dump) - BIN/CUE, ISO
It's only been tested against Redump and No-Intro verified dumps, so if you have any trouble I recommend first verifying your rip; Linux users may want to look at my Verify Game script for this.
Download Current Version: 2.0, Released: 09/01/2026
read-game-media.sh ( KB) - The Read Game Media BASH shell script
The Read Game Media changelog is included in the beginning of the script.
Installation
Read Game Media requires a few steps to properly configure:
- Download
read-game-media.shand move to a directory in your $PATH (eg,/usr/local/bin/) - Ensure that
read-game-media.shhas the execute bit set (eg,chmod a+x /usr/local/bin/read-game-media.sh) - Verify the following required helper utilities are installed:
- gawk (GNU awk) - used for some complex data transformations
- xxd (Vim) - used for hex reading and conversions
- Optionally verify the following helper utilities are installed for additional metadata:
- abgx360 - used to parse Xbox 360 ISOs for additional metadata
- chdman (MAME) / CDEmu - used to decompress or virtually read CHD images
- cdrtool - used to parse 3DS ROMs for additional metadata
- dolphin-tool (Dolphin) - used to parse GameCube and Wii ISOs for additional metadata
- maxcso - used to decompress non-standard PS2/PSP CSO images with
-C - nstool - used parse Switch XCI and NSP files for additional metadata
- JWUDTool (plus Java) - used to parse Wii U images for additional metadata
- Optionally define the following variables for extended Wii U metadata via JWUDTool:
- # Wii U key directory (or set with -k)
WIIU_KEYDIR="${HOME}/data/games/Nintendo/Wii U/Backup" - # Wii U JWUDTool JAR path (or set with -j)
JWUDTOOL="${HOME}/data/bin/JWUDTool.jar"
- # Wii U key directory (or set with -k)
Usage
Execute read-game-media.sh -h to display help information. This will describe the syntax for running the program and list all available options.
You may provide pass one or more game media files; if multiple files passed (such as *.iso), it'll check multiple files in parallel up to your number of CPU threads in order to speed up the verification process.
By default, read-game-media.sh will show all available metadata, which will vary between platforms and formats:
$ read-game-media.sh Ninja\ Gaiden\ Sigma.iso
Ninja Gaiden Sigma.iso
Game ID: BLUS-30036
Title: NINJA GAIDEN Σ
Disc Version: 01.01
Min Firmware: 01.7000
Resolution: 29 (480 (4:3) + 480/720/1080 (16:9))
Sound Format: 263 (LPCM 2.0/5.1 + DD 5.1)
Category: DG (Disc Game)
Parental Lvl: 9 (18+ years)
Region: USA
Created: 2007-05-07 22:45:00 +00:00
Platform: Sony PlayStation 3You may also pass the -q option to print only the game ID:
$ read-game-media.sh -q Ninja\ Gaiden\ Sigma.iso
BLUS-30036Technical Details
Read Game Media begins execution by determining the type of file. It then calls a format-specific extractor to read available metadata from the given format, then output through a common display function.>unpkg.py Note that because all game data is essentially being unpacked twice, reading the game ID for PS4 games is significantly slower, and takes up significantly more space in $TEMPDIR, than all other games.
Metadata is generally unique to each format. read-game-media.sh will parse the data as appropriate appropriate for the given platform. For example:
- PS1 and PS2 games use a simple text file named SYSTEM.CNF that includes the game ID and some other basic metadata
- PS3 and PS4 games include a file named PARAM.SFO with more extensive metadata
- Sega CD and Saturn images include ID info in the ISO's primary volume descriptor (PVD)
The retrieved metadata is then output to the terminal. By default, all available metadata will be output in one block per game. If the -q parameter is passed to read-game-media.sh, it will instead output only the game ID for that title, nothing else.