summaryrefslogtreecommitdiff
path: root/arm9/asm/options.s
blob: 14d2a449418fa5022a0e17af4524a7600eb3af67 (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
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
	.include "asm/macros.inc"
    .include "global.inc"

	.extern gMain

	.text

	thumb_func_start FUN_02024F30
FUN_02024F30: ; 0x02024F30
	push {r4, lr}
	mov r1, #0x2
	bl AllocFromHeap
	add r4, r0, #0x0
	bl Options_init
	add r0, r4, #0x0
	pop {r4, pc}
	.balign 4

	thumb_func_start FUN_02024F44
FUN_02024F44: ; 0x02024F44
	ldr r3, _02024F4C ; =MI_CpuCopy8
	mov r2, #0x2
	bx r3
	nop
_02024F4C: .word MI_CpuCopy8

	thumb_func_start Options_init
Options_init: ; 0x02024F50
	push {r4, lr}
	add r4, r0, #0x0
	mov r1, #0x0
	mov r2, #0x2
	bl MI_CpuFill8
	ldrh r1, [r4, #0x0]
	mov r0, #0xf
	bic r1, r0
	mov r0, #0x1
	orr r0, r1
	strh r0, [r4, #0x0]
	ldrh r1, [r4, #0x0]
	mov r0, #0x30
	bic r1, r0
	strh r1, [r4, #0x0]
	ldrh r1, [r4, #0x0]
	mov r0, #0x40
	bic r1, r0
	strh r1, [r4, #0x0]
	ldrh r1, [r4, #0x0]
	mov r0, #0x80
	bic r1, r0
	strh r1, [r4, #0x0]
	ldrh r1, [r4, #0x0]
	ldr r0, _02024F94 ; =0xFFFFFCFF
	and r0, r1
	strh r0, [r4, #0x0]
	ldrh r1, [r4, #0x0]
	ldr r0, _02024F98 ; =0xFFFF83FF
	and r0, r1
	strh r0, [r4, #0x0]
	pop {r4, pc}
	nop
_02024F94: .word 0xFFFFFCFF
_02024F98: .word 0xFFFF83FF

	thumb_func_start FUN_02024F9C
FUN_02024F9C: ; 0x02024F9C
	push {r3, lr}
	cmp r0, #0x0
	beq _02024FAC
	bl Sav2_PlayerData_GetOptionsAddr
	bl FUN_02025064
	add r1, r0, #0x0
_02024FAC:
	cmp r1, #0x0
	beq _02024FCA
	cmp r1, #0x1
	beq _02024FBA
	cmp r1, #0x2
	beq _02024FC2
	b _02024FCA
_02024FBA:
	ldr r0, _02024FD4 ; =gMain
	mov r1, #0x1
	str r1, [r0, #0x34]
	pop {r3, pc}
_02024FC2:
	ldr r0, _02024FD4 ; =gMain
	mov r1, #0x3
	str r1, [r0, #0x34]
	pop {r3, pc}
_02024FCA:
	ldr r0, _02024FD4 ; =gMain
	mov r1, #0x0
	str r1, [r0, #0x34]
	pop {r3, pc}
	nop
_02024FD4: .word gMain

	thumb_func_start FUN_02024FD8
FUN_02024FD8: ; 0x02024FD8
	ldrh r0, [r0, #0x0]
	lsl r0, r0, #0x1c
	lsr r0, r0, #0x1c
	bx lr

	thumb_func_start FUN_02024FE0
FUN_02024FE0: ; 0x02024FE0
	ldrh r3, [r0, #0x0]
	mov r2, #0xf
	lsl r1, r1, #0x10
	bic r3, r2
	lsr r2, r1, #0x10
	mov r1, #0xf
	and r1, r2
	orr r1, r3
	strh r1, [r0, #0x0]
	bx lr

	thumb_func_start FUN_02024FF4
FUN_02024FF4: ; 0x02024FF4
	push {r3, lr}
	bl FUN_02024FD8
	cmp r0, #0x0
	bne _02025002
	mov r0, #0x8
	pop {r3, pc}
_02025002:
	cmp r0, #0x1
	bne _0202500A
	mov r0, #0x4
	pop {r3, pc}
_0202500A:
	mov r0, #0x1
	pop {r3, pc}
	.balign 4

	thumb_func_start FUN_02025010
FUN_02025010: ; 0x02025010
	ldrh r0, [r0, #0x0]
	lsl r0, r0, #0x1a
	lsr r0, r0, #0x1e
	bx lr

	thumb_func_start FUN_02025018
FUN_02025018: ; 0x02025018
	lsl r1, r1, #0x10
	lsr r1, r1, #0x10
	lsl r1, r1, #0x1e
	ldrh r3, [r0, #0x0]
	mov r2, #0x30
	lsr r1, r1, #0x1a
	bic r3, r2
	orr r1, r3
	strh r1, [r0, #0x0]
	bx lr

	thumb_func_start FUN_0202502C
FUN_0202502C: ; 0x0202502C
	ldrh r0, [r0, #0x0]
	lsl r0, r0, #0x18
	lsr r0, r0, #0x1f
	bx lr

	thumb_func_start FUN_02025034
FUN_02025034: ; 0x02025034
	lsl r1, r1, #0x10
	lsr r1, r1, #0x10
	lsl r1, r1, #0x1f
	ldrh r3, [r0, #0x0]
	mov r2, #0x80
	lsr r1, r1, #0x18
	bic r3, r2
	orr r1, r3
	strh r1, [r0, #0x0]
	bx lr

	thumb_func_start FUN_02025048
FUN_02025048: ; 0x02025048
	ldrh r0, [r0, #0x0]
	lsl r0, r0, #0x19
	lsr r0, r0, #0x1f
	bx lr

	thumb_func_start FUN_02025050
FUN_02025050: ; 0x02025050
	lsl r1, r1, #0x10
	lsr r1, r1, #0x10
	lsl r1, r1, #0x1f
	ldrh r3, [r0, #0x0]
	mov r2, #0x40
	lsr r1, r1, #0x19
	bic r3, r2
	orr r1, r3
	strh r1, [r0, #0x0]
	bx lr

	thumb_func_start FUN_02025064
FUN_02025064: ; 0x02025064
	ldrh r0, [r0, #0x0]
	lsl r0, r0, #0x16
	lsr r0, r0, #0x1e
	bx lr

	thumb_func_start FUN_0202506C
FUN_0202506C: ; 0x0202506C
	lsl r1, r1, #0x10
	lsr r1, r1, #0x10
	lsl r1, r1, #0x1e
	ldrh r3, [r0, #0x0]
	ldr r2, _02025080 ; =0xFFFFFCFF
	lsr r1, r1, #0x16
	and r2, r3
	orr r1, r2
	strh r1, [r0, #0x0]
	bx lr
	.balign 4
_02025080: .word 0xFFFFFCFF

	thumb_func_start FUN_02025084
FUN_02025084: ; 0x02025084
	ldrh r0, [r0, #0x0]
	lsl r0, r0, #0x11
	lsr r0, r0, #0x1b
	bx lr

	thumb_func_start FUN_0202508C
FUN_0202508C: ; 0x0202508C
	lsl r1, r1, #0x10
	lsr r1, r1, #0x10
	lsl r1, r1, #0x1b
	ldrh r3, [r0, #0x0]
	ldr r2, _020250A0 ; =0xFFFF83FF
	lsr r1, r1, #0x11
	and r2, r3
	orr r1, r2
	strh r1, [r0, #0x0]
	bx lr
	.balign 4
_020250A0: .word 0xFFFF83FF