source: trunk/platform/sx220hs/sub/101a/capt_seq.c @ 1290

Revision 1290, 43.0 KB checked in by philmoz, 22 months ago (diff)

SX220 patch from funnel: http://chdk.setepontos.com/index.php?topic=650.msg71630#msg71630
-fix for save raw file counter not being updated correctly
-fix for ISO overrides in capt_seq.c and shooting.c
-fix for jogdial task in boot.c and kbd.c

  • Property svn:eol-style set to native
Line 
1#include "lolevel.h"
2#include "platform.h"
3#include "core.h"
4#include "conf.h"
5#include "stdlib.h"
6
7static long *nrflag = (long*)(0x89D4+0x8);  // sx220 FF190524 + 8
8#define NR_AUTO (0)                                                     // have to explictly reset value back to 0 to enable auto
9#define PAUSE_FOR_FILE_COUNTER 100          // Enable delay in capt_seq_hook_raw_here to ensure file counter is updated
10
11#include "../../../generic/capt_seq.c"
12
13//SX220 Funnel: Started  :FF077628
14void __attribute__((naked,noinline)) capt_seq_task() {
15 
16 asm volatile (
17
18                 "STMFD   SP!, {R3-R9,LR}\n"
19                 "LDR     R5, =0x3EB1C\n"
20                 "LDR     R7, =0x3E94\n"
21                 "MOV     R6, #0\n"
22
23 "loc_FF077638:\n"                           
24                 "LDR     R0, [R7,#4]\n"
25                 "MOV     R2, #0\n"
26                 "MOV     R1, SP\n"
27                 "BL      sub_FF02AD50\n"
28                 "TST     R0, #1\n"
29                 "BEQ     loc_FF077664\n"
30                 "LDR     R1, =0x47A\n"
31                 "LDR     R0, =0xFF077054\n"
32                 "BL      sub_FF00EC88\n"
33                 "BL      sub_FF00EC40\n"
34                 "LDMFD   SP!, {R3-R9,PC}\n"
35
36 "loc_FF077664:\n"                           
37                 "LDR     R0, [SP]\n"
38                 "LDR     R1, [R0]\n"
39                 "CMP     R1, #0x27\n"
40                 "ADDCC   PC, PC, R1,LSL#2\n"
41                 "B       loc_FF0778E4\n"
42
43 "loc_FF077678:\n"                           
44                 "B       loc_FF077714\n"
45
46 "loc_FF07767C:\n"                           
47                 "B       loc_FF07772C\n"
48
49 "loc_FF077680:\n"                           
50                 "B       loc_FF077764\n"
51
52 "loc_FF077684:\n"                           
53                 "B       loc_FF077778\n"
54
55 "loc_FF077688:\n"                           
56                 "B       loc_FF077770\n"
57
58 "loc_FF07768C:\n"                           
59                 "B       loc_FF077784\n"
60
61 "loc_FF077690:\n"                           
62                 "B       loc_FF07778C\n"
63
64 "loc_FF077694:\n"                           
65                 "B       loc_FF077794\n"
66
67 "loc_FF077698:\n"                           
68                 "B       loc_FF0777B0\n"
69
70 "loc_FF07769C:\n"                           
71                 "B       loc_FF0777F0\n"
72
73 "loc_FF0776A0:\n"                           
74                 "B       loc_FF0777BC\n"
75
76 "loc_FF0776A4:\n"                           
77                 "B       loc_FF0777C8\n"
78
79 "loc_FF0776A8:\n"                           
80                 "B       loc_FF0777D0\n"
81
82 "loc_FF0776AC:\n"                           
83                 "B       loc_FF0777D8\n"
84
85 "loc_FF0776B0:\n"                           
86                 "B       loc_FF0777E0\n"
87
88 "loc_FF0776B4:\n"                           
89                 "B       loc_FF0777E8\n"
90
91 "loc_FF0776B8:\n"                           
92                 "B       loc_FF0777F8\n"
93
94 "loc_FF0776BC:\n"                           
95                 "B       loc_FF077800\n"
96
97 "loc_FF0776C0:\n"                           
98                 "B       loc_FF077808\n"
99
100 "loc_FF0776C4:\n"                           
101                 "B       loc_FF077810\n"
102
103 "loc_FF0776C8:\n"                           
104                 "B       loc_FF077818\n"
105
106 "loc_FF0776CC:\n"                           
107                 "B       loc_FF077820\n"
108
109 "loc_FF0776D0:\n"                           
110                 "B       loc_FF077828\n"
111
112 "loc_FF0776D4:\n"                           
113                 "B       loc_FF077830\n"
114
115 "loc_FF0776D8:\n"                           
116                 "B       loc_FF077838\n"
117
118 "loc_FF0776DC:\n"                           
119                 "B       loc_FF077840\n"
120
121 "loc_FF0776E0:\n"                           
122                 "B       loc_FF07784C\n"
123
124 "loc_FF0776E4:\n"                           
125                 "B       loc_FF077854\n"
126
127 "loc_FF0776E8:\n"                           
128                 "B       loc_FF077860\n"
129
130 "loc_FF0776EC:\n"                           
131                 "B       loc_FF077868\n"
132
133 "loc_FF0776F0:\n"                           
134                 "B       loc_FF077870\n"
135
136 "loc_FF0776F4:\n"                           
137                 "B       loc_FF077878\n"
138
139 "loc_FF0776F8:\n"                           
140                 "B       loc_FF077880\n"
141
142 "loc_FF0776FC:\n"                           
143                 "B       loc_FF077888\n"
144
145 "loc_FF077700:\n"                           
146                 "B       loc_FF077890\n"
147
148 "loc_FF077704:\n"                         
149                 "B       loc_FF077898\n"
150
151 "loc_FF077708:\n"                           
152                 "B       loc_FF0778A0\n"
153
154 "loc_FF07770C:\n"                           
155                 "B       loc_FF0778AC\n"
156
157 "loc_FF077710:\n"                           
158                 "B       loc_FF0778F0\n"
159
160 "loc_FF077714:\n"                            //
161                                       
162                                 "BL      shooting_expo_iso_override\n"    // added
163                                 "BL      sub_FF077F04\n"
164                                 "BL      shooting_expo_param_override\n"  // added                 
165                                 "BL      sub_FF074BC4\n"
166 
167                                 "MOV     R0, #0\n"                                                     // added
168                                 "STR     R0, [R5,#0x28]\n"                                     // added, fixes overrides  behavior at short shutter press (from SX30)
169 
170//                               "LDR     R0, [R5,#0x28]\n"                                     // above two lines make this code redundant
171//               "CMP     R0, #0\n"                                                     // above two lines make this code redundant
172//               "BLNE    sub_FF18D9B4\n"                                       // above two lines make this code redundant
173                 "B       loc_FF0778F0\n"
174
175 "loc_FF07772C:\n"                           
176                 "LDR     R8, [R0,#0xC]\n"
177                 "MOV     R0, R8\n"
178                // "BL      sub_FF18D790\n"    // SX220
179                                 "BL      sub_FF18D790_my\n"   // + patched
180                                 "BL      capt_seq_hook_raw_here\n"     //added
181                                 "MOV     R4, R0\n"
182                 "MOV     R2, R8\n"
183                 "MOV     R1, #1\n"
184                 "BL      sub_FF07564C\n"
185                 "TST     R4, #1\n"
186                 "BNE     loc_FF07775C\n"
187                 "MOV     R0, R8\n"
188                 "BL      sub_FF18D17C\n"
189                 "B       loc_FF0778F0\n"
190
191 "loc_FF07775C:\n"                           
192                 "BL      sub_FF18D14C\n"
193                 "B       loc_FF0778F0\n"
194
195 "loc_FF077764:\n"                           
196                 "MOV     R0, #1\n"
197                 "BL      sub_FF0781E4\n"
198                 "B       loc_FF0778F0\n"
199
200 "loc_FF077770:\n"                           
201                 "BL      sub_FF077B40\n"
202                 "B       loc_FF07777C\n"
203
204 "loc_FF077778:\n"                           
205                 "BL      sub_FF077EE4\n"
206                                 
207 "loc_FF07777C:\n"                           
208                 "STR     R6, [R5,#0x28]\n"
209                 "B       loc_FF0778F0\n"
210
211 "loc_FF077784:\n"                           
212                 "BL      sub_FF077EEC\n"
213                 "B       loc_FF0778F0\n"
214
215 "loc_FF07778C:\n"                           
216                 "BL      sub_FF0780D8\n"
217                 "B       loc_FF0777B4\n"
218
219 "loc_FF077794:\n"                           
220                 "LDR     R4, [R0,#0xC]\n"
221                 "MOV     R0, R4\n"
222                 "BL      sub_FF18DA08\n"
223                 "MOV     R2, R4\n"
224                 "MOV     R1, #9\n"
225                 "BL      sub_FF07564C\n"
226                 "B       loc_FF0778F0\n"
227 "loc_FF0777B0:\n"                           
228                 "BL      sub_FF07814C\n"
229
230 "loc_FF0777B4:\n"                           
231                 "BL      sub_FF074BC4\n"
232                 "B       loc_FF0778F0\n"
233
234 "loc_FF0777BC:\n"                           
235                 "LDR     R0, [R5,#0x58]\n"
236                 "BL      sub_FF078A6C\n"
237                 "B       loc_FF0778F0\n"
238
239 "loc_FF0777C8:\n"                           
240                 "BL      sub_FF078D38\n"
241                 "B       loc_FF0778F0\n"
242
243 "loc_FF0777D0:\n"                           
244                 "BL      sub_FF078D9C\n"
245                 "B       loc_FF0778F0\n"
246
247 "loc_FF0777D8:\n"                           
248                 "BL      sub_FF078F90\n"
249                 "B       loc_FF0778F0\n"
250
251 "loc_FF0777E0:\n"                           
252                 "BL      sub_FF0793E0\n"
253                 "B       loc_FF0778F0\n"
254
255 "loc_FF0777E8:\n"                           
256                 "BL      sub_FF079490\n"
257                 "B       loc_FF0778F0\n"
258
259 "loc_FF0777F0:\n"                           
260                 "BL      sub_FF077EE4\n"
261                 "B       loc_FF0778F0\n"
262
263 "loc_FF0777F8:\n"                           
264                 "BL      sub_FF18C288\n"
265                 "B       loc_FF0778F0\n"
266
267 "loc_FF077800:\n"                           
268                 "BL      sub_FF18C49C\n"
269                 "B       loc_FF0778F0\n"
270
271 "loc_FF077808:\n"                           
272                 "BL      sub_FF18C534\n"
273                 "B       loc_FF0778F0\n"
274
275 "loc_FF077810:\n"                           
276                 "BL      sub_FF18C620\n"
277                 "B       loc_FF0778F0\n"
278
279 "loc_FF077818:\n"                           
280                 "BL      sub_FF18C6F0\n"
281                 "B       loc_FF0778F0\n"
282
283 "loc_FF077820:\n"                           
284                 "MOV     R0, #0\n"
285                 "B       loc_FF077844\n"
286
287 "loc_FF077828:\n"                           
288                 "BL      sub_FF18CB78\n"
289                 "B       loc_FF0778F0\n"
290
291 "loc_FF077830:\n"                           
292                 "BL      sub_FF18CC10\n"
293                 "B       loc_FF0778F0\n"
294 
295
296 "loc_FF077838:\n"                           
297                 "BL      sub_FF18CCF0\n"
298                 "B       loc_FF0778F0\n"
299
300 "loc_FF077840:\n"                           
301                 "MOV     R0, #1\n"
302
303 "loc_FF077844:\n"                           
304                 "BL      sub_FF18CA10\n"
305                 "B       loc_FF0778F0\n"
306 
307
308 "loc_FF07784C:\n"                           
309                 "BL      sub_FF078410\n"
310                 "B       loc_FF0778F0\n"
311
312 "loc_FF077854:\n"                           
313                 "BL      sub_FF078450\n"
314                 "BL      sub_FF18E6BC\n"
315                 "B       loc_FF0778F0\n"
316
317 "loc_FF077860:\n"                           
318                 "BL      sub_FF18C874\n"
319                 "B       loc_FF0778F0\n"
320
321 "loc_FF077868:\n"                           
322                 "BL      sub_FF18C940\n"
323                 "B       loc_FF0778F0\n"
324
325 "loc_FF077870:\n"                           
326 
327                 "BL      sub_FF18E788\n"
328                 "B       loc_FF0778F0\n"
329
330 "loc_FF077878:\n"                           
331                                       
332                 "BL      sub_FF027EA8\n"
333                 "B       loc_FF0778F0\n"
334
335 "loc_FF077880:\n"                           
336                                       
337                 "BL      sub_FF07B8D8\n"
338                 "B       loc_FF0778F0\n"
339 
340
341 "loc_FF077888:\n"                         
342                                     
343 
344                 "BL      sub_FF07B95C\n"
345                 "B       loc_FF0778F0\n"
346
347 "loc_FF077890:\n"                           
348                                       
349 
350                 "BL      sub_FF18CE28\n"
351                 "B       loc_FF0778F0\n"
352 
353 "loc_FF077898:\n"                                                                   
354 
355                 "BL      sub_FF18CE8C\n"
356                 "B       loc_FF0778F0\n"
357 
358 "loc_FF0778A0:\n"                           
359                                         
360                               
361                 "BL      sub_FF07B9B8\n"
362                 "BL      sub_FF07B978\n"
363                 "B       loc_FF0778F0\n"
364 
365
366 "loc_FF0778AC:\n"                           
367 
368                 "MOV     R0, #1\n"
369                 "BL      sub_FF18E1FC\n"
370                 "MOV     R0, #1\n"
371                 "BL      sub_FF18E330\n"
372                 "LDRH    R0, [R5,#0xA0]\n"
373                 "CMP     R0, #4\n"
374                 "LDRNEH  R0, [R5]\n"
375                 "SUBNE   R1, R0, #0x4200\n"
376                 "SUBNES  R1, R1, #0x2A\n"
377                 "BNE     loc_FF0778F0\n"
378                 "BL      sub_FF07B95C\n"
379                 "BL      sub_FF07BFA0\n"
380                 "BL      sub_FF07BDDC\n"
381                 "B       loc_FF0778F0\n"
382 
383 "loc_FF0778E4:\n"                           
384                                 
385                 "LDR     R1, =0x5DB\n"
386                 "LDR     R0, =0xFF077054\n"
387                 "BL      sub_FF00EC88\n"
388
389 "loc_FF0778F0:\n" 
390                 "LDR     R0, [SP]\n"
391                 "LDR     R1, [R0,#4]\n"
392                 "LDR     R0, [R7]\n"
393                 "BL      sub_FF0826C4\n"
394                 "LDR     R4, [SP]\n"
395                 "LDR     R0, [R4,#8]\n"
396                 "CMP     R0, #0\n"
397                 "LDREQ   R0, =0xFF077054\n"
398                 "MOVEQ   R1, #0x118\n"
399                 "BLEQ    sub_FF00EC88\n"
400                 "STR     R6, [R4,#8]\n"
401                 "B       loc_FF077638\n"
402
403
404        );
405}
406
407void __attribute__((naked,noinline)) sub_FF18D790_my(){
408 
409asm volatile(
410                                 "STMFD   SP!, {R3-R7,LR}\n"
411                 "LDR     R5, =0x3EB1C\n"
412                 "MOV     R4, R0\n"
413                 "LDR     R0, [R5,#0x28]\n"
414                 "LDR     R6, =0x420C\n"
415                 "CMP     R0, #0\n"
416                 "MOV     R7, #0\n"
417                 "BNE     loc_FF18D820\n"
418                 "LDR     R0, [R5,#0xC4]\n"
419                 "CMP     R0, #1\n"
420                 "BNE     loc_FF18D808\n"
421                 "LDRH    R0, [R5]\n"
422                 "CMP     R0, R6\n"
423                 "LDRNEH  R0, [R5,#0x9E]\n"
424                 "CMPNE   R0, #3\n"
425                 "LDRNE   R0, [R4,#8]\n"
426                 "CMPNE   R0, #1\n"
427                 "BLS     loc_FF18D7EC\n"
428                 "BL      sub_FF022D5C\n"
429                 "TST     R0, #1\n"
430                 "BEQ     loc_FF18D820\n"
431                 "BL      sub_FF07D70C\n"
432                 "B       loc_FF18D818\n"
433
434 "loc_FF18D7EC:\n"
435                 "MOV     R0, #0xC\n"
436                 "BL      sub_FF07D6AC\n"
437                 "TST     R0, #1\n"
438                 "BEQ     loc_FF18D820\n"
439                 "BL      sub_FF18E078\n"
440                 "BL      sub_FF07531C\n"
441                 "B       loc_FF18D818\n"
442
443 "loc_FF18D808:\n"                           
444                 "MOV     R0, #0xC\n"
445                 "BL      sub_FF07D6AC\n"
446                 "TST     R0, #1\n"
447                 "BEQ     loc_FF18D820\n"
448
449 "loc_FF18D818:\n"                           
450                                         
451                 "MOV     R0, #1\n"
452                 "LDMFD   SP!, {R3-R7,PC}\n"
453
454 "loc_FF18D820:\n"                           
455                                         
456                 "LDRH    R0, [R5]\n"
457                 "CMP     R0, R6\n"
458                 "LDRNEH  R0, [R5,#0x9E]\n"
459                 "CMPNE   R0, #3\n"
460                 "LDRNE   R0, [R4,#8]\n"
461                 "CMPNE   R0, #1\n"
462                 "BLS     loc_FF18D850\n"
463                 "LDRH    R0, [R5,#0x9C]\n"
464                 "CMP     R0, #0\n"
465                 "LDREQH  R0, [R5,#0x98]\n"
466                 "CMPEQ   R0, #2\n"
467                 "BLEQ    sub_FF07851C\n"
468
469 "loc_FF18D850:\n"                           
470                 "LDRH    R1, [R5]\n"
471                 "LDRH    R0, [R5,#0x9E]\n"
472                 "CMP     R1, R6\n"
473                 "BEQ     loc_FF18D890\n"
474                 "CMP     R0, #3\n"
475                 "BEQ     loc_FF18D8D0\n"
476                 "LDR     R0, [R4,#8]\n"
477                 "CMP     R0, #1\n"
478                 "BLS     loc_FF18D898\n"
479                 "LDRH    R0, [R5,#0x9C]\n"
480                 "CMP     R0, #0\n"
481                 "BNE     loc_FF18D8D0\n"
482                 "LDRH    R0, [R5,#0x98]\n"
483                 "CMP     R0, #2\n"
484                 "BEQ     loc_FF18D8CC\n"
485                 "B       loc_FF18D8A4\n"
486
487 "loc_FF18D890:\n"                           
488                 "CMP     R0, #3\n"
489                 "BEQ     loc_FF18D8D0\n"
490
491 "loc_FF18D898:\n"                           
492                 "LDRH    R0, [R5,#0x9C]\n"
493                 "CMP     R0, #0\n"
494                 "BNE     loc_FF18D8D0\n"
495
496 "loc_FF18D8A4:\n"                           
497                 "LDRH    R0, [R5,#0x98]\n"
498                 "CMP     R0, #1\n"
499                 "BNE     loc_FF18D8D0\n"
500                 "CMP     R1, R6\n"
501                 "LDRNE   R0, [R4,#8]\n"
502                 "CMPNE   R0, #1\n"
503                 "BLS     loc_FF18D8D0\n"
504                 "LDR     R0, [R4,#0xC]\n"
505                 "CMP     R0, #1\n"
506                 "BNE     loc_FF18D8D0\n"
507
508 "loc_FF18D8CC:\n"                           
509                 "BL      sub_FF18E7C0\n"
510
511 "loc_FF18D8D0:\n"                           
512                 "BL      sub_FF18E788\n"
513                 "BL      sub_FF077EF4\n"
514                 "LDR     R0, [R5,#0x28]\n"
515                 "CMP     R0, #0\n"
516                 "BNE     loc_FF18D99C\n"
517                 "MOV     R0, R4\n"
518                 "BL      sub_FF18D004\n"
519                                 "TST     R0, #1\n"
520                 "LDMNEFD SP!, {R3-R7,PC}\n"
521                 "MOV     R0, R4\n"
522                 "BL      sub_FF18D468\n"
523                 "BL      sub_FF18DFBC\n"
524                 "LDR     R0, [R5,#0xC4]\n"
525                 "CMP     R0, #1\n"
526                 "BNE     loc_FF18D928\n"
527                                 "LDRH    R0, [R5]\n"
528                 "CMP     R0, R6\n"
529                 "LDRNEH  R0, [R5,#0x9E]\n"
530                 "CMPNE   R0, #3\n"
531                 "LDRNE   R0, [R4,#8]\n"
532                 "CMPNE   R0, #1\n"
533                 "BHI     loc_FF18D930\n"
534
535 "loc_FF18D928:\n"                           
536                 "MOV     R0, #2\n"
537                 "BL      sub_FF07EFE8\n"
538                     "BL      wait_until_remote_button_is_released\n"   // SX220 added
539                         "BL      capt_seq_hook_set_nr\n"                                       // SX220 added
540
541 "loc_FF18D930:\n"                           
542                                 "LDRH    R0, [R5]\n"
543                 "SUB     R1, R0, #0x4200\n"
544                 "SUBS    R1, R1, #0x2D\n"
545                 "BNE     loc_FF18D98C\n"
546                 "MOV     R5, #1\n"
547                 "MOV     R2, #2\n"
548                 "MOV     R1, SP\n"
549                 "ADD     R0, R2, #0x15C\n"
550                 "STR     R5, [SP]\n"
551                 "BL      sub_FF08A944\n"     //PT_GetPropertyCaseString
552                 "TST     R0, #1\n"
553                 "MOVNE   R1, #0xBC\n"
554                 "LDRNE   R0, =0xFF18DAB8\n"  //; "SsCaptureSeq.c"
555                 "BLNE    sub_FF00EC88\n"     //assert
556                 "LDRH    R0, [SP]\n"
557                 "CMP     R0, #1\n"
558                 "BLS     loc_FF18D984\n"
559                                 "MOV     R0, R4\n"
560                 "STR     R5, [R4,#0xE4]\n"
561                 "BL      sub_FF305C78\n"  //1.01A
562                                 "B       loc_FF18D994\n"
563
564 "loc_FF18D984:\n"                         
565                 "MOV     R0, #0\n"
566                 "STR     R0, [R4,#0xE4]\n"
567
568 "loc_FF18D98C:\n"                           
569                 "MOV     R0, R4\n"
570                 "BL      sub_FF3058B8\n"
571                       
572 "loc_FF18D994:\n"                         
573 
574                                 "MOV     R7, R0\n"
575                 "B       loc_FF18D9AC\n"
576
577 "loc_FF18D99C:\n"                     
578                 "LDR     R0, =0x8978\n"
579                 "LDR     R0, [R0]\n"
580                 "CMP     R0, #0\n"
581                 "MOVNE   R7, #0x1D\n"
582
583 "loc_FF18D9AC:\n"
584                 "MOV     R0, R7\n"
585                 "LDMFD   SP!, {R3-R7,PC}\n"
586                        );
587}
588
589///////sx220 sub_FF0C3E54
590void __attribute__((naked,noinline)) exp_drv_task(){
591        asm volatile(
592                         "STMFD   SP!, {R4-R9,LR}\n"
593                                 "SUB     SP, SP, #0x24\n"
594                 "LDR     R6, =0x57B0\n"
595                 "LDR     R7, =0xBB8\n"
596                 "LDR     R4, =0x5A5B4\n"
597                 "MOV     R0, #0\n"
598                 "ADD     R5, SP, #0x14\n"
599                 "STR     R0, [SP,#0x10]\n"
600
601 "loc_FF0C3E74:\n"                           
602                 "LDR     R0, [R6,#0x20]\n"
603                 "MOV     R2, #0\n"
604                 "ADD     R1, SP, #0x20\n"
605                 "BL      sub_FF02AD50\n"
606                 "LDR     R0, [SP,#0x10]\n"
607                 "CMP     R0, #1\n"
608                 "BNE     loc_FF0C3EC0\n"
609                 "LDR     R0, [SP,#0x20]\n"
610                 "LDR     R0, [R0]\n"
611                 "CMP     R0, #0x14\n"
612                 "CMPNE   R0, #0x15\n"
613                 "CMPNE   R0, #0x16\n"
614                 "CMPNE   R0, #0x17\n"
615                 "BEQ     loc_FF0C4020\n"
616                 "CMP     R0, #0x29\n"
617                 "BEQ     loc_FF0C3FA8\n"
618                 "ADD     R1, SP, #0x10\n"
619                 "MOV     R0, #0\n"
620                 "BL      sub_FF0C3E04\n"
621
622 "loc_FF0C3EC0:\n"                           
623                 "LDR     R0, [SP,#0x20]\n"
624                 "LDR     R1, [R0]\n"
625                 "CMP     R1, #0x2F\n"
626                 "BNE     loc_FF0C3EEC\n"
627                 "BL      sub_FF0C5280\n"
628                 "LDR     R0, [R6,#0x1C]\n"
629                 "MOV     R1, #1\n"
630                 "BL      sub_FF0826C4\n"
631                 "BL      sub_FF00EC40\n"
632                 "ADD     SP, SP, #0x24\n"
633                 "LDMFD   SP!, {R4-R9,PC}\n"
634 
635
636 "loc_FF0C3EEC:\n"                           
637                 "CMP     R1, #0x2E\n"
638                 "BNE     loc_FF0C3F08\n"
639                 "LDR     R2, [R0,#0x8C]!\n"
640                 "LDR     R1, [R0,#4]\n"
641                 "MOV     R0, R1\n"
642                 "BLX     R2\n"
643                 "B       loc_FF0C44B0\n"
644 
645
646 "loc_FF0C3F08:\n"
647                 "CMP     R1, #0x27\n"
648                 "BNE     loc_FF0C3F58\n"
649                 "LDR     R0, [R6,#0x1C]\n"
650                 "MOV     R1, #0x80\n"
651                 "BL      sub_FF0826F8\n"
652                 "LDR     R0, =0xFF0BF0D8\n"
653                 "MOV     R1, #0x80\n"
654                 "BL      sub_FF17E248\n"
655                 "LDR     R0, [R6,#0x1C]\n"
656                 "MOV     R2, R7\n"
657                 "MOV     R1, #0x80\n"
658                 "BL      sub_FF082604\n"
659                 "TST     R0, #1\n"
660                 "LDRNE   R1, =0x1756\n"
661                 "BNE     loc_FF0C4014\n"
662
663 "loc_FF0C3F44:\n"
664                 "LDR     R1, [SP,#0x20]\n"
665                 "LDR     R0, [R1,#0x90]\n"
666                 "LDR     R1, [R1,#0x8C]\n"
667                 "BLX     R1\n"
668                 "B       loc_FF0C44B0\n"
669 
670
671 "loc_FF0C3F58:\n"                           
672                 "CMP     R1, #0x28\n"
673                 "BNE     loc_FF0C3FA0\n"
674                 "ADD     R1, SP, #0x10\n"
675                 "BL      sub_FF0C3E04\n"
676                 "LDR     R0, [R6,#0x1C]\n"
677                 "MOV     R1, #0x100\n"
678                 "BL      sub_FF0826F8\n"
679                 "LDR     R0, =0xFF0BF0E8\n"
680                 "MOV     R1, #0x100\n"
681                 "BL      sub_FF17EB70\n"
682                 "LDR     R0, [R6,#0x1C]\n"
683                 "MOV     R2, R7\n"
684                 "MOV     R1, #0x100\n"
685                 "BL      sub_FF082604\n"
686                 "TST     R0, #1\n"
687                 "BEQ     loc_FF0C3F44\n"
688                 "LDR     R1, =0x1760\n"
689                 "B       loc_FF0C4014\n"
690 
691
692 "loc_FF0C3FA0:\n"                           
693                 "CMP     R1, #0x29\n"
694                 "BNE     loc_FF0C3FB8\n"
695
696 "loc_FF0C3FA8:\n"                           
697                 "LDR     R0, [SP,#0x20]\n"
698                 "ADD     R1, SP, #0x10\n"
699                 "BL      sub_FF0C3E04\n"
700                 "B       loc_FF0C3F44\n"
701 
702
703 "loc_FF0C3FB8:\n"                           
704                 "CMP     R1, #0x2C\n"
705                 "BNE     loc_FF0C3FD0\n"
706                 "BL      sub_FF0B0A18\n"
707                 "BL      sub_FF0B1688\n"
708                 "BL      sub_FF0B1200\n"
709                 "B       loc_FF0C3F44\n"
710 
711
712 "loc_FF0C3FD0:\n"
713                 "CMP     R1, #0x2D\n"
714                 "BNE     loc_FF0C4020\n"
715                 "LDR     R0, [R6,#0x1C]\n"
716                 "MOV     R1, #4\n"
717                 "BL      sub_FF0826F8\n"
718                 "LDR     R1, =0xFF0BF108\n"
719                 "LDR     R0, =0xFFFFF400\n"
720                 "MOV     R2, #4\n"
721                 "BL      sub_FF0B048C\n"
722                 "BL      sub_FF0B071C\n"
723                 "LDR     R0, [R6,#0x1C]\n"
724                 "MOV     R2, R7\n"
725                 "MOV     R1, #4\n"
726                 "BL      sub_FF082520\n"
727                 "TST     R0, #1\n"
728                 "BEQ     loc_FF0C3F44\n"
729                 "LDR     R1, =0x1788\n"
730
731 "loc_FF0C4014:\n"
732                 "LDR     R0, =0xFF0BF8A8\n"
733                 "BL      sub_FF00EC88\n"
734                 "B       loc_FF0C3F44\n"
735 
736
737 "loc_FF0C4020:\n"
738                 "LDR     R0, [SP,#0x20]\n"
739                 "MOV     R8, #1\n"
740                 "LDR     R1, [R0]\n"
741                 "CMP     R1, #0x12\n"
742                 "CMPNE   R1, #0x13\n"
743                 "BNE     loc_FF0C4088\n"
744                 "LDR     R1, [R0,#0x7C]\n"
745                 "ADD     R1, R1, R1,LSL#1\n"
746                 "ADD     R1, R0, R1,LSL#2\n"
747                 "SUB     R1, R1, #8\n"
748                 "LDMIA   R1, {R2,R3,R9}\n"
749                 "STMIA   R5, {R2,R3,R9}\n"
750                 "BL      sub_FF0C215C\n"
751                 "LDR     R0, [SP,#0x20]\n"
752                 "LDR     R1, [R0,#0x7C]\n"
753                 "LDR     R3, [R0,#0x8C]\n"
754                 "LDR     R2, [R0,#0x90]\n"
755                 "ADD     R0, R0, #4\n"
756                 "BLX     R3\n"
757                 "LDR     R0, [SP,#0x20]\n"
758                 "BL      sub_FF0C5694\n"
759                 "LDR     R0, [SP,#0x20]\n"
760                 "LDR     R1, [R0,#0x7C]\n"
761                 "LDR     R2, [R0,#0x98]\n"
762                 "LDR     R3, [R0,#0x94]\n"
763                 "B       loc_FF0C439C\n"
764 
765
766 "loc_FF0C4088:\n"                           
767                 "CMP     R1, #0x14\n"
768                 "CMPNE   R1, #0x15\n"
769                 "CMPNE   R1, #0x16\n"
770                 "CMPNE   R1, #0x17\n"
771                 "BNE     loc_FF0C4140\n"
772                 "ADD     R3, SP, #0x10\n"
773                 "ADD     R2, SP, #4\n"
774                 "ADD     R1, SP, #0x14\n"
775                 "BL      sub_FF0C23C4\n"
776                 "CMP     R0, #1\n"
777                 "MOV     R9, R0\n"
778                 "CMPNE   R9, #5\n"
779                 "BNE     loc_FF0C40DC\n"
780                 "LDR     R0, [SP,#0x20]\n"
781                 "MOV     R2, R9\n"
782                 "LDR     R1, [R0,#0x7C]!\n"
783                 "LDR     R12, [R0,#0x10]!\n"
784                 "LDR     R3, [R0,#4]\n"
785                 "ADD     R0, SP, #4\n"
786                 "BLX     R12\n"
787                 "B       loc_FF0C4114\n"
788 
789
790 "loc_FF0C40DC:\n"                           
791                 "LDR     R0, [SP,#0x20]\n"
792                 "CMP     R9, #2\n"
793                 "LDR     R3, [R0,#0x90]\n"
794                 "CMPNE   R9, #6\n"
795                 "BNE     loc_FF0C4128\n"
796                 "LDR     R12, [R0,#0x8C]\n"
797                 "MOV     R2, R9\n"
798                 "MOV     R1, #1\n"
799                 "ADD     R0, SP, #4\n"
800                 "BLX     R12\n"
801                 "LDR     R0, [SP,#0x20]\n"
802                 "ADD     R2, SP, #4\n"
803                 "ADD     R1, SP, #0x14\n"
804                 "BL      sub_FF0C3B50\n"
805
806 "loc_FF0C4114:\n"                           
807                 "LDR     R0, [SP,#0x20]\n"
808                 "LDR     R2, [SP,#0x10]\n"
809                 "MOV     R1, R9\n"
810                 "BL      sub_FF0C3DA4\n"
811                 "B       loc_FF0C43A4\n"
812 
813
814 "loc_FF0C4128:\n"                           
815                 "LDR     R1, [R0,#0x7C]\n"
816                 "LDR     R12, [R0,#0x8C]\n"
817                 "MOV     R2, R9\n"
818                 "ADD     R0, R0, #4\n"
819                 "BLX     R12\n"
820                 "B       loc_FF0C43A4\n"
821 
822
823 "loc_FF0C4140:\n"                           
824                 "CMP     R1, #0x23\n"
825                 "CMPNE   R1, #0x24\n"
826                 "BNE     loc_FF0C418C\n"
827                 "LDR     R1, [R0,#0x7C]\n"
828                 "ADD     R1, R1, R1,LSL#1\n"
829                 "ADD     R1, R0, R1,LSL#2\n"
830                 "SUB     R1, R1, #8\n"
831                 "LDMIA   R1, {R2,R3,R9}\n"
832                 "STMIA   R5, {R2,R3,R9}\n"
833                 "BL      sub_FF0C0F4C\n"
834                 "LDR     R0, [SP,#0x20]\n"
835                 "LDR     R1, [R0,#0x7C]\n"
836                 "LDR     R3, [R0,#0x8C]\n"
837                 "LDR     R2, [R0,#0x90]\n"
838                 "ADD     R0, R0, #4\n"
839                 "BLX     R3\n"
840                 "LDR     R0, [SP,#0x20]\n"
841                 "BL      sub_FF0C1438\n"
842                 "B       loc_FF0C43A4\n"
843 
844
845 "loc_FF0C418C:\n"                           
846                 "ADD     R1, R0, #4\n"
847                 "LDMIA   R1, {R2,R3,R9}\n"
848                 "STMIA   R5, {R2,R3,R9}\n"
849                 "LDR     R1, [R0]\n"
850                 "CMP     R1, #0x27\n"
851                 "ADDCC   PC, PC, R1,LSL#2\n"
852                 "B       loc_FF0C438C\n"
853 
854
855 "loc_FF0C41A8:\n"                           
856                 "B       loc_FF0C4244\n"
857
858
859 "loc_FF0C41AC:\n"                           
860                 "B       loc_FF0C4244\n"
861 
862
863 "loc_FF0C41B0:\n"                           
864                 "B       loc_FF0C424C\n"
865 
866
867 "loc_FF0C41B4:\n"                           
868                 "B       loc_FF0C4254\n"
869 
870
871 "loc_FF0C41B8:\n"                           
872                 "B       loc_FF0C4254\n"
873 
874
875 "loc_FF0C41BC:\n"                           
876                 "B       loc_FF0C4254\n"
877 
878
879 "loc_FF0C41C0:\n"                           
880                 "B       loc_FF0C4244\n"
881 
882
883 "loc_FF0C41C4:\n"                           
884                 "B       loc_FF0C424C\n"
885 
886
887 "loc_FF0C41C8:\n"                           
888                 "B       loc_FF0C4254\n"
889 
890
891 "loc_FF0C41CC:\n"                           
892                 "B       loc_FF0C4254\n"
893 
894
895 "loc_FF0C41D0:\n"                           
896                 "B       loc_FF0C426C\n"
897 
898
899 "loc_FF0C41D4:\n"                           
900                 "B       loc_FF0C426C\n"
901 
902
903 "loc_FF0C41D8:\n"                           
904                 "B       loc_FF0C4378\n"
905 
906
907 "loc_FF0C41DC:\n"
908                 "B       loc_FF0C4380\n"
909 
910
911 "loc_FF0C41E0:\n"
912                 "B       loc_FF0C4380\n"
913 
914
915 "loc_FF0C41E4:\n"
916                 "B       loc_FF0C4380\n"
917 
918
919 "loc_FF0C41E8:\n"
920                 "B       loc_FF0C4380\n"
921 
922
923 "loc_FF0C41EC:\n"
924                 "B       loc_FF0C4388\n"
925 
926
927 "loc_FF0C41F0:\n"
928                 "B       loc_FF0C438C\n"
929 
930
931 "loc_FF0C41F4:\n"
932                 "B       loc_FF0C438C\n"
933 
934
935 "loc_FF0C41F8:\n"
936                 "B       loc_FF0C438C\n"
937 
938
939 "loc_FF0C41FC:\n"
940                 "B       loc_FF0C438C\n"
941 
942
943 "loc_FF0C4200:\n"
944                 "B       loc_FF0C438C\n"
945 
946
947 "loc_FF0C4204:\n"
948                 "B       loc_FF0C438C\n"
949 
950
951 "loc_FF0C4208:\n"
952                 "B       loc_FF0C425C\n"
953 
954
955 "loc_FF0C420C:\n"
956                 "B       loc_FF0C4264\n"
957 
958
959 "loc_FF0C4210:\n"
960                 "B       loc_FF0C4264\n"
961 
962
963 "loc_FF0C4214:\n"
964                 "B       loc_FF0C4278\n"
965 
966
967 "loc_FF0C4218:\n"
968                 "B       loc_FF0C4278\n"
969 
970
971 "loc_FF0C421C :\n"
972                 "B       loc_FF0C4280\n"
973 
974
975 "loc_FF0C4220:\n"
976                 "B       loc_FF0C42B8\n"
977
978 "loc_FF0C4224:\n"
979                 "B       loc_FF0C42F0\n"
980
981 "loc_FF0C4228:\n"
982                 "B       loc_FF0C4328\n"
983
984 "loc_FF0C422C:\n"
985                 "B       loc_FF0C4360\n"
986
987 "loc_FF0C4230:\n"
988                 "B       loc_FF0C4360\n"
989
990 "loc_FF0C4234:\n"
991                 "B       loc_FF0C438C\n"
992
993 "loc_FF0C4238:\n"
994                 "B       loc_FF0C438C\n"
995
996 "loc_FF0C423C:\n"
997                 "B       loc_FF0C4368\n"
998
999 "loc_FF0C4240 :\n"
1000                 "B       loc_FF0C4370\n"
1001
1002 "loc_FF0C4244:\n"
1003                 "BL      sub_FF0BF6D4\n"
1004                 "B       loc_FF0C438C\n"
1005
1006 "loc_FF0C424C:\n"
1007                 "BL      sub_FF0BF9D4\n"
1008                 "B       loc_FF0C438C\n"
1009
1010 "loc_FF0C4254:\n"
1011                 "BL      sub_FF0BFC3C\n"
1012                 "B       loc_FF0C438C\n"
1013
1014 "loc_FF0C425C:\n"
1015                 "BL      sub_FF0BFEF0\n"
1016                 "B       loc_FF0C438C\n"
1017
1018 "loc_FF0C4264:\n"
1019                 "BL      sub_FF0C0108\n"
1020                 "B       loc_FF0C438C\n"
1021
1022 "loc_FF0C426C:\n"
1023                 "BL      sub_FF0C05C4_my\n"   //SX220 patched
1024                 "MOV     R8, #0\n"
1025                 "B       loc_FF0C438C\n"
1026
1027 "loc_FF0C4278:\n"
1028                 "BL      sub_FF0C07A8\n"
1029                 "B       loc_FF0C438C\n"
1030
1031 "loc_FF0C4280:\n"
1032                 "LDRH    R1, [R0,#4]\n"
1033                 "STRH    R1, [SP,#0x14]\n"
1034                 "LDRH    R1, [R4,#2]\n"
1035                 "STRH    R1, [SP,#0x16]\n"
1036                 "LDRH    R1, [R4,#4]\n"
1037                 "STRH    R1, [SP,#0x18]\n"
1038                 "LDRH    R1, [R4,#6]\n"
1039                 "STRH    R1, [SP,#0x1A]\n"
1040                 "LDRH    R1, [R0,#0xC]\n"
1041                 "STRH    R1, [SP,#0x1C]\n"
1042                 "LDRH    R1, [R4,#0xA]\n"
1043                 "STRH    R1, [SP,#0x1E]\n"
1044                 "BL      sub_FF0C5314\n"
1045                 "B       loc_FF0C438C\n"
1046
1047 "loc_FF0C42B8:\n"
1048                 "LDRH    R1, [R0,#4]\n"
1049                 "STRH    R1, [SP,#0x14]\n"
1050                 "LDRH    R1, [R4,#2]\n"
1051                 "STRH    R1, [SP,#0x16]\n"
1052                 "LDRH    R1, [R4,#4]\n"
1053                 "STRH    R1, [SP,#0x18]\n"
1054                 "LDRH    R1, [R4,#6]\n"
1055                 "STRH    R1, [SP,#0x1A]\n"
1056                 "LDRH    R1, [R4,#8]\n"
1057                 "STRH    R1, [SP,#0x1C]\n"
1058                 "LDRH    R1, [R4,#0xA]\n"
1059                 "STRH    R1, [SP,#0x1E]\n"
1060                 "BL      sub_FF0C5494\n"
1061                 "B       loc_FF0C438C\n"
1062
1063 "loc_FF0C42F0:\n"
1064                 "LDRH    R1, [R4]\n"
1065                 "STRH    R1, [SP,#0x14]\n"
1066                 "LDRH    R1, [R0,#6]\n"
1067                 "STRH    R1, [SP,#0x16]\n"
1068                 "LDRH    R1, [R4,#4]\n"
1069                 "STRH    R1, [SP,#0x18]\n"
1070                 "LDRH    R1, [R4,#6]\n"
1071                 "STRH    R1, [SP,#0x1A]\n"
1072                 "LDRH    R1, [R4,#8]\n"
1073                 "STRH    R1, [SP,#0x1C]\n"
1074                 "LDRH    R1, [R4,#0xA]\n"
1075                 "STRH    R1, [SP,#0x1E]\n"
1076                 "BL      sub_FF0C5548\n"
1077                 "B       loc_FF0C438C\n"
1078
1079 "loc_FF0C4328:\n"
1080                 "LDRH    R1, [R4]\n"
1081                 "STRH    R1, [SP,#0x14]\n"
1082                 "LDRH    R1, [R4,#2]\n"
1083                 "STRH    R1, [SP,#0x16]\n"
1084                 "LDRH    R1, [R4,#4]\n"
1085                 "STRH    R1, [SP,#0x18]\n"
1086                 "LDRH    R1, [R4,#6]\n"
1087                 "STRH    R1, [SP,#0x1A]\n"
1088                 "LDRH    R1, [R0,#0xC]\n"
1089                 "STRH    R1, [SP,#0x1C]\n"
1090                 "LDRH    R1, [R4,#0xA]\n"
1091                 "STRH    R1, [SP,#0x1E]\n"
1092                 "BL      sub_FF0C55F0\n"
1093                 "B       loc_FF0C438C\n"
1094
1095 "loc_FF0C4360:\n"
1096                 "BL      sub_FF0C0D24\n"
1097                 "B       loc_FF0C438C\n"
1098
1099 "loc_FF0C4368:\n"
1100                 "BL      sub_FF0C153C\n"
1101                 "B       loc_FF0C438C\n"
1102
1103
1104 "loc_FF0C4370:\n"
1105                 "BL      sub_FF0C1A48\n"
1106                 "B       loc_FF0C438C\n"
1107
1108 "loc_FF0C4378:\n"
1109                 "BL      sub_FF0C1C28\n"
1110                 "B       loc_FF0C438C\n"
1111
1112 "loc_FF0C4380:\n"
1113                 "BL      sub_FF0C1DE4\n"
1114                 "B       loc_FF0C438C\n"
1115
1116 "loc_FF0C4388:\n"
1117                 "BL      sub_FF0C1F54\n"
1118
1119 "loc_FF0C438C:\n"
1120                 "LDR     R0, [SP,#0x20]\n"
1121                 "LDR     R1, [R0,#0x7C]\n"
1122                 "LDR     R2, [R0,#0x90]\n"
1123                 "LDR     R3, [R0,#0x8C]\n"
1124
1125 "loc_FF0C439C:\n"
1126                 "ADD     R0, R0, #4\n"
1127                 "BLX     R3\n"
1128
1129 "loc_FF0C43A4:\n"
1130                 "LDR     R1, [SP,#0x20]\n"
1131                 "LDR     R0, [R1]\n"
1132                 "CMP     R0, #0x10\n"
1133                 "BEQ     loc_FF0C43DC\n"
1134                 "BGT     loc_FF0C43CC\n"
1135                 "CMP     R0, #1\n"
1136                 "CMPNE   R0, #4\n"
1137                 "CMPNE   R0, #0xE\n"
1138                 "BNE     loc_FF0C43EC\n"
1139                 "B       loc_FF0C43DC\n"
1140
1141 "loc_FF0C43CC:\n"
1142                 "CMP     R0, #0x13\n"
1143                 "CMPNE   R0, #0x17\n"
1144                 "CMPNE   R0, #0x1A\n"
1145                 "BNE     loc_FF0C43EC\n"
1146
1147 "loc_FF0C43DC:\n"
1148                 "LDRH    R0, [R4]\n"
1149                 "STRH    R0, [SP,#0x14]\n"
1150                 "LDRH    R0, [R4,#8]\n"
1151                 "STRH    R0, [SP,#0x1C]\n"
1152
1153 "loc_FF0C43EC:\n"
1154                 "CMP     R8, #1\n"
1155                 "BNE     loc_FF0C4438\n"
1156                 "LDR     R0, [R1,#0x7C]\n"
1157                 "MOV     R2, #0xC\n"
1158                 "ADD     R0, R0, R0,LSL#1\n"
1159                 "ADD     R0, R1, R0,LSL#2\n"
1160                 "SUB     R8, R0, #8\n"
1161                 "LDR     R0, =0x5A5B4\n"
1162                 "ADD     R1, SP, #0x14\n"
1163                 "BL      sub_FF3AB5F4\n"  //1.01A
1164                 "LDR     R0, =0x5A5C0\n"
1165                 "MOV     R2, #0xC\n"
1166                 "ADD     R1, SP, #0x14\n"
1167                 "BL      sub_FF3AB5F4\n"  //1.01A
1168                 "LDR     R0, =0x5A5CC\n"
1169                 "MOV     R2, #0xC\n"
1170                 "MOV     R1, R8\n"
1171                 "BL      sub_FF3AB5F4\n"  //1.01A
1172                 "B       loc_FF0C44B0\n"
1173
1174 "loc_FF0C4438:\n"
1175                 "LDR     R0, [R1]\n"
1176                 "MOV     R3, #1\n"
1177                 "CMP     R0, #0xB\n"
1178                 "BNE     loc_FF0C447C\n"
1179                 "MOV     R2, #0\n"
1180                 "STRD    R2, [SP]\n"
1181                 "MOV     R2, R3\n"
1182                 "MOV     R1, R3\n"
1183                 "MOV     R0, #0\n"
1184                 "BL      sub_FF0BF4A8\n"
1185                 "MOV     R3, #1\n"
1186                 "MOV     R2, #0\n"
1187                 "STRD    R2, [SP]\n"
1188                 "MOV     R2, R3\n"
1189                 "MOV     R1, R3\n"
1190                 "MOV     R0, #0\n"
1191                 "B       loc_FF0C44AC\n"
1192
1193 "loc_FF0C447C:\n"
1194                 "MOV     R2, #1\n"
1195                 "STRD    R2, [SP]\n"
1196                 "MOV     R3, R2\n"
1197                 "MOV     R1, R2\n"
1198                 "MOV     R0, R2\n"
1199                 "BL      sub_FF0BF4A8\n"
1200                 "MOV     R3, #1\n"
1201                 "MOV     R2, R3\n"
1202                 "MOV     R1, R3\n"
1203                 "MOV     R0, R3\n"
1204                 "STR     R3, [SP]\n"
1205                 "STR     R3, [SP,#4]\n"
1206
1207 "loc_FF0C44AC:\n"
1208                 "BL      sub_FF0BF620\n"
1209
1210 "loc_FF0C44B0:\n"
1211                                 "LDR     R0, [SP,#0x20]\n"
1212                 "BL      sub_FF0C5280\n"
1213                 "B       loc_FF0C3E74\n"
1214
1215       
1216       
1217        );
1218
1219
1220}
1221
1222
1223//SX220 sub_FF0C05C4_my
1224void __attribute__((naked,noinline)) sub_FF0C05C4_my(){
1225 
1226        asm volatile(
1227       
1228                     "STMFD   SP!, {R4-R8,LR}\n"
1229                 "LDR     R7, =0x57B0\n"
1230                 "MOV     R4, R0\n"
1231                 "LDR     R0, [R7,#0x1C]\n"
1232                 "MOV     R1, #0x3E\n"
1233                 "BL      sub_FF0826F8\n"
1234                 "MOV     R2, #0\n"
1235                 "LDRSH   R0, [R4,#4]\n"
1236                 "MOV     R1, R2\n"
1237                 "BL      sub_FF0BF168\n"
1238                 "MOV     R5, R0\n"
1239                 "LDRSH   R0, [R4,#6]\n"
1240                 "BL      sub_FF0BF2B8\n"
1241                 "LDRSH   R0, [R4,#8]\n"
1242                 "BL      sub_FF0BF310\n"
1243                 "LDRSH   R0, [R4,#0xA]\n"
1244                 "BL      sub_FF0BF368\n"
1245                 "LDRSH   R0, [R4,#0xC]\n"
1246                 "MOV     R1, #0\n"
1247                 "BL      sub_FF0BF3C0\n"
1248                 "MOV     R6, R0\n"
1249                 "LDRSH   R0, [R4,#0xE]\n"
1250                 "BL      sub_FF0C52B0\n"
1251                 "LDR     R0, [R4]\n"
1252                 "LDR     R8, =0x5A5CC\n"
1253                 "CMP     R0, #0xB\n"
1254                 "MOVEQ   R5, #0\n"
1255                 "MOVEQ   R6, R5\n"
1256                 "BEQ     loc_FF0C0660\n"
1257                 "CMP     R5, #1\n"
1258                 "BNE     loc_FF0C0660\n"
1259                 "LDRSH   R0, [R4,#4]\n"
1260                 "LDR     R1, =0xFF0BF0C8\n"
1261                 "MOV     R2, #2\n"
1262                 "BL      sub_FF17E520\n"
1263                 "STRH    R0, [R4,#4]\n"
1264                 "MOV     R0, #0\n"
1265                 "STR     R0, [R7,#0x28]\n"
1266                 "B       loc_FF0C0668\n"
1267
1268 "loc_FF0C0660:\n"
1269                 "LDRH    R0, [R8]\n"
1270                 "STRH    R0, [R4,#4]\n"
1271
1272 "loc_FF0C0668:\n"
1273                 "CMP     R6, #1\n"
1274                 "LDRNEH  R0, [R8,#8]\n"
1275                 "BNE     loc_FF0C0684\n"
1276                 "LDRSH   R0, [R4,#0xC]\n"
1277                 "LDR     R1, =0xFF0BF14C\n"
1278                 "MOV     R2, #0x20\n"
1279                 "BL      sub_FF0C52D0\n"
1280
1281 "loc_FF0C0684:\n"
1282                 "STRH    R0, [R4,#0xC]\n"
1283                 "LDRSH   R0, [R4,#6]\n"
1284                 "BL      sub_FF0B0788_my\n"     //sx220 patched
1285                 "LDRSH   R0, [R4,#8]\n"
1286                 "MOV     R1, #1\n"
1287                 "BL      sub_FF0B0F40\n"
1288                 "MOV     R1, #0\n"
1289                 "ADD     R0, R4, #8\n"
1290                 "BL      sub_FF0B0FC8\n"
1291                 "LDRSH   R0, [R4,#0xE]\n"
1292                 "BL      sub_FF0B9F58\n"
1293                 "LDR     R4, =0xBB8\n"
1294                 "CMP     R5, #1\n"
1295                 "BNE     loc_FF0C06DC\n"
1296                 "LDR     R0, [R7,#0x1C]\n"
1297                 "MOV     R2, R4\n"
1298                 "MOV     R1, #2\n"
1299                 "BL      sub_FF082604\n"
1300                 "TST     R0, #1\n"
1301                 "LDRNE   R1, =0x7E3\n"
1302                 "LDRNE   R0, =0xFF0BF8A8\n"
1303                 "BLNE    sub_FF00EC88\n"
1304
1305 "loc_FF0C06DC:\n"
1306                 "CMP     R6, #1\n"
1307                 "LDMNEFD SP!, {R4-R8,PC}\n"
1308                 "LDR     R0, [R7,#0x1C]\n"
1309                 "MOV     R2, R4\n"
1310                 "MOV     R1, #0x20\n"
1311                 "BL      sub_FF082604\n"
1312                 "TST     R0, #1\n"
1313                 "LDMEQFD SP!, {R4-R8,PC}\n"
1314                 "LDMFD   SP!, {R4-R8,LR}\n"
1315                 "LDR     R1, =0x7E8\n"
1316                 "LDR     R0, =0xFF0BF8A8\n"
1317                 "B       sub_FF00EC88\n"
1318
1319
1320       
1321        );
1322}       
1323
1324//SX220 sub_FF0B0788_my
1325void __attribute__((naked,noinline)) sub_FF0B0788_my(){
1326 
1327        asm volatile(
1328       
1329                     "STMFD   SP!, {R4-R6,LR}\n"
1330                 "LDR     R5, =0x5458\n"
1331                 "MOV     R4, R0\n"
1332                 "LDR     R0, [R5,#4]\n"
1333                 "CMP     R0, #1\n"
1334                 "LDRNE   R1, =0x146\n"
1335                 "LDRNE   R0, =0xFF0B05C0\n"  //aShutter_c
1336                 "BLNE    sub_FF00EC88\n"    //ASSERT
1337                 "CMN     R4, #0xC00\n"
1338                 "LDREQSH R4, [R5,#2]\n"
1339                 "CMN     R4, #0xC00\n"
1340                 "MOVEQ   R1, #0x14C\n"
1341                 "LDREQ   R0, =0xFF0B05C0\n"   //aShutter_c
1342                 "STRH    R4, [R5,#2]\n"
1343                 "BLEQ    sub_FF00EC88\n"   //ASSERT
1344                 "MOV     R0, R4\n"
1345                 "BL      apex2us\n"   //SX220 patched
1346                 "MOV     R4, R0\n"
1347                 "BL      sub_FF104D38\n"
1348                 "MOV     R0, R4\n"
1349                 "BL      sub_FF112D6C\n"
1350                 "TST     R0, #1\n"
1351                 "LDMEQFD SP!, {R4-R6,PC}\n"
1352                 "LDMFD   SP!, {R4-R6,LR}\n"
1353                 "LDR     R1, =0x151\n"
1354                 "LDR     R0, =0xFF0B05C0\n"   //aShutter_c
1355                 "B       sub_FF00EC88\n"  //ASSERT
1356       
1357        );
1358 }
Note: See TracBrowser for help on using the repository browser.