N64FlashcartMenu
Loading...
Searching...
No Matches
Data Structures | Enumerations | Functions
rom_info.h File Reference

N64 ROM Database. More...

Go to the source code of this file.

Data Structures

struct  rom_info_t
 ROM Information Structure. More...
 
struct  rom_info_t.libultra
 
union  rom_info_t.__unnamed18__
 
struct  rom_info_t.__unnamed18__.__unnamed21__
 
struct  rom_info_t.features
 The supported ROM accessories. More...
 

Enumerations

enum  rom_err_t { ROM_OK , ROM_ERR_IO , ROM_ERR_NO_FILE }
 ROM error enumeration.
 
enum  endianness_t { ENDIANNESS_BIG , ENDIANNESS_LITTLE , ENDIANNESS_BYTE_SWAP }
 ROM endian enumeration. More...
 
enum  category_type_t {
  N64_CART = 'N' , N64_DISK = 'D' , N64_CART_EXPANDABLE = 'C' , N64_DISK_EXPANDABLE = 'E' ,
  N64_ALECK64 = 'Z'
}
 ROM media type enumeration. More...
 
enum  destination_type_t {
  MARKET_JAPANESE_MULTI = 'A' , MARKET_BRAZILIAN = 'B' , MARKET_CHINESE = 'C' , MARKET_GERMAN = 'D' ,
  MARKET_NORTH_AMERICA = 'E' , MARKET_FRENCH = 'F' , MARKET_GATEWAY64_NTSC = 'G' , MARKET_DUTCH = 'H' ,
  MARKET_ITALIAN = 'I' , MARKET_JAPANESE = 'J' , MARKET_KOREAN = 'K' , MARKET_GATEWAY64_PAL = 'L' ,
  MARKET_CANADIAN = 'N' , MARKET_EUROPEAN_BASIC = 'P' , MARKET_SPANISH = 'S' , MARKET_AUSTRALIAN = 'U' ,
  MARKET_SCANDINAVIAN = 'W' , MARKET_OTHER_X = 'X' , MARKET_OTHER_Y = 'Y' , MARKET_OTHER_Z = 'Z'
}
 ROM market region & language type enumeration. More...
 
enum  save_type_t {
  SAVE_TYPE_NONE , SAVE_TYPE_EEPROM_4K , SAVE_TYPE_EEPROM_16K , SAVE_TYPE_SRAM ,
  SAVE_TYPE_SRAM_BANKED , SAVE_TYPE_SRAM_128K , SAVE_TYPE_FLASHRAM , SAVE_TYPE_FLASHRAM_PKST2
}
 ROM save type enumeration. More...
 
enum  expansion_pak_t {
  EXPANSION_PAK_NONE , EXPANSION_PAK_REQUIRED , EXPANSION_PAK_RECOMMENDED , EXPANSION_PAK_SUGGESTED ,
  EXPANSION_PAK_FAULTY
}
 ROM memory requirements enumeration. More...
 

Functions

rom_err_t rom_info_load (char *path, rom_info_t *rom_info)
 

Detailed Description

N64 ROM Database.

Note
Only works with N64 ROM's by checking the first 1024 bytes of the file.

Data Structure Documentation

◆ rom_info_t

struct rom_info_t

ROM Information Structure.

Data Fields
endianness_t endianness The file endian.
float clock_rate The clock rate defined in the ROM's header.
uint32_t boot_address The boot address defined in the ROM's header.
struct rom_info_t.libultra libultra
uint64_t check_code The check code defined in the ROM's header.
char title[20] The title defined in the ROM's header.
union rom_info_t.__unnamed18__ __unnamed__
uint8_t version The ROM version defined in the ROM's header.
cic_type_t cic_type
save_type_t save_type The save type required by the ROM.
struct rom_info_t.features features The supported ROM accessories.

◆ rom_info_t.libultra

struct rom_info_t.libultra
Data Fields
uint8_t version The SDK version defined in the ROM's header.
char revision The SDK revision defined in the ROM's header.

