summaryrefslogtreecommitdiff
path: root/asm/rom_header.s
blob: 42aeb9e24ac815d39323598c35670707a173c473 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
/* ROM HEADER for Pokemon Diamond (US) */

	.section .text

	.balign 4
	.global GameTitle
GameTitle:
	.asciz "POKEMON D"

	.balign 4
	.global GameCode
GameCode:
	.ascii "ADAE"

	.global MakerCode
MakerCode:
	.ascii "01"

	.global UnitCode
UnitCode:
	.byte 0
	.global DeviceType
DeviceType:
	.byte 0
	.global DeviceCapacity
DeviceCapacity:
	.byte 9
/*reserved*/
	.space 9

	.global RomVersion
RomVersion:
	.byte 5

/*reserved*/
	.space 1

	.global ARM9ROMOffset
ARM9ROMOffset:
	.word 0x00004000
	.global ARM9EntryAddress
ARM9EntryAddress:
	.word 0x02000800
	.global ARM9RAMAddress
ARM9RAMAddress:
	.word 0x02000000
	.global ARM9CodeSize
ARM9CodeSize:
	.word 0x00107724
	.global ARM7ROMOffset
ARM7ROMOffset:
	.word 0x0030D000
	.global ARM7EntryAddress
ARM7EntryAddress:
	.word 0x02380000
	.global ARM7RAMAddress
ARM7RAMAddress:
	.word 0x02380000
	.global ARM7CodeSize
ARM7CodeSize:
	.word 0x0002931C
	.global FileNameTableOffset
FileNameTableOffset:
	.word 0x00336400
	.global FileNameTableSize
FileNameTableSize:
	.word 0x157F
	.global FATOffset
FATOffset:
	.word 0x337A00
	.global FATSize
FATSize:
	.word 0xB20
	.global ARM9OverlayOffset
ARM9OverlayOffset:
	.word 0x10B800
	.global ARM9OverlaySize
ARM9OverlaySize:
	.word 0xAE0
	.global ARM7OverlayOffset
ARM7OverlayOffset:
	.word 0
	.global ARM7OverlaySize
ARM7OverlaySize:
	.word 0
	.global ROMControlInfo1
ROMControlInfo1:
	.word 0x00416657
	.global ROMControlInfo2
ROMControlInfo2:
	.word 0x081808F8
	.global IconTitleOffset
IconTitleOffset:
	.word 0x338600
	.global SecureAreaCC
SecureAreaCC:
	.short 0x5931
	.global ROMControlInfo3
ROMControlInfo3:
	.short 0x0D7E
	.global ARM9AutoLoadHook
ARM9AutoLoadHook:
	.extern ARM9AutoLoad
	.word ARM9AutoLoad
	.global ARM7AutoLoadHook
ARM7AutoLoadHook:
	.extern ARM7AutoLoad
	.word ARM7AutoLoad
	.global SecureAreaDisable
SecureAreaDisable:
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
	.global ApplicationEndOffset
ApplicationEndOffset:
	.word 0x03A55EC0
	.global ROMHeaderSize
ROMHeaderSize:
	.word 0x00004000

/* should be 36 bytes here but again theres stuff here. TODO: Identify */
	.byte 0x68, 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
	.byte 0x00, 0x00, 0x00, 0x00

	.global PassMeAutobootDetect
PassMeAutobootDetect:
	.word 0x00000000

/* reserved */
	.space 16

	.global NintendoLogo
NintendoLogo:
	.byte 0x24, 0xFF, 0xAE, 0x51, 0x69, 0x9A, 0xA2, 0x21, 0x3D, 0x84, 0x82, 0x0A, 0x84, 0xE4, 0x09, 0xAD
	.byte 0x11, 0x24, 0x8B, 0x98, 0xC0, 0x81, 0x7F, 0x21, 0xA3, 0x52, 0xBE, 0x19, 0x93, 0x09, 0xCE, 0x20
	.byte 0x10, 0x46, 0x4A, 0x4A, 0xF8, 0x27, 0x31, 0xEC, 0x58, 0xC7, 0xE8, 0x33, 0x82, 0xE3, 0xCE, 0xBF
	.byte 0x85, 0xF4, 0xDF, 0x94, 0xCE, 0x4B, 0x09, 0xC1, 0x94, 0x56, 0x8A, 0xC0, 0x13, 0x72, 0xA7, 0xFC
	.byte 0x9F, 0x84, 0x4D, 0x73, 0xA3, 0xCA, 0x9A, 0x61, 0x58, 0x97, 0xA3, 0x27, 0xFC, 0x03, 0x98, 0x76
	.byte 0x23, 0x1D, 0xC7, 0x61, 0x03, 0x04, 0xAE, 0x56, 0xBF, 0x38, 0x84, 0x00, 0x40, 0xA7, 0x0E, 0xFD
	.byte 0xFF, 0x52, 0xFE, 0x03, 0x6F, 0x95, 0x30, 0xF1, 0x97, 0xFB, 0xC0, 0x85, 0x60, 0xD6, 0x80, 0x25
	.byte 0xA9, 0x63, 0xBE, 0x03, 0x01, 0x4E, 0x38, 0xE2, 0xF9, 0xA2, 0x34, 0xFF, 0xBB, 0x3E, 0x03, 0x44
	.byte 0x78, 0x00, 0x90, 0xCB, 0x88, 0x11, 0x3A, 0x94, 0x65, 0xC0, 0x7C, 0x63, 0x87, 0xF0, 0x3C, 0xAF
	.byte 0xD6, 0x25, 0xE4, 0x8B, 0x38, 0x0A, 0xAC, 0x72, 0x21, 0xD4, 0xF8, 0x07

	.global LogoCRC
LogoCRC:
	.short 0xCF56
	.global HeaderCRC
HeaderCRC:
	.short 0xCA37

/* reserved */
.space 160 /* hack so it builds */