source: rtems/c/src/lib/libbsp/arm/nds/tools/ndstool/include/header.h @ 9a12c7e5

4.104.11
Last change on this file since 9a12c7e5 was 9a12c7e5, checked in by Joel Sherrill <joel.sherrill@…>, on May 4, 2009 at 2:04:42 AM

2009-05-03 Joel Sherrill <joel.sherrill@…>

  • ndstool/include/banner.h, ndstool/include/header.h, ndstool/include/ndstree.h, ndstool/source/banner.cpp, ndstool/source/header.cpp, ndstool/source/ndscreate.cpp, ndstool/source/ndstool.cpp, ndstool/source/passme.cpp: Remove warnings for deprecated character conversions.
  • Property mode set to 100644
File size: 2.7 KB
Line 
1#pragma pack(1)
2
3struct Header
4{
5        char title[0xC];
6        char gamecode[0x4];
7        char makercode[2];
8        unsigned char unitcode;                                                 // product code. 0 = Nintendo DS
9        unsigned char devicetype;                                               // device code. 0 = normal
10        unsigned char devicecap;                                                // device size. (1<<n Mbit)
11        unsigned char reserved1[0x9];                                   // 0x015..0x01D
12        unsigned char romversion;
13        unsigned char reserved2;                                                // 0x01F
14        unsigned_int arm9_rom_offset;                                   // points to libsyscall and rest of ARM9 binary
15        unsigned_int arm9_entry_address;
16        unsigned_int arm9_ram_address;
17        unsigned_int arm9_size;
18        unsigned_int arm7_rom_offset;
19        unsigned_int arm7_entry_address;
20        unsigned_int arm7_ram_address;
21        unsigned_int arm7_size;
22        unsigned_int fnt_offset;
23        unsigned_int fnt_size;
24        unsigned_int fat_offset;
25        unsigned_int fat_size;
26        unsigned_int arm9_overlay_offset;
27        unsigned_int arm9_overlay_size;
28        unsigned_int arm7_overlay_offset;
29        unsigned_int arm7_overlay_size;
30        unsigned_int rom_control_info1;                                 // 0x00416657 for OneTimePROM
31        unsigned_int rom_control_info2;                                 // 0x081808F8 for OneTimePROM
32        unsigned_int banner_offset;
33        unsigned_short secure_area_crc;
34        unsigned_short rom_control_info3;                               // 0x0D7E for OneTimePROM
35        unsigned_int offset_0x70;                                               // magic1 (64 bit encrypted magic code to disable LFSR)
36        unsigned_int offset_0x74;                                               // magic2
37        unsigned_int offset_0x78;                                               // unique ID for homebrew
38        unsigned_int offset_0x7C;                                               // unique ID for homebrew
39        unsigned_int application_end_offset;                    // rom size
40        unsigned_int rom_header_size;
41        unsigned_int offset_0x88;                                               // reserved... ?
42        unsigned_int offset_0x8C;
43
44        // reserved
45        unsigned_int offset_0x90;
46        unsigned_int offset_0x94;
47        unsigned_int offset_0x98;
48        unsigned_int offset_0x9C;
49        unsigned_int offset_0xA0;
50        unsigned_int offset_0xA4;
51        unsigned_int offset_0xA8;
52        unsigned_int offset_0xAC;
53        unsigned_int offset_0xB0;
54        unsigned_int offset_0xB4;
55        unsigned_int offset_0xB8;
56        unsigned_int offset_0xBC;
57
58        unsigned char logo[156];                                                // character data
59        unsigned_short logo_crc;
60        unsigned_short header_crc;
61
62        // 0x160..0x17F reserved
63        unsigned_int offset_0x160;
64        unsigned_int offset_0x164;
65        unsigned_int offset_0x168;
66        unsigned_int offset_0x16C;
67        unsigned char zero[0x90];
68};
69
70#pragma pack()
71
72
73struct Country
74{
75        const char countrycode;
76        const char *name;
77};
78
79struct Maker
80{
81        const char *makercode;
82        const char *name;
83};
84
85extern Country countries[];
86extern int NumCountries;
87
88extern Maker makers[];
89extern int NumMakers;
90
91unsigned short CalcHeaderCRC(Header &header);
92unsigned short CalcLogoCRC(Header &header);
93void FixHeaderCRC(char *ndsfilename);
94void ShowInfo(char *ndsfilename);
95int HashAndCompareWithList(char *filename, unsigned char sha1[]);
96int DetectRomType();
97unsigned short CalcSecureAreaCRC(bool encrypt);
Note: See TracBrowser for help on using the repository browser.