This source file includes following definitions.
- change_video_tables
- set_quality
- movie_record_task
- sub_FF986044_my
1 #include "conf.h"
2 #include "lolevel.h"
3 #include "platform.h"
4 #include "core.h"
5 #include "dryos31.h"
6
7
8
9
10
11 void change_video_tables(__attribute__ ((unused))int a, __attribute__ ((unused))int b) {}
12
13
14 void set_quality(int *x){
15 if (conf.video_mode) *x=12-((conf.video_quality-1)*(12+17)/(99-1));
16 }
17
18
19 void __attribute__((naked,noinline)) movie_record_task(){
20 asm volatile(
21
22 " STMFD SP!, {R2-R10,LR}\n"
23
24 " LDR R9, =0x2710\n"
25 " LDR R7, =0xFF9858B0\n"
26 " LDR R4, =0x7898\n"
27 " MOV R8, #1\n"
28
29
30
31 " LDR R6, =sub_FF986044_my\n"
32
33
34
35 " MOV R5, #0\n"
36 "loc_FF986670:\n"
37 " LDR R0, [R4,#0x24]\n"
38 " MOV R2, #0\n"
39 " ADD R1, SP, #0x4\n"
40 " BL sub_FF83AE20\n"
41 " LDR R0, [R4,#0x2C]\n"
42 " CMP R0, #0\n"
43 " LDRNE R0, [R4,#0xC]\n"
44 " CMPNE R0, #2\n"
45 " LDRNE R0, [R4,#0x44]\n"
46 " CMPNE R0, #6\n"
47 " BNE loc_FF986794\n"
48 " LDR R0, [SP,#0x4]\n"
49 " LDR R1, [R0]\n"
50 " SUB R1, R1, #2\n"
51 " CMP R1, #0xA\n"
52 " ADDLS PC, PC, R1,LSL#2\n"
53 " B loc_FF986794\n"
54
55 "loc_FF9866B4:\n"
56 " B loc_FF986744\n"
57 "loc_FF9866B8:\n"
58 " B loc_FF986768\n"
59 "loc_FF9866BC:\n"
60 " B loc_FF986778\n"
61 "loc_FF9866C0:\n"
62 " B loc_FF986780\n"
63 "loc_FF9866C4:\n"
64 " B loc_FF98674C\n"
65 "loc_FF9866C8:\n"
66 " B loc_FF986788\n"
67 "loc_FF9866CC:\n"
68 " B loc_FF986758\n"
69 "loc_FF9866D0:\n"
70 " B loc_FF986794\n"
71 "loc_FF9866D4:\n"
72 " B loc_FF986790\n"
73 "loc_FF9866D8:\n"
74 " B loc_FF986710\n"
75 "loc_FF9866DC:\n"
76 " B loc_FF9866E0\n"
77 "loc_FF9866E0:\n"
78 " STR R5, [R4,#0x40]\n"
79 " STR R5, [R4,#0x30]\n"
80 " STR R5, [R4,#0x34]\n"
81 " STRH R5, [R4,#6]\n"
82 " STR R6, [R4,#0xCC]\n"
83 " STR R7, [R4,#0xB4]\n"
84 " LDR R0, [R4,#0xC]\n"
85 " ADD R0, R0, #1\n"
86 " STR R0, [R4,#0xC]\n"
87 " MOV R0, #6\n"
88 " STR R0, [R4,#0x44]\n"
89 " B loc_FF986730\n"
90 "loc_FF986710:\n"
91 " STR R5, [R4,#0x40]\n"
92 " STR R5, [R4,#0x30]\n"
93 " STR R6, [R4,#0xCC]\n"
94 " STR R7, [R4,#0xB4]\n"
95 " LDR R0, [R4,#0xC]\n"
96 " ADD R0, R0, #1\n"
97 " STR R0, [R4,#0xC]\n"
98 " STR R8, [R4,#0x44]\n"
99 "loc_FF986730:\n"
100 " LDR R2, =0xFF98508C\n"
101 " LDR R1, =0xB0300\n"
102 " LDR R0, =0xFF9851A0\n"
103 " BL sub_FF8530AC\n"
104 " B loc_FF986794\n"
105 "loc_FF986744:\n"
106
107 " BL sub_FF985DDC\n"
108 " B loc_FF986794\n"
109 "loc_FF98674C:\n"
110 " LDR R1, [R4,#0xCC]\n"
111 " BLX R1\n"
112 " B loc_FF986794\n"
113 "loc_FF986758:\n"
114 " LDR R1, [R0,#0x18]\n"
115 " LDR R0, [R0,#4]\n"
116 " BL sub_FFAD9C30\n"
117 " B loc_FF986794\n"
118 "loc_FF986768:\n"
119 " LDR R0, [R4,#0x44]\n"
120 " CMP R0, #5\n"
121 " STRNE R8, [R4,#0x34]\n"
122 " B loc_FF986794\n"
123 "loc_FF986778:\n"
124 " BL sub_FF98555C\n"
125 " B loc_FF986794\n"
126 "loc_FF986780:\n"
127 " BL sub_FF9851EC\n"
128 " B loc_FF986794\n"
129 "loc_FF986788:\n"
130 " BL sub_FF985018\n"
131 " B loc_FF986794\n"
132 "loc_FF986790:\n"
133 " BL sub_FF986C48\n"
134 "loc_FF986794:\n"
135 " LDR R1, [SP,#0x4]\n"
136 " MOV R3, #0x5F0\n"
137 " STR R5, [R1]\n"
138 " STR R3, [SP]\n"
139 " LDR R0, [R4,#0x28]\n"
140 " LDR R3, =0xFF984CE4\n"
141 " MOV R2, R9\n"
142 " BL sub_FF83B774\n"
143 " B loc_FF986670\n"
144
145 );
146 }
147
148 void __attribute__((naked,noinline)) sub_FF986044_my(){
149 asm volatile(
150 " STMFD SP!, {R4-R11,LR}\n"
151 " SUB SP, SP, #0x64\n"
152 " MOV R8, #0\n"
153 " LDR R7, =0x7898\n"
154 " STR R8, [SP,#0x54]\n"
155 " STR R8, [SP,#0x4C]\n"
156 " STR R8, [R7,#0xB8]\n"
157 " STR R8, [R7,#0xBC]\n"
158 " STR R8, [R7,#0xC0]\n"
159 " MOV R4, R0\n"
160 " STR R8, [R7,#0xC4]\n"
161 " LDR R0, [R7,#0x44]\n"
162 " MOV R9, #0\n"
163 " CMP R0, #3\n"
164 " MOVEQ R0, #4\n"
165 " STREQ R0, [R7,#0x44]\n"
166 " LDR R0, [R7,#0xB4]\n"
167 " MOV R6, #0\n"
168 " MOV R5, #1\n"
169 " BLX R0\n"
170 " LDR R0, [R7,#0x44]\n"
171 " CMP R0, #6\n"
172 " BEQ loc_FF9860B4\n"
173
174 " LDR R1, [R7,#0xC]\n"
175 " CMP R1, #2\n"
176 " BNE loc_FF9860DC\n"
177 " CMP R0, #5\n"
178 " BEQ loc_FF9860EC\n"
179 "loc_FF9860B4:\n"
180 " MOV R6, #1\n"
181 " ADD R3, SP, #0x34\n"
182 " LDR R2, =0xFF985FE0\n"
183 " LDR R1, =0xFF986040\n"
184 " LDR R0, =0xFF9860A0\n"
185 " BL sub_FF853E78\n"
186 " LDR R0, [R7,#0x44]\n"
187 " CMP R0, #4\n"
188 " MOVNE R5, #0\n"
189 " B loc_FF9860FC\n"
190 "loc_FF9860DC:\n"
191 " CMP R0, #4\n"
192 " BEQ loc_FF9860FC\n"
193 " CMP R1, #2\n"
194 " BNE loc_FF9860F4\n"
195 "loc_FF9860EC:\n"
196 " MOV R0, #0\n"
197 " BL sub_FF853E84\n"
198 "loc_FF9860F4:\n"
199 " ADD SP, SP, #0x64\n"
200 " LDMFD SP!, {R4-R11,PC}\n"
201 "loc_FF9860FC:\n"
202 " LDRH R0, [R7,#6]\n"
203 " CMP R0, #1\n"
204 " LDREQ R1, =0x809\n"
205 " LDREQ R0, =0xFF984CE4\n"
206 " BLEQ sub_FF81EB78\n"
207 " LDRH R0, [R7,#6]\n"
208 " CMP R0, #3\n"
209 " BNE loc_FF986130\n"
210 " LDR R0, [R7,#0x6C]\n"
211 " LDR R1, [R7,#0xC8]\n"
212 " BL sub_FFB89BB4\n"
213 " CMP R1, #0\n"
214 " MOVNE R5, #0\n"
215 "loc_FF986130:\n"
216 " LDR R0, [R7,#0x44]\n"
217 " CMP R0, #6\n"
218 " CMPNE R0, #1\n"
219 " CMPNE R0, #3\n"
220 " BNE loc_FF986174\n"
221 " CMP R6, #1\n"
222 " CMPEQ R5, #0\n"
223 " BNE loc_FF986174\n"
224 " BL sub_FF853E7C\n"
225 " LDR R0, [R7,#0x18]\n"
226 " MOV R1, #0x3E8\n"
227 " BL sub_FF83B23C\n"
228 " CMP R0, #9\n"
229 " BNE loc_FF986584\n"
230 " MOV R0, #0x90000\n"
231 " BL sub_FF89C988\n"
232 " B loc_FF9860F4\n"
233 "loc_FF986174:\n"
234 " CMP R5, #1\n"
235 " MOV R10, #1\n"
236 " BNE loc_FF98619C\n"
237 " ADD R3, SP, #0x4C\n"
238 " ADD R2, SP, #0x50\n"
239 " ADD R1, SP, #0x54\n"
240 " ADD R0, SP, #0x58\n"
241 " BL sub_FFAD9D58\n"
242 " MOVS R9, R0\n"
243 " BNE loc_FF9861B8\n"
244 "loc_FF98619C:\n"
245 " LDR R0, [R7,#0x34]\n"
246 " CMP R0, #1\n"
247 " BNE loc_FF9862F4\n"
248 " LDR R0, [R7,#0x6C]\n"
249 " LDR R1, [R7,#0x48]\n"
250 " CMP R0, R1\n"
251 " BCC loc_FF9862F4\n"
252 "loc_FF9861B8:\n"
253 " MOV R0, R9\n"
254 " BL sub_FF985A68\n"
255 " LDR R0, [R7,#0xC]\n"
256 " CMP R0, #2\n"
257 " BNE loc_FF986228\n"
258 " MOV R1, #0\n"
259 " LDR R0, =0xFF985FD4\n"
260 " BL sub_FFA8E274\n"
261 " LDR R2, [R7,#0x64]\n"
262 " ADD R3, SP, #0x5C\n"
263 " STRD R2, [SP,#0x28]\n"
264 " MOV R2, #0x18\n"
265 " ADD R1, SP, #0x34\n"
266 " ADD R0, SP, #0x10\n"
267 " BL sub_FFB87554\n"
268 " LDR R1, [R7,#0x84]\n"
269 " LDR R2, [R7,#0x88]\n"
270 " MOV R3, #0xFFFFFFFE\n"
271 " ADD R0, SP, #0x60\n"
272 " STMEA SP, {R0-R3}\n"
273 " LDR R0, =0xB0348\n"
274 " MOV R3, #0\n"
275 " MOV R2, #0\n"
276 " MOV R1, #0x40\n"
277 " BL sub_FFA8E1CC\n"
278 " B loc_FF98627C\n"
279 "loc_FF986220:\n"
280 " MOV R1, #1\n"
281 " B loc_FF986508\n"
282 "loc_FF986228:\n"
283 " BL loc_FF986C60\n"
284 " LDR R2, [R7,#0x64]\n"
285 " ADD R3, SP, #0x5C\n"
286 " MOV R1, #0xFFFFFFFE\n"
287 " MOV R0, #0\n"
288 " ADD R5, SP, #0x1C\n"
289 " STMIA R5, {R0-R3}\n"
290 " LDR R3, [R4,#0x1C]\n"
291 " LDR R1, [R7,#0x84]\n"
292 " LDR R2, [R7,#0x88]\n"
293 " ADD R4, SP, #0xC\n"
294 " ADD R0, SP, #0x60\n"
295 " STMIA R4, {R0-R3}\n"
296 " MOV R3, #0\n"
297 " MOV R1, #0x40\n"
298 " MOV R2, #0\n"
299 " STMEA SP, {R1-R3}\n"
300 " LDR R3, =0xB0348\n"
301 " MOV R1, #0\n"
302 " MOV R0, #0\n"
303 " BL sub_FFA8CC7C\n"
304
305 "loc_FF98627C:\n"
306 " LDR R0, [R7,#0x18]\n"
307 " LDR R1, [R7,#0x60]\n"
308 " BL sub_FF83B23C\n"
309 " CMP R0, #9\n"
310 " BEQ loc_FF986220\n"
311 " LDR R0, [SP,#0x5C]\n"
312 " CMP R0, #0\n"
313 " BEQ loc_FF9862A4\n"
314
315 "loc_FF98629C:\n"
316 " MOV R1, #1\n"
317 " B loc_FF986520\n"
318
319 "loc_FF9862A4:\n"
320 " LDR R0, [R7,#0xC]\n"
321 " MOV R4, #5\n"
322 " CMP R0, #2\n"
323 " MOV R0, #1\n"
324 " BNE loc_FF9862E0\n"
325 " BL sub_FFA8E234\n"
326 " BL sub_FFA8E25C\n"
327 " MOV R0, #0\n"
328 " BL sub_FF853E84\n"
329 " BL sub_FF853E94\n"
330 " STR R4, [R7,#0x44]\n"
331 " BL loc_FF986C60\n"
332 " BL sub_FF853EF0\n"
333 " STR R10, [R7,#0x44]\n"
334 " B loc_FF9862EC\n"
335 "loc_FF9862E0:\n"
336 " BL sub_FFA8CD30\n"
337 " BL sub_FFA8CD90\n"
338 " STR R4, [R7,#0x44]\n"
339 "loc_FF9862EC:\n"
340 " STR R8, [R7,#0x34]\n"
341 " B loc_FF9860F4\n"
342 "loc_FF9862F4:\n"
343 " CMP R5, #1\n"
344 " BNE loc_FF98657C\n"
345 " STR R10, [R7,#0x38]\n"
346 " LDR R0, [R7,#0x6C]\n"
347 " LDR R11, [R4,#0xC]\n"
348 " CMP R0, #0\n"
349 " LDRNE R9, [SP,#0x58]\n"
350 " LDRNE R10, [SP,#0x54]\n"
351 " BNE loc_FF986440\n"
352 " LDR R0, [R7,#0xC]\n"
353 " CMP R0, #2\n"
354 " BNE loc_FF986398\n"
355 " LDR R0, =0xFF985FD4\n"
356 " MOV R1, #0\n"
357 " BL sub_FFA8E274\n"
358 " LDR R2, [R7,#0x64]\n"
359 " ADD R3, SP, #0x5C\n"
360 " STRD R2, [SP,#0x28]\n"
361 " MOV R2, #0x18\n"
362 " ADD R1, SP, #0x34\n"
363 " ADD R0, SP, #0x10\n"
364 " BL sub_FFB87554\n"
365 " LDR R1, [R7,#0x84]\n"
366 " LDR R2, [R7,#0x88]\n"
367 " MOV R3, #0xFFFFFFFF\n"
368 " ADD R0, SP, #0x60\n"
369 " STMEA SP, {R0-R3}\n"
370 " LDR R0, [SP,#0x58]\n"
371 " LDR R1, [SP,#0x54]\n"
372 " LDR R2, [SP,#0x50]\n"
373 " LDR R3, [SP,#0x4C]\n"
374 " BL sub_FFA8E1CC\n"
375 " LDR R0, [R7,#0x18]\n"
376 " LDR R1, [R7,#0x60]\n"
377 " BL sub_FF83B23C\n"
378 " CMP R0, #9\n"
379 " BEQ loc_FF986220\n"
380 " LDR R0, =0xFF9859A4\n"
381 " MOV R1, #0\n"
382 " BL sub_FFA8E274\n"
383 " B loc_FF986400\n"
384 "loc_FF986398:\n"
385 " LDR R0, [R4,#0x20]\n"
386 " LDR R2, [R7,#0x64]\n"
387 " ADD R3, SP, #0x5C\n"
388 " MOV R1, #0xFFFFFFFF\n"
389 " ADD R9, SP, #0x1C\n"
390 " STMIA R9, {R0-R3}\n"
391 " LDR R3, [R4,#0x1C]\n"
392 " LDR R1, [R7,#0x84]\n"
393 " LDR R2, [R7,#0x88]\n"
394 " ADD R0, SP, #0x60\n"
395 " ADD R9, SP, #0xC\n"
396 " STMIA R9, {R0-R3}\n"
397 " LDR R1, [SP,#0x50]\n"
398 " LDR R2, [SP,#0x54]\n"
399 " LDR R3, [SP,#0x4C]\n"
400 " STMFA SP, {R1,R3}\n"
401 " STR R2, [SP]\n"
402 " LDMIB R4, {R0,R1}\n"
403 " LDR R3, [SP,#0x58]\n"
404 " MOV R2, R11\n"
405 " BL sub_FFA8CC7C\n"
406 " LDR R0, [R7,#0x18]\n"
407 " LDR R1, [R7,#0x60]\n"
408 " BL sub_FF83B23C\n"
409 " CMP R0, #9\n"
410 " BEQ loc_FF986220\n"
411 "loc_FF986400:\n"
412 " LDR R0, [SP,#0x5C]\n"
413 " CMP R0, #0\n"
414 " BNE loc_FF98629C\n"
415 " LDR R0, [R7,#0xC]\n"
416 " CMP R0, #2\n"
417 " MOV R0, #1\n"
418 " BNE loc_FF986424\n"
419 " BL sub_FFA8E234\n"
420 " B loc_FF986428\n"
421 "loc_FF986424:\n"
422 " BL sub_FFA8CC6C\n"
423 "loc_FF986428:\n"
424 " STR R8, [R7,#0xC4]\n"
425 " LDR R0, [SP,#0x60]\n"
426 " LDR R1, [SP,#0x58]\n"
427 " ADD R9, R1, R0\n"
428 " LDR R1, [SP,#0x54]\n"
429 " SUB R10, R1, R0\n"
430 "loc_FF986440:\n"
431 " LDR R0, [R7,#0xC]\n"
432 " LDR R2, [R7,#0x64]\n"
433 " CMP R0, #2\n"
434 " ADD R3, SP, #0x5C\n"
435 " BNE loc_FF986498\n"
436 " STRD R2, [SP,#0x28]\n"
437 " MOV R2, #0x18\n"
438 " ADD R1, SP, #0x34\n"
439 " ADD R0, SP, #0x10\n"
440 " BL sub_FFB87554\n"
441 " LDR R1, [R7,#0x84]\n"
442 " LDR R2, [R7,#0x88]\n"
443 " LDR R3, [R7,#0x68]\n"
444 " ADD R0, SP, #0x60\n"
445 " STMEA SP, {R0-R3}\n"
446 " LDR R2, [SP,#0x50]\n"
447 " LDR R3, [SP,#0x4C]\n"
448 " MOV R1, R10\n"
449 " MOV R0, R9\n"
450 " BL sub_FFA8E1CC\n"
451 " BL sub_FF853E7C\n"
452 " B loc_FF9864F0\n"
453 "loc_FF986498:\n"
454 " LDR R1, [R7,#0x68]\n"
455 " LDR R0, [R4,#0x20]\n"
456 " STR R1, [SP,#0x20]\n"
457 " STR R0, [SP,#0x1C]\n"
458 " STR R2, [SP,#0x24]\n"
459 " STR R3, [SP,#0x28]\n"
460 " LDR R3, [R4,#0x1C]\n"
461 " LDR R1, [R7,#0x84]\n"
462 " LDR R2, [R7,#0x88]\n"
463 " ADD R0, SP, #0x60\n"
464 " STR R2, [SP,#0x14]\n"
465 " LDR R2, [SP,#0x50]\n"
466 " STR R1, [SP,#0x10]\n"
467 " STR R3, [SP,#0x18]\n"
468 " LDR R3, [SP,#0x4C]\n"
469 " STR R0, [SP,#0xC]\n"
470 " STMFA SP, {R2,R3}\n"
471 " STR R10, [SP]\n"
472 " LDMIB R4, {R0,R1}\n"
473 " MOV R3, R9\n"
474 " MOV R2, R11\n"
475 " BL sub_FFA8CC7C\n"
476 "loc_FF9864F0:\n"
477 " LDR R0, [R7,#0x18]\n"
478 " LDR R1, [R7,#0x60]\n"
479 " BL sub_FF83B23C\n"
480 " CMP R0, #9\n"
481 " BNE loc_FF986510\n"
482 " MOV R1, #0\n"
483 "loc_FF986508:\n"
484 " MOV R0, #0x90000\n"
485 " B loc_FF986524\n"
486 "loc_FF986510:\n"
487 " LDR R0, [SP,#0x5C]\n"
488 " CMP R0, #0\n"
489 " BEQ loc_FF98652C\n"
490 " MOV R1, #0\n"
491 "loc_FF986520:\n"
492 " MOV R0, #0xA0000\n"
493 "loc_FF986524:\n"
494 " BL sub_FF9859EC\n"
495 " B loc_FF9860F4\n"
496 "loc_FF98652C:\n"
497 " LDR R0, [R7,#0xC]\n"
498 " CMP R0, #2\n"
499 " MOV R0, #0\n"
500 " BNE loc_FF986544\n"
501 " BL sub_FFA8E234\n"
502 " B loc_FF986548\n"
503 "loc_FF986544:\n"
504 " BL sub_FFA8CD30\n"
505
506
507
508 "loc_FF986548:\n"
509 " LDR R0, [SP,#0x58]\n"
510 " LDR R1, [SP,#0x60]\n"
511 " BL sub_FFAD9F90\n"
512 " LDR R0, [R7,#0x68]\n"
513 " LDR R3, =0x7920\n"
514 " ADD R1, R0, #1\n"
515 " STR R1, [R7,#0x68]\n"
516 " STR R3, [SP]\n"
517 " LDR R0, [R7,#0x64]\n"
518 " SUB R3, R3, #4\n"
519 " AND R2, R0, #0xFF\n"
520 " LDR R0, [SP,#0x60]\n"
521 " BL sub_FFAD7B88\n"
522
523 "LDR R0, =0x7920-4\n"
524 "BL set_quality\n"
525
526 "loc_FF98657C:\n"
527 " CMP R6, #1\n"
528 " BNE loc_FF986590\n"
529
530 "loc_FF986584:\n"
531 " BL sub_FF853E80\n"
532 " MOV R0, #1\n"
533 " BL sub_FF853E84\n"
534
535 "loc_FF986590:\n"
536 " CMP R5, #1\n"
537 " LDRNEH R0, [R7,#6]\n"
538 " CMPNE R0, #3\n"
539 " BNE loc_FF9860F4\n"
540 " LDR R0, [R7,#0x6C]\n"
541 " ADD R0, R0, #1\n"
542 " STR R0, [R7,#0x6C]\n"
543 " LDRH R1, [R7,#6]\n"
544 " CMP R1, #3\n"
545 " LDRNE R1, [R7,#0x54]\n"
546 " LDREQ R1, =0x3E9\n"
547 " MUL R0, R1, R0\n"
548 " LDREQ R1, =0x1770\n"
549 " LDRNE R1, [R7,#0x50]\n"
550 " BL sub_FFB89BB4\n"
551 " MOV R4, R0\n"
552 " BL sub_FFADA644\n"
553 " LDR R0, [R7,#0x8C]\n"
554 " CMP R0, R4\n"
555 " BNE loc_FF9865EC\n"
556 " LDR R0, [R7,#0x3C]\n"
557 " CMP R0, #1\n"
558 " BNE loc_FF986600\n"
559 "loc_FF9865EC:\n"
560 " LDR R1, [R7,#0x98]\n"
561 " MOV R0, R4\n"
562 " BLX R1\n"
563 " STR R4, [R7,#0x8C]\n"
564 " STR R8, [R7,#0x3C]\n"
565 "loc_FF986600:\n"
566 " STR R8, [R7,#0x38]\n"
567 " B loc_FF9860F4\n"
568
569 "loc_FF986C60:\n"
570 "LDR R0, =0xB0330\n"
571 "LDR R0, [R0,#8]\n"
572 "CMP R0, #0\n"
573 "BEQ sub_FF985018\n"
574 "BNE sub_FF866E50\n"
575
576 );
577 }
578
579
580
581
582
583
584
585
586
587
588
589