Nintendo 64, part of GameDB.
N64.data.json: All data, structured in the JSON formatN64.data.tsv: All data, structured in the TSV formatN64.release_dates.pdf: Histogram of release dates, stratified by regionN64.titles.json: Mapping of serial numbers to game titles, structured in the JSON format
The game folders in games have the structure NUS-NXXY-RRR, where XXY is the game code (also known as game ID), and RRR is the region code. The game code is stored directly within the ROM and can be used to uniquely identify the game:
- The first 2 characters of the game code (
XXin my notation above) are the Cartridge ID, which is at offsets0x3Cthrough0x3D(inclusive) of the ROM header - The 3rd character of the game code (
Yin my notation above) is the Country Code, which is at offset0x3Eof the ROM header
Note that the ROM header documentation assumes big-endian byte ordering, whereas some ROMs are little-endian. Before attempting to parse the game code from a ROM header, you first need to check the ROM's endianness, and if it is little-endian, you need to convert to big-endian. See the GameID N64 identification code for implementation details.