#include <nitro/card.h>
/* ROM header structure */ typedef struct { /* 0x000-0x020 [System reserved area] */ char game_name[12]; /* Software title name */ u32 game_code; /* Initial code */ u16 maker_code; /* Maker code */ u8 product_id; /* Main unit code */ u8 device_type; /* Device type */ u8 device_size; /* Device capacity */ u8 reserved_A[9]; /* System reserved A */ u8 game_version; /* Software version */ u8 property; /* Internal use flag */ /* 0x020-0x040 [Parameters for resident modulel use] */ void* main_rom_offset; /* ARM9 transfer source ROM offset */ void* main_entry_address; /* ARM9 execution start address (Not implemented) */ void* main_ram_address; /* ARM9 transfer destination RAM offset */ u32 main_size; /* ARM9 transfer size */ void* sub_rom_offset; /* ARM7 transfer source ROM offset */ void* sub_entry_address; /* ARM7 execution start address (Not implemented) */ void* sub_ram_address; /* ARM7 transfer destination RAM offset */ u32 sub_size; /* ARM7 transfer size */ /* 0x040-0x050 [File table parameters] */ CARDRomRegion fnt; /* File name table */ CARDRomRegion fat; /* File allocation table */ /* 0x050-0x060 [Overlay header table parameters ] */ CARDRomRegion main_ovt; /* ARM9 overlay header table */ CARDRomRegion sub_ovt; /* ARM7 overlay header table */ /* 0x060-0x070 [System reserved area] */ u8 rom_param_A[8]; /* Mask ROM control parameters A */ u32 banner_offset; /* Banner file ROM offset */ u16 secure_crc; /* Secure area CRC */ u8 rom_param_B[2]; /* Mask ROM control parameters B */ /* 0x070-0x078 [Autoload parameters] */ void* main_autoload_done; /* ARM9 Autoload hook address */ void* sub_autoload_done; /* ARM7 Autoload hook address */ /* 0x078-0x0C0 [System reserved area] */ u8 rom_param_C[8]; /* Mask ROM control parameters C */ u32 rom_size; /* Application final ROM offset */ u32 header_size; /* ROM header size */ u8 reserved_B[0x38]; /* System reserved B */ /* 0x0C0-0x160 [System reserved area] */ u8 logo_data[0x9C]; /* NINTENDO Logo image data */ u16 logo_crc; /* NINTENDO logo CRC */ u16 header_crc; /* ROM header data CRC */ } CARDRomHeader;
This is the structure that stores information about the data stored in ROM. For information on each member, see the strict definitions in the programming manual.
CARD_GetRomRegionFNT, CARD_GetRomRegionFAT
2005/03/18 Initial version.
CONFIDENTIAL