◆ rom_info_t.__unnamed18__

union rom_info_t.__unnamed18__
Data Fields
char game_code[4] The game code defined in the ROM's header.
struct rom_info_t.__unnamed18__.__unnamed21__ __unnamed__

◆ rom_info_t.__unnamed18__.__unnamed21__

struct rom_info_t.__unnamed18__.__unnamed21__
Data Fields
category_type_t category_code: 8 The game media type.
char unique_code[2] The game unique identifier.
destination_type_t destination_code: 8 The game region and or market.

◆ rom_info_t.features

struct rom_info_t.features

The supported ROM accessories.

Data Fields
bool controller_pak
bool rumble_pak
bool transfer_pak
bool voice_recognition_unit
bool real_time_clock
bool disk_conversion
bool combo_rom_disk_game
expansion_pak_t expansion_pak

Enumeration Type Documentation

◆ endianness_t

ROM endian enumeration.

Enumerator
ENDIANNESS_BIG 

Is Big Endian.

ENDIANNESS_LITTLE 

Is Little Endian.

ENDIANNESS_BYTE_SWAP 

Is Byte Swapped Endian.

◆ category_type_t

ROM media type enumeration.

Enumerator
N64_CART 

Is a stand alone Cartridge program.

N64_DISK 

Is a stand alone Disk Drive program.

N64_CART_EXPANDABLE 

Is a Cartridge program that could use an extra Disk Drive program to expand its capabilities.

N64_DISK_EXPANDABLE 

Is a Disk Drive program that could use an extra Cartridge program to expand its capabilities.

N64_ALECK64 

Is an Aleck64 program.

◆ destination_type_t

ROM market region & language type enumeration.

Enumerator
MARKET_JAPANESE_MULTI 

The ROM is designed for Japanese and "English" languages.

MARKET_BRAZILIAN 

The ROM is designed for Brazil (Portuguese) language.

MARKET_CHINESE 

The ROM is designed for Chinese language.

MARKET_GERMAN 

The ROM is designed for German language.

MARKET_NORTH_AMERICA 

The ROM is designed for North American "English" language.

MARKET_FRENCH 

The ROM is designed for French language.

MARKET_GATEWAY64_NTSC 

The ROM is designed for a NTSC Gateway 64.

MARKET_DUTCH 

The ROM is designed for Dutch language.

MARKET_ITALIAN 

The ROM is designed for Italian language.

MARKET_JAPANESE 

The ROM is designed for Japanese language.

MARKET_KOREAN 

The ROM is designed for Korean language.

MARKET_GATEWAY64_PAL 

The ROM is designed for a PAL Gateway 64.

MARKET_CANADIAN 

The ROM is designed for Canada region (English and French) language.

MARKET_EUROPEAN_BASIC 

The ROM is designed for European market and languages (must at minimum include English).

MARKET_SPANISH 

The ROM is designed for Spanish language.

MARKET_AUSTRALIAN 

The ROM is designed for Australia (English) language.

MARKET_SCANDINAVIAN 

The ROM is designed for Scandinavian (Swedish, Norwegian, Finnish, etc.) languages.

MARKET_OTHER_X 

The ROM is designed for an undefined region and TBD language(s).

MARKET_OTHER_Y 

The ROM is designed for a European region and language(s).

MARKET_OTHER_Z 

The ROM is designed for an undefined region and TBD language(s).

◆ save_type_t

ROM save type enumeration.

Enumerator
SAVE_TYPE_NONE 

There is no expected save type.

◆ expansion_pak_t

ROM memory requirements enumeration.

Enumerator
EXPANSION_PAK_NONE 

The ROM is happy with 4MB of memory.

EXPANSION_PAK_REQUIRED 

The ROM requires 8MB of memory.

EXPANSION_PAK_RECOMMENDED 

The ROM recommends 8MB of memory.

EXPANSION_PAK_SUGGESTED 

The ROM suggests 8MB of memory.

EXPANSION_PAK_FAULTY 

The ROM is faulty when using 8MB of memory.