Changeset 3111


Ignore:
Timestamp:
09/15/13 19:16:13 (7 months ago)
Author:
nafraf
Message:

sx230 - update

  • modemap entries complete
  • filewritetask implementation
  • fix camera crash during video recording
Location:
trunk/platform/sx230hs
Files:
8 added
18 edited

Legend:

Unmodified
Added
Removed
  • trunk/platform/sx230hs/kbd.c

    r2603 r3111  
    1919 
    2020static KeyMap keymap[]; 
    21 static int alt_mode_led=0; 
    2221extern void _GetKbdState(long*); 
    2322 
  • trunk/platform/sx230hs/platform_camera.h

    r2940 r3111  
    3030    #define CAM_ALT_BUTTON_OPTIONS          { KEY_PRINT, KEY_VIDEO, KEY_DISPLAY } 
    3131    #define CAM_DRIVE_MODE_FROM_TIMER_MODE  1 
     32 
     33    #define DRAW_ON_ACTIVE_BITMAP_BUFFER_ONLY   1   // Draw pixels on active bitmap buffer only. 
    3234 
    3335    #undef  CAM_AF_LED 
     
    124126 
    125127    #define CAM_HAS_MOVIE_DIGEST_MODE       1  
     128 
     129    #define CAM_HAS_FILEWRITETASK_HOOK          1   // file write hook for remote capture etc 
    126130//---------------------------------------------------------- 
  • trunk/platform/sx230hs/shooting.c

    r1675 r3111  
    127127    { MODE_SCN_BEST_IMAGE       , 0x4209    }, 
    128128    { MODE_SCN_TOY_CAMERA       , 0x222f    }, 
    129     { MODE_SCN_MONOCHROME       , 0x2232    } 
     129    { MODE_SCN_MONOCHROME       , 0x2232    }, 
     130    { MODE_SCN_WINK_SELF_TIMER  , 16938     }, 
     131    { MODE_SCN_FACE_SELF_TIMER  , 16936     }, 
    130132}; 
    131133 
  • trunk/platform/sx230hs/sub/100c/Makefile

    r1328 r3111  
    11topdir=../../../../ 
    22 
    3 OBJS=boot.o stubs_min.o stubs_auto.o stubs_entry.o lib.o stubs_entry_2.o capt_seq.o movie_rec.o kbd.o 
    4 STUBS_AUTO_DEPS=boot.c capt_seq.c movie_rec.c 
     3OBJS=boot.o stubs_min.o stubs_auto.o stubs_entry.o lib.o stubs_entry_2.o capt_seq.o movie_rec.o kbd.o filewrite.o 
     4STUBS_AUTO_DEPS=boot.c capt_seq.c movie_rec.c filewrite.c 
    55 
    66include  $(topdir)platform/makefile_sub.inc 
  • trunk/platform/sx230hs/sub/100c/boot.c

    r2982 r3111  
    1515extern void task_MovieRecord(); 
    1616extern void task_ExpDrv(); 
     17extern void task_FileWrite(); 
    1718 
    1819void taskHook(context_t **context) {  
     
    2526        if(tcb->entry == (void*)task_MovieRecord)               tcb->entry = (void*)movie_record_task; 
    2627        if(tcb->entry == (void*)task_ExpDrv)                    tcb->entry = (void*)exp_drv_task; 
     28    if(tcb->entry == (void*)task_FileWrite)         tcb->entry = (void*)filewritetask; 
    2729} 
    2830 
  • trunk/platform/sx230hs/sub/100c/movie_rec.c

    r1991 r3111  
     1/* 
     2 * movie_rec.c - auto-generated by CHDK code_gen. 
     3 */ 
    14#include "conf.h" 
    25 
     
    58 
    69void  set_quality(int *x){ // -17 highest; +12 lowest 
    7   
    810 if (conf.video_mode) *x=12-((conf.video_quality-1)*(12+17)/(99-1)); 
    911} 
    1012 
    11 void __attribute__((naked,noinline)) movie_record_task(){ 
    12  
     13/*************************************************************/ 
     14//** movie_record_task @ 0xFF18D7C0 - 0xFF18D938, length=95 
     15void __attribute__((naked,noinline)) movie_record_task() { 
    1316asm volatile ( 
    14                 "STMFD  SP!, {R2-R10,LR}\n" 
    15                 "LDR    R6, =0xFF18C57C\n" 
    16                 "LDR    R7, =sub_FF18D218_my\n" 
    17                 "LDR    R4, =0x85E0\n" 
    18                 "LDR    R9, =0x67F\n" 
    19                 "LDR    R10, =0x2710\n" 
    20                 "MOV    R8, #1\n" 
    21                 "MOV    R5, #0\n" 
     17"    STMFD   SP!, {R2-R10,LR} \n" 
     18"    LDR     R6, =0xFF18C57C \n" 
     19"    LDR     R7, =0xFF18D218 \n" 
     20"    LDR     R4, =0x85E0 \n" 
     21"    LDR     R9, =0x67F \n" 
     22"    LDR     R10, =0x2710 \n" 
     23"    MOV     R8, #1 \n" 
     24"    MOV     R5, #0 \n" 
     25 
    2226"loc_FF18D7E0:\n" 
    23                 "LDR    R0, [R4, #0x24]\n" 
    24                 "MOV    R2, #0\n" 
    25                 "ADD    R1, SP, #4\n" 
    26                 "BL     sub_FF02B17C\n" 
    27                 "LDR    R0, [R4, #0x2C]\n" 
    28                 "CMP    R0, #0\n" 
    29                 "LDRNE  R0, [R4, #0xC]\n" 
    30                 "CMPNE  R0, #2\n" 
    31                 "LDRNE  R0, [R4, #0x44]\n" 
    32                 "CMPNE  R0, #6\n" 
    33                 "BNE    loc_FF18D91C\n" 
    34                 "LDR    R0, [SP, #4]\n" 
    35                 "LDR    R1, [R0]\n" 
    36                 "SUB    R1, R1, #2\n" 
    37                 "CMP    R1, #0xD\n" 
    38                 "ADDCC  PC, PC, R1, LSL #2\n" 
    39                 "B      loc_FF18D91C\n" 
    40 "loc_FF18D824:\n" 
    41                 "B      loc_FF18D8BC\n" 
    42 "loc_FF18D828:\n" 
    43                 "B      loc_FF18D8E0\n" 
    44 "loc_FF18D82C:\n" 
    45                 "B      loc_FF18D8F0\n" 
    46 "loc_FF18D830:\n" 
    47                 "B      loc_FF18D8F8\n" 
    48 "loc_FF18D834:\n" 
    49                 "B      loc_FF18D900\n" 
    50 "loc_FF18D838:\n" 
    51                 "B      loc_FF18D908\n" 
    52 "loc_FF18D83C:\n" 
    53                 "B      loc_FF18D8C4\n" 
    54 "loc_FF18D840:\n" 
    55                 "B      loc_FF18D910\n" 
    56 "loc_FF18D844:\n" 
    57                 "B      loc_FF18D8D0\n" 
    58 "loc_FF18D848:\n" 
    59                 "B      loc_FF18D91C\n" 
    60 "loc_FF18D84C:\n" 
    61                 "B      loc_FF18D918\n" 
    62 "loc_FF18D850:\n" 
    63                 "B      loc_FF18D888\n" 
    64 "loc_FF18D854:\n" 
    65                 "B      loc_FF18D858\n" 
     27"    LDR     R0, [R4, #0x24] \n" 
     28"    MOV     R2, #0 \n" 
     29"    ADD     R1, SP, #4 \n" 
     30"    BL      sub_FF02B17C /*_ReceiveMessageQueue*/ \n" 
     31"    LDR     R0, [R4, #0x2C] \n" 
     32"    CMP     R0, #0 \n" 
     33"    LDRNE   R0, [R4, #0xC] \n" 
     34"    CMPNE   R0, #2 \n" 
     35"    LDRNE   R0, [R4, #0x44] \n" 
     36"    CMPNE   R0, #6 \n" 
     37"    BNE     loc_FF18D91C \n" 
     38"    LDR     R0, [SP, #4] \n" 
     39"    LDR     R1, [R0] \n" 
     40"    SUB     R1, R1, #2 \n" 
     41"    CMP     R1, #0xD \n" 
     42"    ADDCC   PC, PC, R1, LSL#2 \n" 
     43"    B       loc_FF18D91C \n" 
     44"    B       loc_FF18D8BC \n" 
     45"    B       loc_FF18D8E0 \n" 
     46"    B       loc_FF18D8F0 \n" 
     47"    B       loc_FF18D8F8 \n" 
     48"    B       loc_FF18D900 \n" 
     49"    B       loc_FF18D908 \n" 
     50"    B       loc_FF18D8C4 \n" 
     51"    B       loc_FF18D910 \n" 
     52"    B       loc_FF18D8D0 \n" 
     53"    B       loc_FF18D91C \n" 
     54"    B       loc_FF18D918 \n" 
     55"    B       loc_FF18D888 \n" 
     56"    B       loc_FF18D858 \n" 
     57 
    6658"loc_FF18D858:\n" 
    67                 "STR    R5, [R4, #0x40]\n" 
    68                 "STR    R5, [R4, #0x30]\n" 
    69                 "STR    R5, [R4, #0x34]\n" 
    70                 "STRH   R5, [R4, #6]\n" 
    71                 "STR    R6, [R4, #0xD8]\n" 
    72                 "STR    R7, [R4, #0xF0]\n" 
    73                 "LDR    R0, [R4, #0xC]\n" 
    74                 "ADD    R0, R0, #1\n" 
    75                 "STR    R0, [R4, #0xC]\n" 
    76                 "MOV    R0, #6\n" 
    77                 "STR    R0, [R4, #0x44]\n" 
    78                 "B      loc_FF18D8A8\n" 
     59"    STR     R5, [R4, #0x40] \n" 
     60"    STR     R5, [R4, #0x30] \n" 
     61"    STR     R5, [R4, #0x34] \n" 
     62"    STRH    R5, [R4, #6] \n" 
     63"    STR     R6, [R4, #0xD8] \n" 
     64"    STR     R7, [R4, #0xF0] \n" 
     65"    LDR     R0, [R4, #0xC] \n" 
     66"    ADD     R0, R0, #1 \n" 
     67"    STR     R0, [R4, #0xC] \n" 
     68"    MOV     R0, #6 \n" 
     69"    STR     R0, [R4, #0x44] \n" 
     70"    B       loc_FF18D8A8 \n" 
     71 
    7972"loc_FF18D888:\n" 
    80                 "STR    R5, [R4, #0x40]\n" 
    81                 "STR    R5, [R4, #0x30]\n" 
    82                 "STR    R6, [R4, #0xD8]\n" 
    83                 "STR    R7, [R4, #0xF0]\n" 
    84                 "LDR    R0, [R4, #0xC]\n" 
    85                 "ADD    R0, R0, #1\n" 
    86                 "STR    R0, [R4, #0xC]\n" 
    87                 "STR    R8, [R4, #0x44]\n" 
     73"    STR     R5, [R4, #0x40] \n" 
     74"    STR     R5, [R4, #0x30] \n" 
     75"    STR     R6, [R4, #0xD8] \n" 
     76"    STR     R7, [R4, #0xF0] \n" 
     77"    LDR     R0, [R4, #0xC] \n" 
     78"    ADD     R0, R0, #1 \n" 
     79"    STR     R0, [R4, #0xC] \n" 
     80"    STR     R8, [R4, #0x44] \n" 
     81 
    8882"loc_FF18D8A8:\n" 
    89                 "LDR    R2, =0xFF18BBB8\n" 
    90 //                "LDR    R2, =sub_FF18BBB8\n" 
    91                 "LDR    R1, =0xC6A08\n" 
    92                 "LDR    R0, =0xFF18BCCC\n" 
    93                 "BL     sub_FF0453CC\n" 
    94                 "B      loc_FF18D91C\n" 
     83"    LDR     R2, =0xFF18BBB8 \n" 
     84"    LDR     R1, =0xC6A08 \n" 
     85"    LDR     R0, =0xFF18BCCC \n" 
     86"    BL      sub_FF0453CC \n" 
     87"    B       loc_FF18D91C \n" 
     88 
    9589"loc_FF18D8BC:\n" 
    96 //              "BL     sub_FF18CE08_my\n" 
    97                 "BL     movie_time\n" 
    98 "label_A:\n" 
    99                 "B      loc_FF18D91C\n" 
    100 "loc_FF18D8C4:\n" 
    101                 "LDR    R1, [R4, #0xF0]\n" 
    102                 "BLX    R1\n" 
    103                 "B      loc_FF18D91C\n" 
    104 "loc_FF18D8D0:\n" 
    105                 "LDR    R1, [R0, #0x18]\n" 
    106                 "LDR    R0, [R0, #4]\n" 
    107                 "BL     sub_FF306C24\n" 
    108                 "B      loc_FF18D91C\n" 
    109 "loc_FF18D8E0:\n" 
    110                 "LDR    R0, [R4, #0x44]\n" 
    111                 "CMP    R0, #5\n" 
    112                 "STRNE  R8, [R4, #0x34]\n" 
    113                 "B      loc_FF18D91C\n" 
    114 "loc_FF18D8F0:\n" 
    115                 "BL     sub_FF18C258\n" 
    116                 "B      loc_FF18D91C\n" 
    117 "loc_FF18D8F8:\n" 
    118                 "BL     sub_FF18BF6C\n" 
    119                 "B      loc_FF18D91C\n" 
    120 "loc_FF18D900:\n" 
    121                 "BL     sub_FF18BD24\n" 
    122                 "B      loc_FF18D91C\n" 
    123 "loc_FF18D908:\n" 
    124                 "BL     sub_FF18B94C\n" 
    125                 "B      loc_FF18D91C\n" 
    126 "loc_FF18D910:\n" 
    127                 "BL     sub_FF18B8CC\n" 
    128                 "B      loc_FF18D91C\n" 
    129 "loc_FF18D918:\n" 
    130                 "BL     sub_FF18DE6C\n" 
    131 "loc_FF18D91C:\n" 
    132                 "LDR    R1, [SP, #4]\n" 
    133                 "LDR    R3, =0xFF18B630\n" 
    134                 "STR    R5, [R1]\n" 
    135                 "STR    R9, [SP]\n" 
    136                 "LDR    R0, [R4, #0x28]\n" 
    137                 "MOV    R2, R10\n" 
    138                 "BL     sub_FF02BAF4\n" 
    139                 "B      loc_FF18D7E0\n" 
    140     ); 
    141 } 
    142  
    143 void __attribute__((naked,noinline)) movie_time(){ 
    144 if( (int)conf.ext_video_time == 1 ) 
     90); 
     91if (conf.ext_video_time == 1) 
    14592{ 
    14693asm volatile ( 
    147                 "BL     sub_FF18CE08_my\n" 
    148                                 "B              label_A\n" 
    149                          ); 
     94"    BL      sub_FF18CE08_my \n"  // --> Patched. Old value = 0xFF18CE08. 
     95); 
    15096} 
    15197else 
    15298{ 
    15399asm volatile ( 
    154                 "BL     sub_FF18CE08\n" 
    155                                 "B              label_A\n" 
    156                          ); 
     100"    BL      sub_FF18CE08 \n" 
     101); 
    157102} 
    158  
     103asm volatile ( 
     104"    B       loc_FF18D91C \n" 
     105 
     106"loc_FF18D8C4:\n" 
     107"    LDR     R1, [R4, #0xF0] \n" 
     108"    BLX     R1 \n" 
     109//begin patch 
     110"    LDR     R0, =video_compression_rate\n" //added 
     111"    BL      set_quality\n"                 //added 
     112//end patch 
     113"    B       loc_FF18D91C \n" 
     114 
     115"loc_FF18D8D0:\n" 
     116"    LDR     R1, [R0, #0x18] \n" 
     117"    LDR     R0, [R0, #4] \n" 
     118"    BL      sub_FF306C24 \n" 
     119"    B       loc_FF18D91C \n" 
     120 
     121"loc_FF18D8E0:\n" 
     122"    LDR     R0, [R4, #0x44] \n" 
     123"    CMP     R0, #5 \n" 
     124"    STRNE   R8, [R4, #0x34] \n" 
     125"    B       loc_FF18D91C \n" 
     126 
     127"loc_FF18D8F0:\n" 
     128"    BL      sub_FF18C258 \n" 
     129"    B       loc_FF18D91C \n" 
     130 
     131"loc_FF18D8F8:\n" 
     132"    BL      sub_FF18BF6C \n" 
     133"    B       loc_FF18D91C \n" 
     134 
     135"loc_FF18D900:\n" 
     136"    BL      sub_FF18BD24 \n" 
     137"    B       loc_FF18D91C \n" 
     138 
     139"loc_FF18D908:\n" 
     140"    BL      sub_FF18B94C \n" 
     141"    B       loc_FF18D91C \n" 
     142 
     143"loc_FF18D910:\n" 
     144"    BL      sub_FF18B8CC \n" 
     145"    B       loc_FF18D91C \n" 
     146 
     147"loc_FF18D918:\n" 
     148"    BL      sub_FF18DE6C \n" 
     149 
     150"loc_FF18D91C:\n" 
     151"    LDR     R1, [SP, #4] \n" 
     152"    LDR     R3, =0xFF18B630 \n" 
     153"    STR     R5, [R1] \n" 
     154"    STR     R9, [SP] \n" 
     155"    LDR     R0, [R4, #0x28] \n" 
     156"    MOV     R2, R10 \n" 
     157"    BL      sub_FF02BAF4 /*_PostMessageQueueStrictly*/ \n" 
     158"    B       loc_FF18D7E0 \n" 
     159); 
    159160} 
    160161 
    161 void __attribute__((naked,noinline)) sub_FF18CE08_my(){ 
    162  
     162/*************************************************************/ 
     163//** sub_FF18CE08_my @ 0xFF18CE08 - 0xFF18D0E8, length=185 
     164void __attribute__((naked,noinline)) sub_FF18CE08_my() { 
    163165asm volatile ( 
    164                 "STMFD  SP!, {R0-R8,LR}\n" 
    165                 "LDR    R6, =0x85E0\n" 
    166                 "MOV    R0, #0\n" 
    167                 "STR    R0, [R6, #0x34]\n" 
    168                 "STR    R0, [R6, #0x38]\n" 
    169                 "ADD    R0, R6, #0\n" 
    170                 "LDR    R0, [R0, #0x5C]\n" 
    171                 "LDRH   R1, [R6, #6]\n" 
    172                 "MOV    R3, #0x3E8\n" 
    173                 "MUL    R0, R3, R0\n" 
    174                 "CMP    R1, #0\n" 
    175                 "MOV    R2, #1\n" 
    176                 "BNE    loc_FF18CE4C\n" 
    177                 "LDR    R1, [R6, #0x90]\n" 
    178                 "CMP    R1, #0\n" 
    179                 "BNE    loc_FF18CE5C\n" 
    180                 "B      loc_FF18CE54\n" 
     166"    STMFD   SP!, {R0-R8,LR} \n" 
     167"    LDR     R6, =0x85E0 \n" 
     168"    MOV     R0, #0 \n" 
     169"    STR     R0, [R6, #0x34] \n" 
     170"    STR     R0, [R6, #0x38] \n" 
     171"    MOV     R0, R6 \n" 
     172"    LDR     R0, [R0, #0x5C] \n" 
     173"    LDRH    R1, [R6, #6] \n" 
     174"    MOV     R3, #0x3E8 \n" 
     175"    MUL     R0, R3, R0 \n" 
     176"    CMP     R1, #0 \n" 
     177"    MOV     R2, #1 \n" 
     178"    BNE     loc_FF18CE4C \n" 
     179"    LDR     R1, [R6, #0x90] \n" 
     180"    CMP     R1, #0 \n" 
     181"    BNE     loc_FF18CE5C \n" 
     182"    B       loc_FF18CE54 \n" 
     183 
    181184"loc_FF18CE4C:\n" 
    182                 "CMP    R1, #3\n" 
    183                 "BNE    loc_FF18CE5C\n" 
     185"    CMP     R1, #3 \n" 
     186"    BNE     loc_FF18CE5C \n" 
     187 
    184188"loc_FF18CE54:\n" 
    185                 "STR    R2, [R6, #0x48]\n" 
    186                 "B      loc_FF18CE68\n" 
     189"    STR     R2, [R6, #0x48] \n" 
     190"    B       loc_FF18CE68 \n" 
     191 
    187192"loc_FF18CE5C:\n" 
    188                 "MOV    R1, #0x3E8\n" 
    189                 "BL     sub_FF3B61A8\n" 
    190                 "STR    R0, [R6, #0x48]\n" 
     193"    MOV     R1, #0x3E8 \n" 
     194"    BL      sub_FF3B61A8 \n" 
     195"    STR     R0, [R6, #0x48] \n" 
     196 
    191197"loc_FF18CE68:\n" 
    192                 "LDR    R4, =0xC6A3C\n" 
    193                 "MOV    R7, #2\n" 
    194                 "LDR    R0, [R4, #8]\n" 
    195                 "CMP    R0, #0\n" 
    196                 "BEQ    loc_FF18CED0\n" 
    197                 "LDR    R0, [R6, #0x58]\n" 
    198                 "MOV    R1, #4\n" 
    199                 "CMP    R0, #0x18\n" 
    200                 "BEQ    loc_FF18D064\n" 
    201                 "BGT    loc_FF18CEAC\n" 
    202                 "CMP    R0, #0xA\n" 
    203                 "CMPNE  R0, #0xF\n" 
    204                 "STREQ  R7, [R4, #0x14]\n" 
    205                 "BEQ    loc_FF18CED0\n" 
    206                 "CMP    R0, #0x14\n" 
    207                 "BNE    loc_FF18CEC4\n" 
    208                 "B      loc_FF18D064\n" 
     198"    LDR     R4, =0xC6A3C \n" 
     199"    MOV     R7, #2 \n" 
     200"    LDR     R0, [R4, #8] \n" 
     201"    CMP     R0, #0 \n" 
     202"    BEQ     loc_FF18CED0 \n" 
     203"    LDR     R0, [R6, #0x58] \n" 
     204"    MOV     R1, #4 \n" 
     205"    CMP     R0, #0x18 \n" 
     206"    BEQ     loc_FF18D064 \n" 
     207"    BGT     loc_FF18CEAC \n" 
     208"    CMP     R0, #0xA \n" 
     209"    CMPNE   R0, #0xF \n" 
     210"    STREQ   R7, [R4, #0x14] \n" 
     211"    BEQ     loc_FF18CED0 \n" 
     212"    CMP     R0, #0x14 \n" 
     213"    BNE     loc_FF18CEC4 \n" 
     214"    B       loc_FF18D064 \n" 
     215 
    209216"loc_FF18CEAC:\n" 
    210                 "CMP    R0, #0x1E\n" 
    211                 "BEQ    loc_FF18D064\n" 
    212                 "CMP    R0, #0x3C\n" 
    213                 "MOVEQ  R0, #8\n" 
    214                 "STREQ  R0, [R4, #0x14]\n" 
    215                 "BEQ    loc_FF18CED0\n" 
     217"    CMP     R0, #0x1E \n" 
     218"    BEQ     loc_FF18D064 \n" 
     219"    CMP     R0, #0x3C \n" 
     220"    MOVEQ   R0, #8 \n" 
     221"    STREQ   R0, [R4, #0x14] \n" 
     222"    BEQ     loc_FF18CED0 \n" 
     223 
    216224"loc_FF18CEC4:\n" 
    217                 "LDR    R1, =0x777\n" 
    218                 "LDR    R0, =0xFF18B630\n" 
    219                 "BL     sub_FF00EC80\n" 
     225"    LDR     R1, =0x777 \n" 
     226"    LDR     R0, =0xFF18B630 \n" 
     227"    BL      _DebugAssert \n" 
     228 
    220229"loc_FF18CED0:\n" 
    221                 "LDR    R2, =0x85E2\n" 
    222                 "LDR    R0, [R6, #0xB8]\n" 
    223                 "MOV    R3, #2\n" 
    224                 "MOV    R1, #0xAA\n" 
    225                 "BL     sub_FF08C390\n" 
    226                 "LDR    R2, =0x85E4\n" 
    227                 "LDR    R0, [R6, #0xB8]\n" 
    228                 "MOV    R3, #2\n" 
    229                 "MOV    R1, #0xA9\n" 
    230                 "BL     sub_FF08C390\n" 
    231                 "LDR    R2, =0x8630\n" 
    232                 "LDR    R0, [R6, #0xB8]\n" 
    233                 "MOV    R3, #4\n" 
    234                 "MOV    R1, #0xA2\n" 
    235                 "BL     sub_FF08C390\n" 
    236                 "LDR    R2, =0x8634\n" 
    237                 "LDR    R0, [R6, #0xB8]\n" 
    238                 "MOV    R3, #4\n" 
    239                 "MOV    R1, #0xA3\n" 
    240                 "BL     sub_FF08C390\n" 
    241                 "LDR    R0, [R6, #0x90]\n" 
    242                 "CMP    R0, #0\n" 
    243                 "LDRNE  R2, =0x86E0\n" 
    244                 "MOVNE  R1, #0\n" 
    245                 "MOVNE  R0, #0xD\n" 
    246                 "BLNE   sub_FF086824\n" 
    247                 "LDR    R0, [R6, #0x4C]\n" 
    248                 "LDR    R5, =0x86E0\n" 
    249                 "LDR    R8, =0xC6A24\n" 
    250                 "CMP    R0, #2\n" 
    251                 "CMPNE  R0, #3\n" 
    252                 "BNE    loc_FF18CFCC\n" 
    253                 "LDR    R0, [R6, #0x90]\n" 
    254                 "CMP    R0, #0\n" 
    255                 "LDRNE  R0, =0x443FC000\n" 
    256                 "STRNE  R0, [R5]\n" 
    257                 "BNE    loc_FF18CFCC\n" 
    258                 "LDR    R0, =0x460B8600\n" 
    259                 "LDR    R1, =0x10959E0\n" 
    260                 "STR    R0, [R5]\n" 
    261                 "STR    R1, [R5, #4]\n" 
    262                 "LDMIA  R8, {R1,R2}\n" 
    263                 "STR    R0, [R6, #0xA0]\n" 
    264                 "MUL    R1, R2, R1\n" 
    265                 "MOV    R2, #0\n" 
    266                 "MOV    R3, R1, LSL #1\n" 
    267                 "ADD    R1, R0, R3\n" 
    268                 "STR    R3, [R6, #0x9C]\n" 
    269                 "STR    R1, [R6, #0xA4]\n" 
    270                 "STMEA  SP, {R1-R3}\n" 
    271                 "MOV    R3, R2\n" 
    272                 "MOV    R2, #9\n" 
    273                 "MOV    R1, #5\n" 
    274                 "MOV    R0, #0x10\n" 
    275                 "BL     sub_FF2B0840\n" 
    276                 "LDR    R1, [R5]\n" 
    277                 "LDR    R0, [R6, #0x9C]\n" 
    278                 "ADD    R1, R1, R0, LSL #1\n" 
    279                 "STR    R1, [R5]\n" 
    280                 "LDR    R1, [R5, #4]\n" 
    281                 "RSB    R0, R0, #0\n" 
    282                 "ADD    R0, R1, R0, LSL #1\n" 
    283                 "STR    R0, [R5, #4]\n" 
     230"    LDR     R2, =0x85E2 \n" 
     231"    LDR     R0, [R6, #0xB8] \n" 
     232"    MOV     R3, #2 \n" 
     233"    MOV     R1, #0xAA \n" 
     234"    BL      sub_FF08C390 \n" 
     235"    LDR     R2, =0x85E4 \n" 
     236"    LDR     R0, [R6, #0xB8] \n" 
     237"    MOV     R3, #2 \n" 
     238"    MOV     R1, #0xA9 \n" 
     239"    BL      sub_FF08C390 \n" 
     240"    LDR     R2, =0x8630 \n" 
     241"    LDR     R0, [R6, #0xB8] \n" 
     242"    MOV     R3, #4 \n" 
     243"    MOV     R1, #0xA2 \n" 
     244"    BL      sub_FF08C390 \n" 
     245"    LDR     R2, =0x8634 \n" 
     246"    LDR     R0, [R6, #0xB8] \n" 
     247"    MOV     R3, #4 \n" 
     248"    MOV     R1, #0xA3 \n" 
     249"    BL      sub_FF08C390 \n" 
     250"    LDR     R0, [R6, #0x90] \n" 
     251"    CMP     R0, #0 \n" 
     252"    LDRNE   R2, =0x86E0 \n" 
     253"    MOVNE   R1, #0 \n" 
     254"    MOVNE   R0, #0xD \n" 
     255"    BLNE    sub_FF086824 \n" 
     256"    LDR     R0, [R6, #0x4C] \n" 
     257"    LDR     R5, =0x86E0 \n" 
     258"    LDR     R8, =0xC6A24 \n" 
     259"    CMP     R0, #2 \n" 
     260"    CMPNE   R0, #3 \n" 
     261"    BNE     loc_FF18CFCC \n" 
     262"    LDR     R0, [R6, #0x90] \n" 
     263"    CMP     R0, #0 \n" 
     264"    LDRNE   R0, =0x443FC000 \n" 
     265"    STRNE   R0, [R5] \n" 
     266"    BNE     loc_FF18CFCC \n" 
     267"    LDR     R0, =0x460B8600 \n" 
     268"    LDR     R1, =0x10959E0 \n" 
     269"    STR     R0, [R5] \n" 
     270"    STR     R1, [R5, #4] \n" 
     271"    LDMIA   R8, {R1,R2} \n" 
     272"    STR     R0, [R6, #0xA0] \n" 
     273"    MUL     R1, R2, R1 \n" 
     274"    MOV     R2, #0 \n" 
     275"    MOV     R3, R1, LSL#1 \n" 
     276"    ADD     R1, R0, R3 \n" 
     277"    STR     R3, [R6, #0x9C] \n" 
     278"    STR     R1, [R6, #0xA4] \n" 
     279"    STMEA   SP, {R1-R3} \n" 
     280"    MOV     R3, R2 \n" 
     281"    MOV     R2, #9 \n" 
     282"    MOV     R1, #5 \n" 
     283"    MOV     R0, #0x10 \n" 
     284"    BL      sub_FF2B0840 \n" 
     285"    LDR     R1, [R5] \n" 
     286"    LDR     R0, [R6, #0x9C] \n" 
     287"    ADD     R1, R1, R0, LSL#1 \n" 
     288"    STR     R1, [R5] \n" 
     289"    LDR     R1, [R5, #4] \n" 
     290"    RSB     R0, R0, #0 \n" 
     291"    ADD     R0, R1, R0, LSL#1 \n" 
     292"    STR     R0, [R5, #4] \n" 
     293 
    284294"loc_FF18CFCC:\n" 
    285                 "LDR    R3, =0xFF18CDD4\n" 
    286                 "LDMIA  R5, {R0,R1}\n" 
    287                 "STR    R3, [SP]\n" 
    288                 "LDR    R3, =0xC6A3C\n" 
    289                 "SUB    R2, R3, #0x18\n" 
    290                 "BL     sub_FF305594_my\n" 
    291                 "LDR    R3, [R6, #0xB8]\n" 
    292                 "STR    R3, [SP]\n" 
    293                 "LDR    R0, [R6, #0x90]\n" 
    294                 "LDRD   R2, [R6, #0xF8]\n" 
    295                 "BL     sub_FF3059A0\n" 
    296                 "LDR    R0, [R6, #0x64]\n" 
    297                 "LDR    R3, =0x8668\n" 
    298                 "AND    R1, R0, #0xFF\n" 
    299                 "LDR    R0, [R8]\n" 
    300                 "SUB    R2, R3, #4\n" 
    301                 "BL     sub_FF3032C0\n" 
    302                 "LDRH   R0, [R6, #6]\n" 
    303                 "CMP    R0, #2\n" 
    304                 "LDREQ  R0, =0xFF18CA98\n" 
    305                 "STREQ  R0, [R6, #0xF0]\n" 
    306                 "LDR    R0, [R6, #0x90]\n" 
    307                 "CMP    R0, #0\n" 
    308                 "LDREQ  R1, =0xFF18C6DC\n" 
    309                 "STREQ  R1, [R6, #0xF0]\n" 
    310                 "LDR    R2, [R6, #0xC]\n" 
    311                 "LDR    R1, =0xFF4144D0\n" 
    312                 "CMP    R2, #2\n" 
    313                 "BNE    loc_FF18D06C\n" 
    314                 "LDR    R0, [R6, #0x4C]\n" 
    315                 "ADD    R0, R1, R0, LSL #3\n" 
    316                 "LDR    R1, [R8, #0xC]\n" 
    317                 "LDR    R0, [R0, R1, LSL #2]\n" 
    318                 "BL     sub_FF2B6938\n" 
    319                 "LDR    R0, =0xFF18C658\n" 
    320                 "MOV    R1, #0\n" 
    321                 "BL     sub_FF2B6E4C\n" 
    322                 "B      loc_FF18D0A8\n" 
     295"    LDR     R3, =0xFF18CDD4 \n" 
     296"    LDMIA   R5, {R0,R1} \n" 
     297"    STR     R3, [SP] \n" 
     298"    LDR     R3, =0xC6A3C \n" 
     299"    SUB     R2, R3, #0x18 \n" 
     300"    BL      sub_FF305594_my \n"  // --> Patched. Old value = 0xFF305594. 
     301"    LDR     R3, [R6, #0xB8] \n" 
     302"    STR     R3, [SP] \n" 
     303"    LDR     R0, [R6, #0x90] \n" 
     304"    LDRD    R2, [R6, #0xF8] \n" 
     305"    BL      sub_FF3059A0 \n" 
     306"    LDR     R0, [R6, #0x64] \n" 
     307"    LDR     R3, =0x8668 \n" 
     308"    AND     R1, R0, #0xFF \n" 
     309"    LDR     R0, [R8] \n" 
     310"    SUB     R2, R3, #4 \n" 
     311"    BL      sub_FF3032C0 \n" 
     312"    LDRH    R0, [R6, #6] \n" 
     313"    CMP     R0, #2 \n" 
     314"    LDREQ   R0, =0xFF18CA98 \n" 
     315"    STREQ   R0, [R6, #0xF0] \n" 
     316"    LDR     R0, [R6, #0x90] \n" 
     317"    CMP     R0, #0 \n" 
     318"    LDREQ   R1, =0xFF18C6DC \n" 
     319"    STREQ   R1, [R6, #0xF0] \n" 
     320"    LDR     R2, [R6, #0xC] \n" 
     321"    LDR     R1, =0xFF4144D0 \n" 
     322"    CMP     R2, #2 \n" 
     323"    BNE     loc_FF18D06C \n" 
     324"    LDR     R0, [R6, #0x4C] \n" 
     325"    ADD     R0, R1, R0, LSL#3 \n" 
     326"    LDR     R1, [R8, #0xC] \n" 
     327"    LDR     R0, [R0, R1, LSL#2] \n" 
     328"    BL      sub_FF2B6938 \n" 
     329"    LDR     R0, =0xFF18C658 \n" 
     330"    MOV     R1, #0 \n" 
     331"    BL      sub_FF2B6E4C \n" 
     332"    B       loc_FF18D0A8 \n" 
     333 
    323334"loc_FF18D064:\n" 
    324                 "STR    R1, [R4, #0x14]\n" 
    325                 "B      loc_FF18CED0\n" 
     335"    STR     R1, [R4, #0x14] \n" 
     336"    B       loc_FF18CED0 \n" 
     337 
    326338"loc_FF18D06C:\n" 
    327                 "CMP    R0, #0\n" 
    328                 "BNE    loc_FF18D088\n" 
    329                 "LDR    R1, [R6, #0x98]\n" 
    330                 "MOV    R0, #5\n" 
    331                 "BL     sub_FF2B6E60\n" 
    332                 "BL     sub_FF2B6EF0\n" 
    333                 "B      loc_FF18D0A8\n" 
     339"    CMP     R0, #0 \n" 
     340"    BNE     loc_FF18D088 \n" 
     341"    LDR     R1, [R6, #0x98] \n" 
     342"    MOV     R0, #5 \n" 
     343"    BL      sub_FF2B6E60 \n" 
     344"    BL      sub_FF2B6EF0 \n" 
     345"    B       loc_FF18D0A8 \n" 
     346 
    334347"loc_FF18D088:\n" 
    335                 "LDR    R0, [R6, #0x4C]\n" 
    336                 "ADD    R0, R1, R0, LSL #3\n" 
    337                 "LDR    R1, [R8, #0xC]\n" 
    338                 "LDR    R0, [R0, R1, LSL #2]\n" 
    339                 "BL     sub_FF2B50D4\n" 
    340                 "LDR    R0, =0xFF18C658\n" 
    341                 "MOV    R1, #0\n" 
    342                 "BL     sub_FF2B581C\n" 
     348"    LDR     R0, [R6, #0x4C] \n" 
     349"    ADD     R0, R1, R0, LSL#3 \n" 
     350"    LDR     R1, [R8, #0xC] \n" 
     351"    LDR     R0, [R0, R1, LSL#2] \n" 
     352"    BL      sub_FF2B50D4 \n" 
     353"    LDR     R0, =0xFF18C658 \n" 
     354"    MOV     R1, #0 \n" 
     355"    BL      sub_FF2B581C \n" 
     356 
    343357"loc_FF18D0A8:\n" 
    344                 "LDR    R0, [R4, #8]\n" 
    345                 "CMP    R0, #0\n" 
    346                 "BEQ    loc_FF18D0DC\n" 
    347                 "ADD    R0, SP, #0xC\n" 
    348                 "BL     sub_FF306AA0\n" 
    349                 "LDR    R1, [R4, #0xC]\n" 
    350                 "LDR    R0, [SP, #0xC]\n" 
    351                 "BL     sub_FF05D068\n" 
    352                 "ADD    R0, SP, #0xC\n" 
    353                 "BL     sub_FF306AA0\n" 
    354                 "LDR    R1, [R4, #0xC]\n" 
    355                 "LDR    R0, [SP, #0xC]\n" 
    356                 "BL     sub_FF05D068\n" 
     358"    LDR     R0, [R4, #8] \n" 
     359"    CMP     R0, #0 \n" 
     360"    BEQ     loc_FF18D0DC \n" 
     361"    ADD     R0, SP, #0xC \n" 
     362"    BL      sub_FF306AA0 \n" 
     363"    LDR     R1, [R4, #0xC] \n" 
     364"    LDR     R0, [SP, #0xC] \n" 
     365"    BL      sub_FF05D068 \n" 
     366"    ADD     R0, SP, #0xC \n" 
     367"    BL      sub_FF306AA0 \n" 
     368"    LDR     R1, [R4, #0xC] \n" 
     369"    LDR     R0, [SP, #0xC] \n" 
     370"    BL      sub_FF05D068 \n" 
     371 
    357372"loc_FF18D0DC:\n" 
    358                 "LDR    R0, =0xFF18C610\n" 
    359                 "STR    R7, [R6, #0x44]!\n" 
    360                 "STR    R0, [R6, #0x94]\n" 
    361                 "LDMFD  SP!, {R0-R8,PC}\n" 
    362     ); 
     373"    LDR     R0, =0xFF18C610 \n" 
     374"    STR     R7, [R6, #0x44]! \n" 
     375"    STR     R0, [R6, #0x94] \n" 
     376"    LDMFD   SP!, {R0-R8,PC} \n" 
     377); 
    363378} 
    364379 
    365 void __attribute__((naked,noinline)) sub_FF305594_my(){ 
    366  
     380/*************************************************************/ 
     381//** sub_FF305594_my @ 0xFF305594 - 0xFF305944, length=237 
     382void __attribute__((naked,noinline)) sub_FF305594_my() { 
    367383asm volatile ( 
    368                 "STMFD  SP!, {R0-R12,LR}\n" 
    369                 "MOV    R8, R0\n" 
    370                 "LDR    R0, [R2, #0x10]\n" 
    371                 "LDR    R7, [SP, #0x38]\n" 
    372                 "CMP    R0, #0\n" 
    373                 "LDREQ  R1, =0x32A\n" 
    374                 "LDREQ  R0, =0xFF3041A8\n" 
    375                 "MOV    R5, #0\n" 
    376                 "MOV    R4, R2\n" 
    377                 "MOV    R9, R3\n" 
    378                 "MOV    R6, R5\n" 
    379                 "BLEQ   sub_FF00EC80\n" 
    380                 "LDR    R11, =0xDE88\n" 
    381                 "LDR    R0, [R4]\n" 
    382                 "MOV    R10, #0x1E\n" 
    383                 "STR    R0, [R11, #0xD0]\n" 
    384                 "LDR    R0, [R4, #4]\n" 
    385                 "STR    R0, [R11, #0xD4]\n" 
    386                 "LDR    R0, [R4, #0x10]\n" 
    387                 "STR    R0, [R11, #0xE0]\n" 
    388                 "LDR    R1, [R4, #8]\n" 
    389                 "LDR    R0, =0x7530\n" 
    390                 "CMP    R1, #0xB\n" 
    391                 "ADDCC  PC, PC, R1, LSL #2\n" 
    392                 "B      loc_FF305680\n" 
    393 "loc_FF3055F8:\n" 
    394                 "B      loc_FF305634\n" 
    395 "loc_FF3055FC:\n" 
    396                 "B      loc_FF305624\n" 
    397 "loc_FF305600:\n" 
    398                 "B      loc_FF30565C\n" 
    399 "loc_FF305604:\n" 
    400                 "B      loc_FF305670\n" 
    401 "loc_FF305608:\n" 
    402                 "B      loc_FF305680\n" 
    403 "loc_FF30560C:\n" 
    404                 "B      loc_FF305680\n" 
    405 "loc_FF305610:\n" 
    406                 "B      loc_FF305680\n" 
    407 "loc_FF305614:\n" 
    408                 "B      loc_FF305680\n" 
    409 "loc_FF305618:\n" 
    410                 "B      loc_FF305654\n" 
    411 "loc_FF30561C:\n" 
    412                 "B      loc_FF30564C\n" 
    413 "loc_FF305620:\n" 
    414                 "B      loc_FF30563C\n" 
     384"    STMFD   SP!, {R0-R12,LR} \n" 
     385"    MOV     R8, R0 \n" 
     386"    LDR     R0, [R2, #0x10] \n" 
     387"    LDR     R7, [SP, #0x38] \n" 
     388"    CMP     R0, #0 \n" 
     389"    LDREQ   R1, =0x32A \n" 
     390"    LDREQ   R0, =0xFF3041A8 \n" 
     391"    MOV     R5, #0 \n" 
     392"    MOV     R4, R2 \n" 
     393"    MOV     R9, R3 \n" 
     394"    MOV     R6, R5 \n" 
     395"    BLEQ    _DebugAssert \n" 
     396"    LDR     R11, =0xDE88 \n" 
     397"    LDR     R0, [R4] \n" 
     398"    MOV     R10, #0x1E \n" 
     399"    STR     R0, [R11, #0xD0] \n" 
     400"    LDR     R0, [R4, #4] \n" 
     401"    STR     R0, [R11, #0xD4] \n" 
     402"    LDR     R0, [R4, #0x10] \n" 
     403"    STR     R0, [R11, #0xE0] \n" 
     404"    LDR     R1, [R4, #8] \n" 
     405"    LDR     R0, =0x7530 \n" 
     406"    CMP     R1, #0xB \n" 
     407"    ADDCC   PC, PC, R1, LSL#2 \n" 
     408"    B       loc_FF305680 \n" 
     409"    B       loc_FF305634 \n" 
     410"    B       loc_FF305624 \n" 
     411"    B       loc_FF30565C \n" 
     412"    B       loc_FF305670 \n" 
     413"    B       loc_FF305680 \n" 
     414"    B       loc_FF305680 \n" 
     415"    B       loc_FF305680 \n" 
     416"    B       loc_FF305680 \n" 
     417"    B       loc_FF305654 \n" 
     418"    B       loc_FF30564C \n" 
     419"    B       loc_FF30563C \n" 
     420 
    415421"loc_FF305624:\n" 
    416                 "LDR    R6, =0x5DC0\n" 
    417                 "MOV    R0, #0x18\n" 
    418                 "STR    R6, [R11, #0x12C]\n" 
    419                 "B      loc_FF305668\n" 
     422"    LDR     R6, =0x5DC0 \n" 
     423"    MOV     R0, #0x18 \n" 
     424"    STR     R6, [R11, #0x12C] \n" 
     425"    B       loc_FF305668 \n" 
     426 
    420427"loc_FF305634:\n" 
    421                 "MOV    R6, R0\n" 
    422                 "B      loc_FF305640\n" 
     428"    MOV     R6, R0 \n" 
     429"    B       loc_FF305640 \n" 
     430 
    423431"loc_FF30563C:\n" 
    424                 "LDR    R6, =0x5DC\n" 
     432"    LDR     R6, =0x5DC \n" 
     433 
    425434"loc_FF305640:\n" 
    426                 "STR    R0, [R11, #0x12C]\n" 
    427                 "STR    R10, [R11, #0xD8]\n" 
    428                 "B      loc_FF30568C\n" 
     435"    STR     R0, [R11, #0x12C] \n" 
     436"    STR     R10, [R11, #0xD8] \n" 
     437"    B       loc_FF30568C \n" 
     438 
    429439"loc_FF30564C:\n" 
    430                 "LDR    R6, =0xBB8\n" 
    431                 "B      loc_FF305640\n" 
     440"    LDR     R6, =0xBB8 \n" 
     441"    B       loc_FF305640 \n" 
     442 
    432443"loc_FF305654:\n" 
    433                 "LDR    R6, =0x1770\n" 
    434                 "B      loc_FF305640\n" 
     444"    LDR     R6, =0x1770 \n" 
     445"    B       loc_FF305640 \n" 
     446 
    435447"loc_FF30565C:\n" 
    436 //              "LDR    R6, =0x3A980\n" 
    437                 "LDR    R6, =0xFFFFFFFE\n"           //240fps video time limit  
    438                 "STR    R0, [R11, #0x12C]\n" 
    439                 "MOV    R0, #0xF0\n" 
     448"    LDR     R6, =0x57600000 \n"  // --> Patched. Old value = 0x3A980. 2hrs 240fps 
     449"    STR     R0, [R11, #0x12C] \n" 
     450"    MOV     R0, #0xF0 \n" 
     451 
    440452"loc_FF305668:\n" 
    441                 "STR    R0, [R11, #0xD8]\n" 
    442                 "B      loc_FF30568C\n" 
     453"    STR     R0, [R11, #0xD8] \n" 
     454"    B       loc_FF30568C \n" 
     455 
    443456"loc_FF305670:\n" 
    444                 "STR    R0, [R11, #0x12C]\n" 
    445 //                "LDR    R6, =0x1D4C0\n" 
    446                 "LDR    R6, =0xFFFFFFFE\n"           //120fps video time limit 
    447                 "MOV    R0, #0x78\n" 
    448                 "B      loc_FF305668\n" 
     457"    STR     R0, [R11, #0x12C] \n" 
     458"    LDR     R6, =0x28800000 \n"  // --> Patched. Old value = 0x1D4C0. 2hrs 120fps 
     459"    MOV     R0, #0x78 \n" 
     460"    B       loc_FF305668 \n" 
     461 
    449462"loc_FF305680:\n" 
    450                 "LDR    R1, =0x35B\n" 
    451                 "LDR    R0, =0xFF3041A8\n" 
    452                 "BL     sub_FF00EC80\n" 
     463"    LDR     R1, =0x35B \n" 
     464"    LDR     R0, =0xFF3041A8 \n" 
     465"    BL      _DebugAssert \n" 
     466 
    453467"loc_FF30568C:\n" 
    454                 "LDR    R0, [R11, #0xD8]\n" 
    455 //                "LDR    R1, =0xE0F\n" 
    456                 "LDR    R1, =0xFD20\n"               //240p, 480p video time limit 0xFD20(~18hr) 
    457                 "MOV    R0, R0, LSR #1\n" 
    458                 "STR    R0, [R11, #0xDC]\n" 
    459                 "LDR    R0, [R9]\n" 
    460                 "STR    R0, [R11, #0xE4]\n" 
    461                 "LDRH   R0, [R9, #0x10]\n" 
    462                 "STR    R0, [R11, #0xE8]\n" 
    463                 "LDR    R0, [R9, #4]\n" 
    464                 "STRH   R0, [R11, #2]\n" 
    465                 "LDR    R0, [R9, #8]\n" 
    466                 "STRH   R0, [R11, #4]\n" 
    467                 "LDR    R0, [R9, #0x14]\n" 
    468                 "STR    R0, [R11, #0xEC]\n" 
    469                 "STR    R7, [R11, #0x128]\n" 
    470                 "LDR    R0, [R11, #0xD0]\n" 
    471                 "CMP    R0, #0x140\n" 
    472                 "MOVEQ  R0, #0x20000\n" 
    473                 "MOVEQ  R5, #1\n" 
    474                 "STREQ  R0, [R11, #0xAC]\n" 
    475                 "BEQ    loc_FF305720\n" 
    476                 "CMP    R0, #0x280\n" 
    477                 "LDREQ  R0, =0x7A760\n" 
    478                 "MOVEQ  R5, #2\n" 
    479                 "STREQ  R0, [R11, #0xAC]\n" 
    480                 "BEQ    loc_FF305720\n" 
    481                 "CMP    R0, #0x500\n" 
    482                 "LDREQ  R0, =0x11DA50\n" 
    483 //              "LDR    R1, =0x707\n" 
    484                 "LDR    R1, =0xFFE\n"                   //720p, 1080p video time limit 0xFFE(~68min) 
    485                 "MOVEQ  R5, #4\n" 
    486                 "STREQ  R0, [R11, #0xAC]\n" 
    487                 "BEQ    loc_FF305720\n" 
    488                 "CMP    R0, #0x780\n" 
    489                 "BNE    loc_FF305728\n" 
    490                 "MOV    R0, #0x200000\n" 
    491                 "MOV    R5, #5\n" 
    492                 "STR    R0, [R11, #0xAC]\n" 
     468"    LDR     R0, [R11, #0xD8] \n" 
     469"    LDR     R1, =0x1C20 \n"  // --> Patched. Old value = 0xE0F. 2hrs 
     470"    MOV     R0, R0, LSR#1 \n" 
     471"    STR     R0, [R11, #0xDC] \n" 
     472"    LDR     R0, [R9] \n" 
     473"    STR     R0, [R11, #0xE4] \n" 
     474"    LDRH    R0, [R9, #0x10] \n" 
     475"    STR     R0, [R11, #0xE8] \n" 
     476"    LDR     R0, [R9, #4] \n" 
     477"    STRH    R0, [R11, #2] \n" 
     478"    LDR     R0, [R9, #8] \n" 
     479"    STRH    R0, [R11, #4] \n" 
     480"    LDR     R0, [R9, #0x14] \n" 
     481"    STR     R0, [R11, #0xEC] \n" 
     482"    STR     R7, [R11, #0x128] \n" 
     483"    LDR     R0, [R11, #0xD0] \n" 
     484"    CMP     R0, #0x140 \n" 
     485"    MOVEQ   R0, #0x20000 \n" 
     486"    MOVEQ   R5, #1 \n" 
     487"    STREQ   R0, [R11, #0xAC] \n" 
     488"    BEQ     loc_FF305720 \n" 
     489"    CMP     R0, #0x280 \n" 
     490"    LDREQ   R0, =0x7A760 \n" 
     491"    MOVEQ   R5, #2 \n" 
     492"    STREQ   R0, [R11, #0xAC] \n" 
     493"    BEQ     loc_FF305720 \n" 
     494"    CMP     R0, #0x500 \n" 
     495"    LDREQ   R0, =0x11DA50 \n" 
     496"    LDR     R1, =0x1C20 \n"  // --> Patched. Old value = 0x707. 2hrs 
     497"    MOVEQ   R5, #4 \n" 
     498"    STREQ   R0, [R11, #0xAC] \n" 
     499"    BEQ     loc_FF305720 \n" 
     500"    CMP     R0, #0x780 \n" 
     501"    BNE     loc_FF305728 \n" 
     502//"  MOV     R0, #0x200000 \n" 
     503"    MOV     R0, #2097152 \n" // 10 mins 
     504"    MOV     R5, #5 \n" 
     505"    STR     R0, [R11, #0xAC] \n" 
     506 
    493507"loc_FF305720:\n" 
    494                 "STR    R1, [R11, #0x4C]\n" 
    495                 "B      loc_FF305734\n" 
     508"    STR     R1, [R11, #0x4C] \n" 
     509"    B       loc_FF305734 \n" 
     510 
    496511"loc_FF305728:\n" 
    497                 "LDR    R1, =0x383\n" 
    498                 "LDR    R0, =0xFF3041A8\n" 
    499                 "BL     sub_FF00EC80\n" 
     512"    LDR     R1, =0x383 \n" 
     513"    LDR     R0, =0xFF3041A8 \n" 
     514"    BL      _DebugAssert \n" 
     515 
    500516"loc_FF305734:\n" 
    501                 "LDR    R0, [R11, #0x4C]\n" 
    502                 "LDR    R1, =0x138D\n" 
    503                 "MUL    R0, R6, R0\n" 
    504                 "BL     sub_FF3B61A8\n" 
    505                 "ADD    R0, R0, #1\n" 
    506                 "ADD    R0, R0, R0, LSL #2\n" 
    507                 "STR    R0, [R11, #0x48]\n" 
    508                 "LDR    R7, [R4, #8]\n" 
    509                 "CMP    R7, #2\n" 
    510                 "CMPNE  R7, #3\n" 
    511                 "BNE    loc_FF30578C\n" 
    512                 "RSB    R0, R6, R6, LSL #4\n" 
    513                 "LDR    R1, =0x3E9\n" 
    514                 "MOV    R0, R0, LSL #1\n" 
    515                 "STR    R10, [R11, #0x4C]\n" 
    516                 "BL     sub_FF3B61A8\n" 
    517                 "LDR    R1, [R11, #0xE0]\n" 
    518                 "MOV    R6, R1\n" 
    519                 "BL     sub_FF3B61A8\n" 
    520                 "ADD    R0, R0, #1\n" 
    521                 "MUL    R0, R6, R0\n" 
    522                 "STR    R0, [R11, #0x48]\n" 
     517"    LDR     R0, [R11, #0x4C] \n" 
     518"    LDR     R1, =0x138D \n" 
     519"    MUL     R0, R6, R0 \n" 
     520"    BL      sub_FF3B61A8 \n" 
     521"    ADD     R0, R0, #1 \n" 
     522"    ADD     R0, R0, R0, LSL#2 \n" 
     523"    STR     R0, [R11, #0x48] \n" 
     524"    LDR     R7, [R4, #8] \n" 
     525"    CMP     R7, #2 \n" 
     526"    CMPNE   R7, #3 \n" 
     527"    BNE     loc_FF30578C \n" 
     528"    RSB     R0, R6, R6, LSL#4 \n" 
     529"    LDR     R1, =0x3E9 \n" 
     530"    MOV     R0, R0, LSL#1 \n" 
     531"    STR     R10, [R11, #0x4C] \n" 
     532"    BL      sub_FF3B61A8 \n" 
     533"    LDR     R1, [R11, #0xE0] \n" 
     534"    MOV     R6, R1 \n" 
     535"    BL      sub_FF3B61A8 \n" 
     536"    ADD     R0, R0, #1 \n" 
     537"    MUL     R0, R6, R0 \n" 
     538"    STR     R0, [R11, #0x48] \n" 
     539 
    523540"loc_FF30578C:\n" 
    524                 "LDR    R0, [R4, #0xC]\n" 
    525                 "LDR    R6, [R9, #0xC]\n" 
    526                 "ADDS   R1, R0, #0\n" 
    527                 "MOV    R0, R6, LSR #1\n" 
    528                 "STR    R6, [R11, #0x94]\n" 
    529                 "STR    R0, [R11, #0x98]\n" 
    530                 "ADD    R0, R8, #3\n" 
    531                 "BIC    R0, R0, #3\n" 
    532                 "STR    R0, [R11, #0xF4]\n" 
    533                 "LDR    R2, [R11, #0x48]\n" 
    534                 "MOVNE  R1, #1\n" 
    535                 "MOV    R2, R2, LSL #2\n" 
    536                 "ADD    R3, R0, R2\n" 
    537                 "STR    R3, [R11, #0xF8]\n" 
    538                 "LDRH   R12, [R11, #4]\n" 
    539                 "LDR    R0, [SP, #4]\n" 
    540                 "ADD    R2, R2, R3\n" 
    541                 "CMP    R12, #0\n" 
    542                 "ADD    R0, R0, R8\n" 
    543                 "BEQ    loc_FF305904\n" 
    544                 "STR    R2, [R11, #0xFC]\n" 
    545                 "LDR    R3, [R11, #0x4C]\n" 
    546                 "LDR    R8, =0x11D628\n" 
    547                 "ADD    R2, R2, R3, LSL #3\n" 
    548                 "ADD    R2, R2, #0x1F\n" 
    549                 "BIC    R2, R2, #0x1F\n" 
    550                 "STR    R2, [R11, #0x100]\n" 
    551                 "LDR    R3, [R11, #0xAC]\n" 
    552                 "LDR    R10, =0xE008\n" 
    553                 "ADD    R2, R2, R3\n" 
    554                 "ADD    R3, R2, #0x100000\n" 
    555                 "STR    R2, [R11, #0x78]\n" 
    556                 "SUB    R0, R0, R3\n" 
    557                 "RSB    R2, R6, #0\n" 
    558                 "ADD    R0, R0, R2, LSL #1\n" 
    559                 "MOV    R0, R0, LSR #0xF\n" 
    560                 "MOV    R0, R0, LSL #0xF\n" 
    561                 "STR    R3, [R11, #0x104]\n" 
    562                 "ADD    R7, R3, R0\n" 
    563                 "STR    R0, [R11, #0x110]\n" 
    564                 "STR    R7, [R11, #0x108]\n" 
    565                 "MOV    R2, #0\n" 
    566                 "ADD    R9, R8, #0x10\n" 
    567                 "STR    R7, [R11, #0x10C]\n" 
     541"    LDR     R0, [R4, #0xC] \n" 
     542"    LDR     R6, [R9, #0xC] \n" 
     543"    MOVS    R1, R0 \n" 
     544"    MOV     R0, R6, LSR#1 \n" 
     545"    STR     R6, [R11, #0x94] \n" 
     546"    STR     R0, [R11, #0x98] \n" 
     547"    ADD     R0, R8, #3 \n" 
     548"    BIC     R0, R0, #3 \n" 
     549"    STR     R0, [R11, #0xF4] \n" 
     550"    LDR     R2, [R11, #0x48] \n" 
     551"    MOVNE   R1, #1 \n" 
     552"    MOV     R2, R2, LSL#2 \n" 
     553"    ADD     R3, R0, R2 \n" 
     554"    STR     R3, [R11, #0xF8] \n" 
     555"    LDRH    R12, [R11, #4] \n" 
     556"    LDR     R0, [SP, #4] \n" 
     557"    ADD     R2, R2, R3 \n" 
     558"    CMP     R12, #0 \n" 
     559"    ADD     R0, R0, R8 \n" 
     560"    BEQ     loc_FF305904 \n" 
     561"    STR     R2, [R11, #0xFC] \n" 
     562"    LDR     R3, [R11, #0x4C] \n" 
     563"    LDR     R8, =0x11D628 \n" 
     564"    ADD     R2, R2, R3, LSL#3 \n" 
     565"    ADD     R2, R2, #0x1F \n" 
     566"    BIC     R2, R2, #0x1F \n" 
     567"    STR     R2, [R11, #0x100] \n" 
     568"    LDR     R3, [R11, #0xAC] \n" 
     569"    LDR     R10, =0xE008 \n" 
     570"    ADD     R2, R2, R3 \n" 
     571"    ADD     R3, R2, #0x100000 \n" 
     572"    STR     R2, [R11, #0x78] \n" 
     573"    SUB     R0, R0, R3 \n" 
     574"    RSB     R2, R6, #0 \n" 
     575"    ADD     R0, R0, R2, LSL#1 \n" 
     576"    MOV     R0, R0, LSR#15 \n" 
     577"    MOV     R0, R0, LSL#15 \n" 
     578"    STR     R3, [R11, #0x104] \n" 
     579"    ADD     R7, R3, R0 \n" 
     580"    STR     R0, [R11, #0x110] \n" 
     581"    STR     R7, [R11, #0x108] \n" 
     582"    MOV     R2, #0 \n" 
     583"    ADD     R9, R8, #0x10 \n" 
     584"    STR     R7, [R11, #0x10C] \n" 
     585 
    568586"loc_FF30583C:\n" 
    569                 "MLA    R0, R2, R6, R7\n" 
    570                 "ADD    R12, R8, R2, LSL #3\n" 
    571                 "ADD    R0, R0, #3\n" 
    572                 "BIC    R0, R0, #3\n" 
    573                 "STR    R0, [R10, R2, LSL #2]\n" 
    574                 "MOV    R0, #0\n" 
    575                 "ADD    LR, R9, R2, LSL #3\n" 
     587"    MLA     R0, R2, R6, R7 \n" 
     588"    ADD     R12, R8, R2, LSL#3 \n" 
     589"    ADD     R0, R0, #3 \n" 
     590"    BIC     R0, R0, #3 \n" 
     591"    STR     R0, [R10, R2, LSL#2] \n" 
     592"    MOV     R0, #0 \n" 
     593"    ADD     LR, R9, R2, LSL#3 \n" 
     594 
    576595"loc_FF305858:\n" 
    577                 "STR    R3, [R12, R0, LSL #2]\n" 
    578                 "STR    R3, [LR, R0, LSL #2]\n" 
    579                 "ADD    R0, R0, #1\n" 
    580                 "CMP    R0, #2\n" 
    581                 "BLT    loc_FF305858\n" 
    582                 "ADD    R2, R2, #1\n" 
    583                 "CMP    R2, #2\n" 
    584                 "BLT    loc_FF30583C\n" 
    585                 "LDRH   R3, [R4, #0x14]\n" 
    586                 "LDR    R2, [R4, #8]\n" 
    587                 "MOV    R0, R5\n" 
    588                 "BL     sub_FF0DA84C\n" 
    589                 "LDR    R1, [R11, #0x94]\n" 
    590                 "ADD    R0, R0, R1\n" 
     596"    STR     R3, [R12, R0, LSL#2] \n" 
     597"    STR     R3, [LR, R0, LSL#2] \n" 
     598"    ADD     R0, R0, #1 \n" 
     599"    CMP     R0, #2 \n" 
     600"    BLT     loc_FF305858 \n" 
     601"    ADD     R2, R2, #1 \n" 
     602"    CMP     R2, #2 \n" 
     603"    BLT     loc_FF30583C \n" 
     604"    LDRH    R3, [R4, #0x14] \n" 
     605"    LDR     R2, [R4, #8] \n" 
     606"    MOV     R0, R5 \n" 
     607"    BL      sub_FF0DA84C \n" 
     608"    LDR     R1, [R11, #0x94] \n" 
     609"    ADD     R0, R0, R1 \n" 
     610 
    591611"loc_FF305890:\n" 
    592                 "STR    R0, [R11, #0x8C]\n" 
    593                 "LDMFD  SP!, {R0-R12,PC}\n" 
    594 //                "STRVSBT  R7, [R8], #-0x66D\n" 
    595 //                "ANDEQ  LR, R0, R0, LSR #0x20\n" 
     612"    STR     R0, [R11, #0x8C] \n" 
     613"    LDMFD   SP!, {R0-R12,PC} \n" 
     614"    STRVSBT R7, [R8], #-0x66D \n" 
     615//"  ANDEQ   LR, R0, R0, LSR#0x20 \n" 
     616"    ANDEQ   R0, R0, R2, ASR SP \n" 
     617"    ANDEQ   R0, R0, R11, ASR LR \n" 
     618"    ANDEQ   R2, R0, R0, LSL R7 \n" 
     619"    .long   0xFF305374 \n" 
     620"    LDRPLB  R6, [R6, -SP, ASR#30]! \n" 
     621"    LDRVSB  R6, [R4, #-0x972]! \n" 
     622"    ANDEQ   R0, R0, R0 \n" 
     623 
    596624"loc_FF305904:\n" 
    597                 "ADD    R2, R2, #0x1F\n" 
    598                 "BIC    R2, R2, #0x1F\n" 
    599                 "STR    R2, [R11, #0x100]\n" 
    600                 "LDR    R3, [R11, #0xAC]\n" 
    601                 "ADD    R2, R2, R3\n" 
    602                 "SUB    R0, R0, R2\n" 
    603                 "MOV    R0, R0, LSR #0xF\n" 
    604                 "MOV    R0, R0, LSL #0xF\n" 
    605                 "STR    R2, [R11, #0x104]\n" 
    606                 "STR    R0, [R11, #0x110]\n" 
    607                 "ADD    R0, R0, R2\n" 
    608                 "STR    R0, [R11, #0x108]\n" 
    609                 "LDRH   R3, [R4, #0x14]\n" 
    610                 "MOV    R2, R7\n" 
    611                 "MOV    R0, R5\n" 
    612                 "BL     sub_FF0DA84C\n" 
    613                 "B      loc_FF305890\n" 
    614     ); 
     625"    ADD     R2, R2, #0x1F \n" 
     626"    BIC     R2, R2, #0x1F \n" 
     627"    STR     R2, [R11, #0x100] \n" 
     628"    LDR     R3, [R11, #0xAC] \n" 
     629"    ADD     R2, R2, R3 \n" 
     630"    SUB     R0, R0, R2 \n" 
     631"    MOV     R0, R0, LSR#15 \n" 
     632"    MOV     R0, R0, LSL#15 \n" 
     633"    STR     R2, [R11, #0x104] \n" 
     634"    STR     R0, [R11, #0x110] \n" 
     635"    ADD     R0, R0, R2 \n" 
     636"    STR     R0, [R11, #0x108] \n" 
     637"    LDRH    R3, [R4, #0x14] \n" 
     638"    MOV     R2, R7 \n" 
     639"    MOV     R0, R5 \n" 
     640"    BL      sub_FF0DA84C \n" 
     641"    B       loc_FF305890 \n" 
     642); 
    615643} 
    616  
    617 void __attribute__((naked,noinline)) sub_FF18D218_my(){ 
    618  
    619 asm volatile ( 
    620                 "STMFD  SP!, {R4-R11,LR}\n" 
    621                 "SUB    SP, SP, #0x64\n" 
    622                 "MOV    R9, #0\n" 
    623                 "LDR    R8, =0x85E0\n" 
    624                 "STR    R9, [SP, #0x54]\n" 
    625                 "STR    R9, [SP, #0x4C]\n" 
    626                 "STR    R9, [R8, #0xDC]\n" 
    627                 "STR    R9, [R8, #0xE0]\n" 
    628                 "STR    R9, [R8, #0xE4]\n" 
    629                 "MOV    R4, R0\n" 
    630                 "STR    R9, [R8, #0xE8]\n" 
    631                 "LDR    R0, [R8, #0x44]\n" 
    632                 "MOV    R7, R9\n" 
    633                 "CMP    R0, #3\n" 
    634                 "MOVEQ  R0, #4\n" 
    635                 "STREQ  R0, [R8, #0x44]\n" 
    636                 "LDR    R0, [R8, #0xD8]\n" 
    637                 "MOV    R5, #1\n" 
    638                 "MOV    R6, R9\n" 
    639                 "BLX    R0\n" 
    640                 "LDR    R0, [R8, #0x44]\n" 
    641                 "CMP    R0, #6\n" 
    642                 "BEQ    loc_FF18D288\n" 
    643                 "LDR    R1, [R8, #0xC]\n" 
    644                 "CMP    R1, #2\n" 
    645                 "BNE    loc_FF18D2B0\n" 
    646                 "CMP    R0, #5\n" 
    647                 "BEQ    loc_FF18D2C0\n" 
    648 "loc_FF18D288:\n" 
    649                 "LDR    R2, =0xFF18D0F8\n" 
    650                 "LDR    R1, =0xFF18D158\n" 
    651                 "LDR    R0, =0xFF18D1B8\n" 
    652                 "MOV    R6, #1\n" 
    653                 "ADD    R3, SP, #0x34\n" 
    654                 "BL     sub_FF0463D8\n" 
    655                 "LDR    R0, [R8, #0x44]\n" 
    656                 "CMP    R0, #4\n" 
    657                 "MOVNE  R5, #0\n" 
    658                 "B      loc_FF18D2D0\n" 
    659 "loc_FF18D2B0:\n" 
    660                 "CMP    R0, #4\n" 
    661                 "BEQ    loc_FF18D2D0\n" 
    662                 "CMP    R1, #2\n" 
    663                 "BNE    loc_FF18D2C8\n" 
    664 "loc_FF18D2C0:\n" 
    665                 "MOV    R0, #0\n" 
    666                 "BL     sub_FF0463E4\n" 
    667 "loc_FF18D2C8:\n" 
    668                 "ADD    SP, SP, #0x64\n" 
    669                 "LDMFD  SP!, {R4-R11,PC}\n" 
    670 "loc_FF18D2D0:\n" 
    671                 "LDRH   R0, [R8, #6]\n" 
    672                 "CMP    R0, #3\n" 
    673                 "BNE    loc_FF18D2F0\n" 
    674                 "LDR    R0, [R8, #0x6C]\n" 
    675                 "LDR    R1, [R8, #0xEC]\n" 
    676                 "BL     sub_FF3B61A8\n" 
    677                 "CMP    R1, #0\n" 
    678                 "MOVNE  R5, #0\n" 
    679 "loc_FF18D2F0:\n" 
    680                 "LDR    R0, [R8, #0x44]\n" 
    681                 "CMP    R0, #6\n" 
    682                 "CMPNE  R0, #1\n" 
    683                 "CMPNE  R0, #3\n" 
    684                 "BNE    loc_FF18D334\n" 
    685                 "CMP    R6, #1\n" 
    686                 "CMPEQ  R5, #0\n" 
    687                 "BNE    loc_FF18D334\n" 
    688                 "BL     sub_FF0463DC\n" 
    689                 "LDR    R0, [R8, #0x18]\n" 
    690                 "MOV    R1, #0x3E8\n" 
    691                 "BL     sub_FF02B598\n" 
    692                 "CMP    R0, #9\n" 
    693                 "BNE    loc_FF18D73C\n" 
    694                 "MOV    R0, #0x90000\n" 
    695                 "BL     sub_FF09342C\n" 
    696                 "B      loc_FF18D2C8\n" 
    697 "loc_FF18D334:\n" 
    698                 "CMP    R5, #1\n" 
    699                 "MOV    R10, #1\n" 
    700                 "BNE    loc_FF18D35C\n" 
    701                 "ADD    R3, SP, #0x4C\n" 
    702                 "ADD    R2, SP, #0x50\n" 
    703                 "ADD    R1, SP, #0x54\n" 
    704                 "ADD    R0, SP, #0x58\n" 
    705                 "BL     sub_FF306D4C\n" 
    706                 "MOVS   R9, R0\n" 
    707                 "BNE    loc_FF18D378\n" 
    708 "loc_FF18D35C:\n" 
    709                 "LDR    R0, [R8, #0x34]\n" 
    710                 "CMP    R0, #1\n" 
    711                 "BNE    loc_FF18D4B8\n" 
    712                 "LDR    R0, [R8, #0x6C]\n" 
    713                 "LDR    R1, [R8, #0x48]\n" 
    714                 "CMP    R0, R1\n" 
    715                 "BCC    loc_FF18D4B8\n" 
    716 "loc_FF18D378:\n" 
    717                 "MOV    R0, R9\n" 
    718                 "BL     sub_FF18C6A0\n" 
    719                 "LDR    R0, [R8, #0xC]\n" 
    720                 "CMP    R0, #2\n" 
    721                 "BNE    loc_FF18D3E8\n" 
    722                 "LDR    R0, =0xFF18D0EC\n" 
    723                 "MOV    R1, #0\n" 
    724                 "BL     sub_FF2B6E4C\n" 
    725                 "LDR    R2, [R8, #0x64]\n" 
    726                 "ADD    R3, SP, #0x5C\n" 
    727                 "STRD   R2, [SP, #0x28]\n" 
    728                 "MOV    R2, #0x18\n" 
    729                 "ADD    R1, SP, #0x34\n" 
    730                 "ADD    R0, SP, #0x10\n" 
    731                 "BL     sub_FF3B5E8C\n" 
    732                 "LDR    R1, [R8, #0x84]\n" 
    733                 "LDR    R2, [R8, #0x88]\n" 
    734                 "MOV    R3, #0xFFFFFFFE\n" 
    735                 "ADD    R0, SP, #0x60\n" 
    736                 "STMEA  SP, {R0-R3}\n" 
    737                 "MOV    R3, #0\n" 
    738                 "LDR    R0, =0xC6A54\n" 
    739                 "MOV    R2, R3\n" 
    740                 "MOV    R1, #0x40\n" 
    741                 "BL     sub_FF2B6D98\n" 
    742                 "B      loc_FF18D440\n" 
    743 "loc_FF18D3E0:\n" 
    744                 "MOV    R1, #1\n" 
    745                 "B      loc_FF18D6CC\n" 
    746 "loc_FF18D3E8:\n" 
    747                 "BL     sub_FF18DF94\n" 
    748                 "LDR    R2, [R8, #0x64]\n" 
    749                 "ADD    R3, SP, #0x5C\n" 
    750                 "MOV    R1, #0xFFFFFFFE\n" 
    751                 "MOV    R0, #0\n" 
    752                 "ADD    R5, SP, #0x1C\n" 
    753                 "STMIA  R5, {R0-R3}\n" 
    754                 "LDR    R3, [R4, #0x1C]\n" 
    755                 "LDR    R1, [R8, #0x84]\n" 
    756                 "LDR    R2, [R8, #0x88]\n" 
    757                 "ADD    R0, SP, #0x60\n" 
    758                 "ADD    R4, SP, #0xC\n" 
    759                 "STMIA  R4, {R0-R3}\n" 
    760                 "MOV    R3, #0\n" 
    761                 "MOV    R1, #0x40\n" 
    762                 "STMEA  SP, {R1,R3}\n" 
    763                 "MOV    R2, #0\n" 
    764                 "STR    R3, [SP, #8]\n" 
    765                 "LDR    R3, =0xC6A54\n" 
    766                 "MOV    R1, R2\n" 
    767                 "MOV    R0, R2\n" 
    768                 "BL     sub_FF2B5700\n" 
    769 "loc_FF18D440:\n" 
    770                 "LDR    R0, [R8, #0x18]\n" 
    771                 "LDR    R1, [R8, #0x60]\n" 
    772                 "BL     sub_FF02B598\n" 
    773                 "CMP    R0, #9\n" 
    774                 "BEQ    loc_FF18D3E0\n" 
    775                 "LDR    R0, [SP, #0x5C]\n" 
    776                 "CMP    R0, #0\n" 
    777                 "BEQ    loc_FF18D468\n" 
    778 "loc_FF18D460:\n" 
    779                 "MOV    R1, #1\n" 
    780                 "B      loc_FF18D6E4\n" 
    781 "loc_FF18D468:\n" 
    782                 "LDR    R0, [R8, #0xC]\n" 
    783                 "MOV    R4, #5\n" 
    784                 "CMP    R0, #2\n" 
    785                 "MOV    R0, #1\n" 
    786                 "BNE    loc_FF18D4A4\n" 
    787                 "BL     sub_FF2B6E0C\n" 
    788                 "BL     sub_FF2B6E34\n" 
    789                 "MOV    R0, #0\n" 
    790                 "BL     sub_FF0463E4\n" 
    791                 "BL     sub_FF0463F4\n" 
    792                 "STR    R4, [R8, #0x44]\n" 
    793                 "BL     sub_FF18DF94\n" 
    794                 "BL     sub_FF046450\n" 
    795                 "STR    R10, [R8, #0x44]\n" 
    796                 "B      loc_FF18D4B0\n" 
    797 "loc_FF18D4A4:\n" 
    798                 "BL     sub_FF2B57AC\n" 
    799                 "BL     sub_FF2B57F8\n" 
    800                 "STR    R4, [R8, #0x44]\n" 
    801 "loc_FF18D4B0:\n" 
    802                 "STR    R7, [R8, #0x34]\n" 
    803                 "B      loc_FF18D2C8\n" 
    804 "loc_FF18D4B8:\n" 
    805                 "CMP    R5, #1\n" 
    806                 "BNE    loc_FF18D734\n" 
    807                 "STR    R10, [R8, #0x38]\n" 
    808                 "LDR    R0, [R8, #0x6C]\n" 
    809                 "LDR    R11, [R4, #0xC]\n" 
    810                 "CMP    R0, #0\n" 
    811                 "LDRNE  R9, [SP, #0x58]\n" 
    812                 "LDRNE  R10, [SP, #0x54]\n" 
    813                 "BNE    loc_FF18D604\n" 
    814                 "LDR    R0, [R8, #0xC]\n" 
    815                 "CMP    R0, #2\n" 
    816                 "BNE    loc_FF18D55C\n" 
    817                 "LDR    R0, =0xFF18D0EC\n" 
    818                 "MOV    R1, #0\n" 
    819                 "BL     sub_FF2B6E4C\n" 
    820                 "LDR    R2, [R8, #0x64]\n" 
    821                 "ADD    R3, SP, #0x5C\n" 
    822                 "STRD   R2, [SP, #0x28]\n" 
    823                 "MOV    R2, #0x18\n" 
    824                 "ADD    R1, SP, #0x34\n" 
    825                 "ADD    R0, SP, #0x10\n" 
    826                 "BL     sub_FF3B5E8C\n" 
    827                 "LDR    R1, [R8, #0x84]\n" 
    828                 "LDR    R2, [R8, #0x88]\n" 
    829                 "MOV    R3, #0xFFFFFFFF\n" 
    830                 "ADD    R0, SP, #0x60\n" 
    831                 "STMEA  SP, {R0-R3}\n" 
    832                 "LDR    R0, [SP, #0x58]\n" 
    833                 "LDR    R1, [SP, #0x54]\n" 
    834                 "LDR    R2, [SP, #0x50]\n" 
    835                 "LDR    R3, [SP, #0x4C]\n" 
    836                 "BL     sub_FF2B6D98\n" 
    837                 "LDR    R0, [R8, #0x18]\n" 
    838                 "LDR    R1, [R8, #0x60]\n" 
    839                 "BL     sub_FF02B598\n" 
    840                 "CMP    R0, #9\n" 
    841                 "BEQ    loc_FF18D3E0\n" 
    842                 "LDR    R0, =0xFF18C658\n" 
    843                 "MOV    R1, #0\n" 
    844                 "BL     sub_FF2B6E4C\n" 
    845                 "B      loc_FF18D5C4\n" 
    846 "loc_FF18D55C:\n" 
    847                 "LDR    R0, [R4, #0x20]\n" 
    848                 "LDR    R2, [R8, #0x64]\n" 
    849                 "ADD    R3, SP, #0x5C\n" 
    850                 "MOV    R1, #0xFFFFFFFF\n" 
    851                 "ADD    R9, SP, #0x1C\n" 
    852                 "STMIA  R9, {R0-R3}\n" 
    853                 "LDR    R3, [R4, #0x1C]\n" 
    854                 "LDR    R1, [R8, #0x84]\n" 
    855                 "LDR    R2, [R8, #0x88]\n" 
    856                 "ADD    R0, SP, #0x60\n" 
    857                 "ADD    R9, SP, #0xC\n" 
    858                 "STMIA  R9, {R0-R3}\n" 
    859                 "LDR    R1, [SP, #0x50]\n" 
    860                 "LDR    R2, [SP, #0x54]\n" 
    861                 "LDR    R3, [SP, #0x4C]\n" 
    862                 "STMFA  SP, {R1,R3}\n" 
    863                 "STR    R2, [SP]\n" 
    864                 "LDMIB  R4, {R0,R1}\n" 
    865                 "LDR    R3, [SP, #0x58]\n" 
    866                 "MOV    R2, R11\n" 
    867                 "BL     sub_FF2B5700\n" 
    868                 "LDR    R0, [R8, #0x18]\n" 
    869                 "LDR    R1, [R8, #0x60]\n" 
    870                 "BL     sub_FF02B598\n" 
    871                 "CMP    R0, #9\n" 
    872                 "BEQ    loc_FF18D3E0\n" 
    873 "loc_FF18D5C4:\n" 
    874                 "LDR    R0, [SP, #0x5C]\n" 
    875                 "CMP    R0, #0\n" 
    876                 "BNE    loc_FF18D460\n" 
    877                 "LDR    R0, [R8, #0xC]\n" 
    878                 "CMP    R0, #2\n" 
    879                 "MOV    R0, #1\n" 
    880                 "BNE    loc_FF18D5E8\n" 
    881                 "BL     sub_FF2B6E0C\n" 
    882                 "B      loc_FF18D5EC\n" 
    883 "loc_FF18D5E8:\n" 
    884                 "BL     sub_FF2B57AC\n" 
    885 "loc_FF18D5EC:\n" 
    886                 "STR    R7, [R8, #0xE8]\n" 
    887                 "LDR    R0, [SP, #0x60]\n" 
    888                 "LDR    R1, [SP, #0x58]\n" 
    889                 "ADD    R9, R1, R0\n" 
    890                 "LDR    R1, [SP, #0x54]\n" 
    891                 "SUB    R10, R1, R0\n" 
    892 "loc_FF18D604:\n" 
    893                 "LDR    R0, [R8, #0xC]\n" 
    894                 "LDR    R2, [R8, #0x64]\n" 
    895                 "CMP    R0, #2\n" 
    896                 "ADD    R3, SP, #0x5C\n" 
    897                 "BNE    loc_FF18D65C\n" 
    898                 "STRD   R2, [SP, #0x28]\n" 
    899                 "MOV    R2, #0x18\n" 
    900                 "ADD    R1, SP, #0x34\n" 
    901                 "ADD    R0, SP, #0x10\n" 
    902                 "BL     sub_FF3B5E8C\n" 
    903                 "LDR    R1, [R8, #0x84]\n" 
    904                 "LDR    R2, [R8, #0x88]\n" 
    905                 "LDR    R3, [R8, #0x68]\n" 
    906                 "ADD    R0, SP, #0x60\n" 
    907                 "STMEA  SP, {R0-R3}\n" 
    908                 "LDR    R2, [SP, #0x50]\n" 
    909                 "LDR    R3, [SP, #0x4C]\n" 
    910                 "MOV    R1, R10\n" 
    911                 "MOV    R0, R9\n" 
    912                 "BL     sub_FF2B6D98\n" 
    913                 "BL     sub_FF0463DC\n" 
    914                 "B      loc_FF18D6B4\n" 
    915 "loc_FF18D65C:\n" 
    916                 "LDR    R1, [R8, #0x68]\n" 
    917                 "LDR    R0, [R4, #0x20]\n" 
    918                 "STR    R1, [SP, #0x20]\n" 
    919                 "STR    R0, [SP, #0x1C]\n" 
    920                 "STR    R2, [SP, #0x24]\n" 
    921                 "STR    R3, [SP, #0x28]\n" 
    922                 "LDR    R3, [R4, #0x1C]\n" 
    923                 "LDR    R1, [R8, #0x84]\n" 
    924                 "LDR    R2, [R8, #0x88]\n" 
    925                 "ADD    R0, SP, #0x60\n" 
    926                 "STR    R2, [SP, #0x14]\n" 
    927                 "LDR    R2, [SP, #0x50]\n" 
    928                 "STR    R1, [SP, #0x10]\n" 
    929                 "STR    R3, [SP, #0x18]\n" 
    930                 "LDR    R3, [SP, #0x4C]\n" 
    931                 "STR    R0, [SP, #0xC]\n" 
    932                 "STMFA  SP, {R2,R3}\n" 
    933                 "STR    R10, [SP]\n" 
    934                 "LDMIB  R4, {R0,R1}\n" 
    935                 "MOV    R3, R9\n" 
    936                 "MOV    R2, R11\n" 
    937                 "BL     sub_FF2B5700\n" 
    938 "loc_FF18D6B4:\n" 
    939                 "LDR    R0, [R8, #0x18]\n" 
    940                 "LDR    R1, [R8, #0x60]\n" 
    941                 "BL     sub_FF02B598\n" 
    942                 "CMP    R0, #9\n" 
    943                 "BNE    loc_FF18D6D4\n" 
    944                 "MOV    R1, #0\n" 
    945 "loc_FF18D6CC:\n" 
    946                 "MOV    R0, #0x90000\n" 
    947                 "B      loc_FF18D6E8\n" 
    948 "loc_FF18D6D4:\n" 
    949                 "LDR    R0, [SP, #0x5C]\n" 
    950                 "CMP    R0, #0\n" 
    951                 "BEQ    loc_FF18D6F0\n" 
    952                 "MOV    R1, #0\n" 
    953 "loc_FF18D6E4:\n" 
    954                 "MOV    R0, #0xA0000\n" 
    955 "loc_FF18D6E8:\n" 
    956                 "BL     sub_FF18CA1C\n" 
    957                 "B      loc_FF18D2C8\n" 
    958 "loc_FF18D6F0:\n" 
    959                 "LDR    R0, [R8, #0xC]\n" 
    960                 "CMP    R0, #2\n" 
    961                 "MOV    R0, #0\n" 
    962                 "BNE    loc_FF18D708\n" 
    963                 "BL     sub_FF2B6E0C\n" 
    964                 "B      loc_FF18D70C\n" 
    965 "loc_FF18D708:\n" 
    966                 "BL     sub_FF2B57AC\n" 
    967 "loc_FF18D70C:\n" 
    968                 "LDR    R0, [SP, #0x58]\n" 
    969                 "LDR    R1, [SP, #0x60]\n" 
    970                 "BL     sub_FF306FE0\n" 
    971                 "LDR    R0, [R8, #0x68]\n" 
    972                 "LDR    R3, =0x8668\n" 
    973                 "ADD    R1, R0, #1\n" 
    974                 "STR    R1, [R8, #0x68]\n" 
    975                 "LDR    R0, [SP, #0x60]\n" 
    976                 "SUB    R2, R3, #4\n" 
    977                 "BL     sub_FF30340C\n" 
    978         //PATCH BEGIN 
    979                 "LDR    R0, =0x8664\n" 
    980                 "BL     set_quality\n" 
    981         //PATCH ENDE 
    982 "loc_FF18D734:\n" 
    983                 "CMP    R6, #1\n" 
    984                 "BNE    loc_FF18D748\n" 
    985 "loc_FF18D73C:\n" 
    986                 "BL     sub_FF0463E0\n" 
    987                 "MOV    R0, #1\n" 
    988                 "BL     sub_FF0463E4\n" 
    989 "loc_FF18D748:\n" 
    990                 "CMP    R5, #1\n" 
    991                 "LDRNEH R0, [R8, #6]\n" 
    992                 "CMPNE  R0, #3\n" 
    993                 "BNE    loc_FF18D2C8\n" 
    994                 "LDR    R0, [R8, #0x6C]\n" 
    995                 "ADD    R0, R0, #1\n" 
    996                 "STR    R0, [R8, #0x6C]\n" 
    997                 "LDRH   R1, [R8, #6]\n" 
    998                 "CMP    R1, #3\n" 
    999                 "LDRNE  R1, [R8, #0x54]\n" 
    1000                 "LDREQ  R1, =0x3E9\n" 
    1001                 "MUL    R0, R1, R0\n" 
    1002                 "LDRNE  R1, [R8, #0x50]\n" 
    1003                 "LDREQ  R1, =0x1770\n" 
    1004                 "BL     sub_FF3B61A8\n" 
    1005                 "MOV    R4, R0\n" 
    1006                 "BL     sub_FF307674\n" 
    1007                 "LDR    R0, [R8, #0x8C]\n" 
    1008                 "CMP    R0, R4\n" 
    1009                 "BNE    loc_FF18D7A4\n" 
    1010                 "LDR    R0, [R8, #0x3C]\n" 
    1011                 "CMP    R0, #1\n" 
    1012                 "BNE    loc_FF18D7B8\n" 
    1013 "loc_FF18D7A4:\n" 
    1014                 "LDR    R1, [R8, #0xBC]\n" 
    1015                 "MOV    R0, R4\n" 
    1016                 "BLX    R1\n" 
    1017                 "STR    R4, [R8, #0x8C]\n" 
    1018                 "STR    R7, [R8, #0x3C]\n" 
    1019 "loc_FF18D7B8:\n" 
    1020                 "STR    R7, [R8, #0x38]\n" 
    1021                 "B      loc_FF18D2C8\n" 
    1022     ); 
    1023 } 
    1024  
  • trunk/platform/sx230hs/sub/100c/stubs_auto.S

    r1641 r3111  
    44#include "stubs_asm.h" 
    55 
     6STUB(FF00033C) 
    67STUB(FF000358) 
    78STUB(FF000B28) 
     
    4344STUB(FF024E88) 
    4445STUB(FF025C28) 
     46STUB(FF02750C) 
    4547STUB(FF0282D4) 
    4648STUB(FF028374) 
     
    4951STUB(FF02AEE8) 
    5052STUB(FF02B17C) 
    51 STUB(FF02B598) 
     53STUB(FF02B3C0) 
    5254STUB(FF02B914) 
    5355STUB(FF02BAF4) 
     
    6668STUB(FF02E698) 
    6769STUB(FF0453CC) 
    68 STUB(FF0463D8) 
    69 STUB(FF0463DC) 
    70 STUB(FF0463E0) 
    71 STUB(FF0463E4) 
    72 STUB(FF0463F4) 
    73 STUB(FF046450) 
    7470STUB(FF057D1C) 
    7571STUB(FF057D38) 
    7672STUB(FF05D068) 
     73STUB(FF06A664) 
     74STUB(FF06A6CC) 
     75STUB(FF06C4A8) 
    7776STUB(FF076164) 
    7877STUB(FF0768BC) 
     
    114113STUB(FF08C7C0) 
    115114STUB(FF090CDC) 
    116 STUB(FF09342C) 
    117115STUB(FF096FF8) 
    118116STUB(FF0B24D8) 
     
    171169STUB(FF18BF6C) 
    172170STUB(FF18C258) 
    173 STUB(FF18C6A0) 
    174 STUB(FF18CA1C) 
    175171STUB(FF18CE08) 
    176172STUB(FF18DE6C) 
    177 STUB(FF18DF94) 
    178173STUB(FF1917B4) 
    179174STUB(FF1919C8) 
     
    190185STUB(FF192374) 
    191186STUB(FF192530) 
     187STUB(FF1925A8) 
    192188STUB(FF192678) 
    193189STUB(FF1926A8) 
     
    204200STUB(FF2B0840) 
    205201STUB(FF2B50D4) 
    206 STUB(FF2B5700) 
    207 STUB(FF2B57AC) 
    208 STUB(FF2B57F8) 
    209202STUB(FF2B581C) 
    210203STUB(FF2B6938) 
    211 STUB(FF2B6D98) 
    212 STUB(FF2B6E0C) 
    213 STUB(FF2B6E34) 
    214204STUB(FF2B6E4C) 
    215205STUB(FF2B6E60) 
    216206STUB(FF2B6EF0) 
     207STUB(FF2E4C78) 
     208STUB(FF2E4DB8) 
     209STUB(FF2E4DF0) 
     210STUB(FF2E4E00) 
     211STUB(FF2E520C) 
     212STUB(FF2E52E4) 
    217213STUB(FF3032C0) 
    218 STUB(FF30340C) 
    219214STUB(FF305594) 
    220215STUB(FF3059A0) 
    221216STUB(FF306AA0) 
    222217STUB(FF306C24) 
    223 STUB(FF306D4C) 
    224 STUB(FF306FE0) 
    225 STUB(FF307674) 
    226218STUB(FF30FBDC) 
    227219STUB(FF30FF9C) 
    228220STUB(FF3B5CA4) 
    229 STUB(FF3B5E8C) 
    230221STUB(FF3B5F70) 
    231222STUB(FF3B61A8) 
  • trunk/platform/sx230hs/sub/100c/stubs_entry.S

    r3102 r3111  
    2323// Check of modemap from 'platform/CAMERA/shooting.c': 
    2424// Firmware modemap table found @ff32314c -> ff4954a0 
    25 // Mode 16936 in firmware but not in current modemap 
    26 // Mode 16938 in firmware but not in current modemap 
     25// No problems found with modemap table. 
    2726 
    2827// Values below can be overridden in 'stubs_min.S': 
  • trunk/platform/sx230hs/sub/101a/Makefile

    r1328 r3111  
    11topdir=../../../../ 
    22 
    3 OBJS=boot.o stubs_min.o stubs_auto.o stubs_entry.o lib.o stubs_entry_2.o capt_seq.o movie_rec.o kbd.o 
    4 STUBS_AUTO_DEPS=boot.c capt_seq.c movie_rec.c 
     3OBJS=boot.o stubs_min.o stubs_auto.o stubs_entry.o lib.o stubs_entry_2.o capt_seq.o movie_rec.o kbd.o filewrite.o 
     4STUBS_AUTO_DEPS=boot.c capt_seq.c movie_rec.c filewrite.c 
    55 
    66include  $(topdir)platform/makefile_sub.inc 
  • trunk/platform/sx230hs/sub/101a/boot.c

    r2982 r3111  
    1717extern void task_MovieRecord(); 
    1818extern void task_ExpDrv(); 
     19extern void task_FileWrite(); 
    1920 
    2021void taskHook(context_t **context) { 
     
    2829    if(tcb->entry == (void*)task_MovieRecord)       tcb->entry = (void*)movie_record_task; 
    2930    if(tcb->entry == (void*)task_ExpDrv)            tcb->entry = (void*)exp_drv_task; 
     31    if(tcb->entry == (void*)task_FileWrite)         tcb->entry = (void*)filewritetask; 
    3032} 
    3133 
  • trunk/platform/sx230hs/sub/101a/movie_rec.c

    r1991 r3111  
     1/* 
     2 * movie_rec.c - auto-generated by CHDK code_gen. 
     3 */ 
    14#include "conf.h" 
    25 
     
    47} 
    58 
    6  
    79void  set_quality(int *x){ // -17 highest; +12 lowest 
    8  
    910 if (conf.video_mode) *x=12-((conf.video_quality-1)*(12+17)/(99-1)); 
    1011} 
    1112 
    12 //@sub_FF18D9CC 
    13 void __attribute__((naked,noinline)) movie_record_task(){ 
    14     asm volatile( 
    15 //"sub_FF18D9CC" 
    16         "STMFD  SP!, {R2-R10,LR}\n" 
    17         "LDR    R6, =0xFF18C73C\n" // "nullsub_257\n" 
    18 //PATCH BEGIN 
    19 //      "LDR    R7, =sub_FF18D424\n" 
    20         "LDR    R7, =sub_FF18D424_my\n" 
    21 //PATCH END 
    22         "LDR    R4, =0x85E0\n" 
    23         "LDR    R9, =0x67F\n" 
    24         "LDR    R10, =0x2710\n" 
    25         "MOV    R8, #1\n" 
    26         "MOV    R5, #0\n" 
     13/*************************************************************/ 
     14//** movie_record_task @ 0xFF18D9CC - 0xFF18DB44, length=95 
     15void __attribute__((naked,noinline)) movie_record_task() { 
     16asm volatile ( 
     17"    STMFD   SP!, {R2-R10,LR} \n" 
     18"    LDR     R6, =0xFF18C73C \n" 
     19"    LDR     R7, =0xFF18D424 \n" 
     20"    LDR     R4, =0x85E0 \n" 
     21"    LDR     R9, =0x67F \n" 
     22"    LDR     R10, =0x2710 \n" 
     23"    MOV     R8, #1 \n" 
     24"    MOV     R5, #0 \n" 
     25 
    2726"loc_FF18D9EC:\n" 
    28         "LDR    R0, [R4,#0x24]\n" 
    29         "MOV    R2, #0\n" 
    30         "ADD    R1, SP, #4\n" 
    31         "BL sub_FF02B184\n" 
    32         "LDR    R0, [R4,#0x2C]\n" 
    33         "CMP    R0, #0\n" 
    34         "LDRNE  R0, [R4,#0xC]\n" 
    35         "CMPNE  R0, #2\n" 
    36         "LDRNE  R0, [R4,#0x44]\n" 
    37         "CMPNE  R0, #6\n" 
    38         "BNE    loc_FF18DB28\n" 
    39         "LDR    R0, [SP,#4]\n" 
    40         "LDR    R1, [R0]\n" 
    41         "SUB    R1, R1, #2\n" 
    42         "CMP    R1, #0xD\n" 
    43         "ADDCC  PC, PC, R1,LSL#2\n" 
    44         "B  loc_FF18DB28\n" 
    45 //"loc_FF18DA30:" 
    46         "B  loc_FF18DAC8\n" 
    47 //"loc_FF18DA34:" 
    48         "B  loc_FF18DAEC\n" 
    49 //"loc_FF18DA38:\n" 
    50         "B  loc_FF18DAFC\n" 
    51 //"loc_FF18DA3C:\n" 
    52         "B  loc_FF18DB04\n" 
    53 //"loc_FF18DA40:\n" 
    54         "B  loc_FF18DB0C\n" 
    55 //"loc_FF18DA44:\n" 
    56         "B  loc_FF18DB14\n" 
    57 //"loc_FF18DA48:\n" 
    58         "B  loc_FF18DAD0\n" 
    59 //"loc_FF18DA4C:\n" 
    60         "B  loc_FF18DB1C\n" 
    61 //"loc_FF18DA50:\n" 
    62         "B  loc_FF18DADC\n" 
    63 //"loc_FF18DA54:\n" 
    64         "B  loc_FF18DB28\n" 
    65 //"loc_FF18DA58:\n" 
    66         "B  loc_FF18DB24\n" 
    67 //"loc_FF18DA5C:\n" 
    68         "B  loc_FF18DA94\n" 
    69 //"loc_FF18DA60:\n" 
    70         "B  loc_FF18DA64\n" 
     27"    LDR     R0, [R4, #0x24] \n" 
     28"    MOV     R2, #0 \n" 
     29"    ADD     R1, SP, #4 \n" 
     30"    BL      sub_FF02B184 /*_ReceiveMessageQueue*/ \n" 
     31"    LDR     R0, [R4, #0x2C] \n" 
     32"    CMP     R0, #0 \n" 
     33"    LDRNE   R0, [R4, #0xC] \n" 
     34"    CMPNE   R0, #2 \n" 
     35"    LDRNE   R0, [R4, #0x44] \n" 
     36"    CMPNE   R0, #6 \n" 
     37"    BNE     loc_FF18DB28 \n" 
     38"    LDR     R0, [SP, #4] \n" 
     39"    LDR     R1, [R0] \n" 
     40"    SUB     R1, R1, #2 \n" 
     41"    CMP     R1, #0xD \n" 
     42"    ADDCC   PC, PC, R1, LSL#2 \n" 
     43"    B       loc_FF18DB28 \n" 
     44"    B       loc_FF18DAC8 \n" 
     45"    B       loc_FF18DAEC \n" 
     46"    B       loc_FF18DAFC \n" 
     47"    B       loc_FF18DB04 \n" 
     48"    B       loc_FF18DB0C \n" 
     49"    B       loc_FF18DB14 \n" 
     50"    B       loc_FF18DAD0 \n" 
     51"    B       loc_FF18DB1C \n" 
     52"    B       loc_FF18DADC \n" 
     53"    B       loc_FF18DB28 \n" 
     54"    B       loc_FF18DB24 \n" 
     55"    B       loc_FF18DA94 \n" 
     56"    B       loc_FF18DA64 \n" 
     57 
    7158"loc_FF18DA64:\n" 
    72         "STR    R5, [R4,#0x40]\n" 
    73         "STR    R5, [R4,#0x30]\n" 
    74         "STR    R5, [R4,#0x34]\n" 
    75         "STRH   R5, [R4,#6]\n" 
    76         "STR    R6, [R4,#0xD8]\n" 
    77         "STR    R7, [R4,#0xF0]\n" 
    78         "LDR    R0, [R4,#0xC]\n" 
    79         "ADD    R0, R0, #1\n" 
    80         "STR    R0, [R4,#0xC]\n" 
    81         "MOV    R0, #6\n" 
    82         "STR    R0, [R4,#0x44]\n" 
    83         "B  loc_FF18DAB4\n" 
     59"    STR     R5, [R4, #0x40] \n" 
     60"    STR     R5, [R4, #0x30] \n" 
     61"    STR     R5, [R4, #0x34] \n" 
     62"    STRH    R5, [R4, #6] \n" 
     63"    STR     R6, [R4, #0xD8] \n" 
     64"    STR     R7, [R4, #0xF0] \n" 
     65"    LDR     R0, [R4, #0xC] \n" 
     66"    ADD     R0, R0, #1 \n" 
     67"    STR     R0, [R4, #0xC] \n" 
     68"    MOV     R0, #6 \n" 
     69"    STR     R0, [R4, #0x44] \n" 
     70"    B       loc_FF18DAB4 \n" 
     71 
    8472"loc_FF18DA94:\n" 
    85         "STR    R5, [R4,#0x40]\n" 
    86         "STR    R5, [R4,#0x30]\n" 
    87         "STR    R6, [R4,#0xD8]\n" 
    88         "STR    R7, [R4,#0xF0]\n" 
    89         "LDR    R0, [R4,#0xC]\n" 
    90         "ADD    R0, R0, #1\n" 
    91         "STR    R0, [R4,#0xC]\n" 
    92         "STR    R8, [R4,#0x44]\n" 
     73"    STR     R5, [R4, #0x40] \n" 
     74"    STR     R5, [R4, #0x30] \n" 
     75"    STR     R6, [R4, #0xD8] \n" 
     76"    STR     R7, [R4, #0xF0] \n" 
     77"    LDR     R0, [R4, #0xC] \n" 
     78"    ADD     R0, R0, #1 \n" 
     79"    STR     R0, [R4, #0xC] \n" 
     80"    STR     R8, [R4, #0x44] \n" 
     81 
    9382"loc_FF18DAB4:\n" 
    94         "LDR    R2, =0xFF18BD78\n" 
    95         "LDR    R1, =0xC6A08\n" 
    96         "LDR    R0, =0xFF18BE8C\n" 
    97         "BL sub_FF0453E0\n" 
    98         "B  loc_FF18DB28\n" 
     83"    LDR     R2, =0xFF18BD78 \n" 
     84"    LDR     R1, =0xC6A08 \n" 
     85"    LDR     R0, =0xFF18BE8C \n" 
     86"    BL      sub_FF0453E0 \n" 
     87"    B       loc_FF18DB28 \n" 
     88 
    9989"loc_FF18DAC8:\n" 
    100 //      "BL sub_FF18D008\n" 
    101         "BL     movie_time\n" 
    102 "label_A:\n" 
    103         "B  loc_FF18DB28\n" 
    104 "loc_FF18DAD0:\n" 
    105         "LDR    R1, [R4,#0xF0]\n" 
    106         "BLX    R1\n" 
    107         "B  loc_FF18DB28\n" 
    108 "loc_FF18DADC:\n" 
    109         "LDR    R1, [R0,#0x18]\n" 
    110         "LDR    R0, [R0,#4]\n" 
    111         "BL sub_FF306D7C\n" 
    112         "B  loc_FF18DB28\n" 
    113 "loc_FF18DAEC:\n" 
    114         "LDR    R0, [R4,#0x44]\n" 
    115         "CMP    R0, #5\n" 
    116         "STRNE  R8, [R4,#0x34]\n" 
    117         "B  loc_FF18DB28\n" 
    118 "loc_FF18DAFC:\n" 
    119         "BL sub_FF18C418\n" 
    120         "B  loc_FF18DB28\n" 
    121 "loc_FF18DB04:\n" 
    122         "BL sub_FF18C12C\n" 
    123         "B  loc_FF18DB28\n" 
    124 "loc_FF18DB0C:\n" 
    125         "BL sub_FF18BEE4\n" 
    126         "B  loc_FF18DB28\n" 
    127 "loc_FF18DB14:\n" 
    128         "BL sub_FF18BB0C\n" 
    129         "B  loc_FF18DB28\n" 
    130 "loc_FF18DB1C:\n" 
    131         "BL sub_FF18BA8C\n" 
    132         "B  loc_FF18DB28\n" 
    133 "loc_FF18DB24:\n" 
    134         "BL sub_FF18E078\n" 
    135 "loc_FF18DB28:\n" 
    136         "LDR    R1, [SP,#4]\n" 
    137         "LDR    R3, =0xFF18B7F0 \n" // "\n"""MovieRecorder.c\n"" 
    138         "STR    R5, [R1]\n" 
    139         "STR    R9, [SP]\n" 
    140         "LDR    R0, [R4,#0x28]\n" 
    141         "MOV    R2, R10\n" 
    142         "BL sub_FF02BAFC\n" 
    143         "B  loc_FF18D9EC\n" 
    144 // "End of function sub_FF18D9CC\n" 
    145         ); 
    146 } 
    147  
    148 void __attribute__((naked,noinline)) movie_time(){ 
    149 if( (int)conf.ext_video_time == 1 ) 
     90); 
     91if (conf.ext_video_time == 1) 
    15092{ 
    15193asm volatile ( 
    152                 "BL     sub_FF18D008_my\n" 
    153                 "B      label_A\n" 
    154              ); 
     94"    BL      sub_FF18D008_my \n"  // --> Patched. Old value = 0xFF18D008. 
     95); 
    15596} 
    15697else 
    15798{ 
    15899asm volatile ( 
    159                 "BL     sub_FF18D008\n" 
    160                 "B      label_A\n" 
    161              ); 
     100"    BL      sub_FF18D008 \n" 
     101); 
    162102} 
    163  
     103asm volatile ( 
     104"    B       loc_FF18DB28 \n" 
     105 
     106"loc_FF18DAD0:\n" 
     107"    LDR     R1, [R4, #0xF0] \n" 
     108"    BLX     R1 \n" 
     109//begin patch 
     110"    LDR     R0, =video_compression_rate\n" //added 
     111"    BL      set_quality\n"                 //added 
     112//end patch 
     113"    B       loc_FF18DB28 \n" 
     114 
     115"loc_FF18DADC:\n" 
     116"    LDR     R1, [R0, #0x18] \n" 
     117"    LDR     R0, [R0, #4] \n" 
     118"    BL      sub_FF306D7C \n" 
     119"    B       loc_FF18DB28 \n" 
     120 
     121"loc_FF18DAEC:\n" 
     122"    LDR     R0, [R4, #0x44] \n" 
     123"    CMP     R0, #5 \n" 
     124"    STRNE   R8, [R4, #0x34] \n" 
     125"    B       loc_FF18DB28 \n" 
     126 
     127"loc_FF18DAFC:\n" 
     128"    BL      sub_FF18C418 \n" 
     129"    B       loc_FF18DB28 \n" 
     130 
     131"loc_FF18DB04:\n" 
     132"    BL      sub_FF18C12C \n" 
     133"    B       loc_FF18DB28 \n" 
     134 
     135"loc_FF18DB0C:\n" 
     136"    BL      sub_FF18BEE4 \n" 
     137"    B       loc_FF18DB28 \n" 
     138 
     139"loc_FF18DB14:\n" 
     140"    BL      sub_FF18BB0C \n" 
     141"    B       loc_FF18DB28 \n" 
     142 
     143"loc_FF18DB1C:\n" 
     144"    BL      sub_FF18BA8C \n" 
     145"    B       loc_FF18DB28 \n" 
     146 
     147"loc_FF18DB24:\n" 
     148"    BL      sub_FF18E078 \n" 
     149 
     150"loc_FF18DB28:\n" 
     151"    LDR     R1, [SP, #4] \n" 
     152"    LDR     R3, =0xFF18B7F0 \n" 
     153"    STR     R5, [R1] \n" 
     154"    STR     R9, [SP] \n" 
     155"    LDR     R0, [R4, #0x28] \n" 
     156"    MOV     R2, R10 \n" 
     157"    BL      sub_FF02BAFC /*_PostMessageQueueStrictly*/ \n" 
     158"    B       loc_FF18D9EC \n" 
     159); 
    164160} 
    165161 
    166 void __attribute__((naked,noinline)) sub_FF18D008_my(  ) { 
     162/*************************************************************/ 
     163//** sub_FF18D008_my @ 0xFF18D008 - 0xFF18D2E8, length=185 
     164void __attribute__((naked,noinline)) sub_FF18D008_my() { 
    167165asm volatile ( 
    168         "STMFD  SP!, {R0-R8,LR}\n" 
    169         "LDR    R6, =0x85E0\n" 
    170         "MOV    R0, #0\n" 
    171         "STR    R0, [R6, #0x34]\n" 
    172         "STR    R0, [R6, #0x38]\n" 
    173         "ADD    R0, R6, #0\n" 
    174         "LDR    R0, [R0, #0x5C]\n" 
    175         "LDRH   R1, [R6, #6]\n" 
    176         "MOV    R3, #0x3E8\n" 
    177         "MUL    R0, R3, R0\n" 
    178         "CMP    R1, #0\n" 
    179         "MOV    R2, #1\n" 
    180         "BNE    loc_FF18D04C\n" 
    181         "LDR    R1, [R6, #0x90]\n" 
    182         "CMP    R1, #0\n" 
    183         "BNE    loc_FF18D05C\n" 
    184         "B  loc_FF18D054\n" 
     166"    STMFD   SP!, {R0-R8,LR} \n" 
     167"    LDR     R6, =0x85E0 \n" 
     168"    MOV     R0, #0 \n" 
     169"    STR     R0, [R6, #0x34] \n" 
     170"    STR     R0, [R6, #0x38] \n" 
     171"    MOV     R0, R6 \n" 
     172"    LDR     R0, [R0, #0x5C] \n" 
     173"    LDRH    R1, [R6, #6] \n" 
     174"    MOV     R3, #0x3E8 \n" 
     175"    MUL     R0, R3, R0 \n" 
     176"    CMP     R1, #0 \n" 
     177"    MOV     R2, #1 \n" 
     178"    BNE     loc_FF18D04C \n" 
     179"    LDR     R1, [R6, #0x90] \n" 
     180"    CMP     R1, #0 \n" 
     181"    BNE     loc_FF18D05C \n" 
     182"    B       loc_FF18D054 \n" 
     183 
    185184"loc_FF18D04C:\n" 
    186         "CMP    R1, #3\n" 
    187         "BNE    loc_FF18D05C\n" 
     185"    CMP     R1, #3 \n" 
     186"    BNE     loc_FF18D05C \n" 
     187 
    188188"loc_FF18D054:\n" 
    189         "STR    R2, [R6, #0x48]\n" 
    190         "B  loc_FF18D068\n" 
     189"    STR     R2, [R6, #0x48] \n" 
     190"    B       loc_FF18D068 \n" 
     191 
    191192"loc_FF18D05C:\n" 
    192         "MOV    R1, #0x3E8\n" 
    193         "BL sub_FF3B62E0\n" 
    194         "STR    R0, [R6, #0x48]\n" 
     193"    MOV     R1, #0x3E8 \n" 
     194"    BL      sub_FF3B62E0 \n" 
     195"    STR     R0, [R6, #0x48] \n" 
     196 
    195197"loc_FF18D068:\n" 
    196         "LDR    R4, =0xC6A3C\n" 
    197         "MOV    R7, #2\n" 
    198         "LDR    R0, [R4, #8]\n" 
    199         "CMP    R0, #0\n" 
    200         "BEQ    loc_FF18D0D0\n" 
    201         "LDR    R0, [R6, #0x58]\n" 
    202         "MOV    R1, #4\n" 
    203         "CMP    R0, #0x18\n" 
    204         "BEQ    loc_FF18D264\n" 
    205         "BGT    loc_FF18D0AC\n" 
    206         "CMP    R0, #0xA\n" 
    207         "CMPNE  R0, #0xF\n" 
    208         "STREQ  R7, [R4, #0x14]\n" 
    209         "BEQ    loc_FF18D0D0\n" 
    210         "CMP    R0, #0x14\n" 
    211         "BNE    loc_FF18D0C4\n" 
    212         "B  loc_FF18D264\n" 
     198"    LDR     R4, =0xC6A3C \n" 
     199"    MOV     R7, #2 \n" 
     200"    LDR     R0, [R4, #8] \n" 
     201"    CMP     R0, #0 \n" 
     202"    BEQ     loc_FF18D0D0 \n" 
     203"    LDR     R0, [R6, #0x58] \n" 
     204"    MOV     R1, #4 \n" 
     205"    CMP     R0, #0x18 \n" 
     206"    BEQ     loc_FF18D264 \n" 
     207"    BGT     loc_FF18D0AC \n" 
     208"    CMP     R0, #0xA \n" 
     209"    CMPNE   R0, #0xF \n" 
     210"    STREQ   R7, [R4, #0x14] \n" 
     211"    BEQ     loc_FF18D0D0 \n" 
     212"    CMP     R0, #0x14 \n" 
     213"    BNE     loc_FF18D0C4 \n" 
     214"    B       loc_FF18D264 \n" 
     215 
    213216"loc_FF18D0AC:\n" 
    214         "CMP    R0, #0x1E\n" 
    215         "BEQ    loc_FF18D264\n" 
    216         "CMP    R0, #0x3C\n" 
    217         "MOVEQ  R0, #8\n" 
    218         "STREQ  R0, [R4, #0x14]\n" 
    219         "BEQ    loc_FF18D0D0\n" 
     217"    CMP     R0, #0x1E \n" 
     218"    BEQ     loc_FF18D264 \n" 
     219"    CMP     R0, #0x3C \n" 
     220"    MOVEQ   R0, #8 \n" 
     221"    STREQ   R0, [R4, #0x14] \n" 
     222"    BEQ     loc_FF18D0D0 \n" 
     223 
    220224"loc_FF18D0C4:\n" 
    221         "LDR    R1, =0x777\n" 
    222         "LDR    R0, =0xFF18B7F0\n" 
    223         "BL sub_FF00EC88\n" 
     225"    LDR     R1, =0x777 \n" 
     226"    LDR     R0, =0xFF18B7F0 \n" 
     227"    BL      _DebugAssert \n" 
     228 
    224229"loc_FF18D0D0:\n" 
    225         "LDR    R2, =0x85E2\n" 
    226         "LDR    R0, [R6, #0xB8]\n" 
    227         "MOV    R3, #2\n" 
    228         "MOV    R1, #0xAA\n" 
    229         "BL sub_FF08C388\n" 
    230         "LDR    R2, =0x85E4\n" 
    231         "LDR    R0, [R6, #0xB8]\n" 
    232         "MOV    R3, #2\n" 
    233         "MOV    R1, #0xA9\n" 
    234         "BL sub_FF08C388\n" 
    235         "LDR    R2, =0x8630\n" 
    236         "LDR    R0, [R6, #0xB8]\n" 
    237         "MOV    R3, #4\n" 
    238         "MOV    R1, #0xA2\n" 
    239         "BL sub_FF08C388\n" 
    240         "LDR    R2, =0x8634\n" 
    241         "LDR    R0, [R6, #0xB8]\n" 
    242         "MOV    R3, #4\n" 
    243         "MOV    R1, #0xA3\n" 
    244         "BL sub_FF08C388\n" 
    245         "LDR    R0, [R6, #0x90]\n" 
    246         "CMP    R0, #0\n" 
    247         "LDRNE  R2, =0x86E0\n" 
    248         "MOVNE  R1, #0\n" 
    249         "MOVNE  R0, #0xD\n" 
    250         "BLNE   sub_FF086854\n" 
    251         "LDR    R0, [R6, #0x4C]\n" 
    252         "LDR    R5, =0x86E0\n" 
    253         "LDR    R8, =0xC6A24\n" 
    254         "CMP    R0, #2\n" 
    255         "CMPNE  R0, #3\n" 
    256         "BNE    loc_FF18D1CC\n" 
    257         "LDR    R0, [R6, #0x90]\n" 
    258         "CMP    R0, #0\n" 
    259         "LDRNE  R0, =0x443FC000\n" 
    260         "STRNE  R0, [R5]\n" 
    261         "BNE    loc_FF18D1CC\n" 
    262         "LDR    R0, =0x460B8600\n" 
    263         "LDR    R1, =0x10959E0\n" 
    264         "STR    R0, [R5]\n" 
    265         "STR    R1, [R5, #4]\n" 
    266         "LDMIA  R8, {R1,R2}\n" 
    267         "STR    R0, [R6, #0xA0]\n" 
    268         "MUL    R1, R2, R1\n" 
    269         "MOV    R2, #0\n" 
    270         "MOV    R3, R1, LSL #1\n" 
    271         "ADD    R1, R0, R3\n" 
    272         "STR    R3, [R6, #0x9C]\n" 
    273         "STR    R1, [R6, #0xA4]\n" 
    274         "STMEA  SP, {R1-R3}\n" 
    275         "MOV    R3, R2\n" 
    276         "MOV    R2, #9\n" 
    277         "MOV    R1, #5\n" 
    278         "MOV    R0, #0x10\n" 
    279         "BL sub_FF2B0A24\n" 
    280         "LDR    R1, [R5]\n" 
    281         "LDR    R0, [R6, #0x9C]\n" 
    282         "ADD    R1, R1, R0, LSL #1\n" 
    283         "STR    R1, [R5]\n" 
    284         "LDR    R1, [R5, #4]\n" 
    285         "RSB    R0, R0, #0\n" 
    286         "ADD    R0, R1, R0, LSL #1\n" 
    287         "STR    R0, [R5, #4]\n" 
     230"    LDR     R2, =0x85E2 \n" 
     231"    LDR     R0, [R6, #0xB8] \n" 
     232"    MOV     R3, #2 \n" 
     233"    MOV     R1, #0xAA \n" 
     234"    BL      sub_FF08C388 \n" 
     235"    LDR     R2, =0x85E4 \n" 
     236"    LDR     R0, [R6, #0xB8] \n" 
     237"    MOV     R3, #2 \n" 
     238"    MOV     R1, #0xA9 \n" 
     239"    BL      sub_FF08C388 \n" 
     240"    LDR     R2, =0x8630 \n" 
     241"    LDR     R0, [R6, #0xB8] \n" 
     242"    MOV     R3, #4 \n" 
     243"    MOV     R1, #0xA2 \n" 
     244"    BL      sub_FF08C388 \n" 
     245"    LDR     R2, =0x8634 \n" 
     246"    LDR     R0, [R6, #0xB8] \n" 
     247"    MOV     R3, #4 \n" 
     248"    MOV     R1, #0xA3 \n" 
     249"    BL      sub_FF08C388 \n" 
     250"    LDR     R0, [R6, #0x90] \n" 
     251"    CMP     R0, #0 \n" 
     252"    LDRNE   R2, =0x86E0 \n" 
     253"    MOVNE   R1, #0 \n" 
     254"    MOVNE   R0, #0xD \n" 
     255"    BLNE    sub_FF086854 \n" 
     256"    LDR     R0, [R6, #0x4C] \n" 
     257"    LDR     R5, =0x86E0 \n" 
     258"    LDR     R8, =0xC6A24 \n" 
     259"    CMP     R0, #2 \n" 
     260"    CMPNE   R0, #3 \n" 
     261"    BNE     loc_FF18D1CC \n" 
     262"    LDR     R0, [R6, #0x90] \n" 
     263"    CMP     R0, #0 \n" 
     264"    LDRNE   R0, =0x443FC000 \n" 
     265"    STRNE   R0, [R5] \n" 
     266"    BNE     loc_FF18D1CC \n" 
     267"    LDR     R0, =0x460B8600 \n" 
     268"    LDR     R1, =0x10959E0 \n" 
     269"    STR     R0, [R5] \n" 
     270"    STR     R1, [R5, #4] \n" 
     271"    LDMIA   R8, {R1,R2} \n" 
     272"    STR     R0, [R6, #0xA0] \n" 
     273"    MUL     R1, R2, R1 \n" 
     274"    MOV     R2, #0 \n" 
     275"    MOV     R3, R1, LSL#1 \n" 
     276"    ADD     R1, R0, R3 \n" 
     277"    STR     R3, [R6, #0x9C] \n" 
     278"    STR     R1, [R6, #0xA4] \n" 
     279"    STMEA   SP, {R1-R3} \n" 
     280"    MOV     R3, R2 \n" 
     281"    MOV     R2, #9 \n" 
     282"    MOV     R1, #5 \n" 
     283"    MOV     R0, #0x10 \n" 
     284"    BL      sub_FF2B0A24 \n" 
     285"    LDR     R1, [R5] \n" 
     286"    LDR     R0, [R6, #0x9C] \n" 
     287"    ADD     R1, R1, R0, LSL#1 \n" 
     288"    STR     R1, [R5] \n" 
     289"    LDR     R1, [R5, #4] \n" 
     290"    RSB     R0, R0, #0 \n" 
     291"    ADD     R0, R1, R0, LSL#1 \n" 
     292"    STR     R0, [R5, #4] \n" 
     293 
    288294"loc_FF18D1CC:\n" 
    289         "LDR    R3, =0xFF18CFD4\n" 
    290         "LDMIA  R5, {R0,R1}\n" 
    291         "STR    R3, [SP]\n" 
    292         "LDR    R3, =0xC6A3C\n" 
    293         "SUB    R2, R3, #0x18\n" 
    294         "BL sub_FF3056CC_my\n" 
    295         "LDR    R3, [R6, #0xB8]\n" 
    296         "STR    R3, [SP]\n" 
    297         "LDR    R0, [R6, #0x90]\n" 
    298         "STRD   R2, [R6, #0xF8]\n" 
    299         "BL sub_FF305ADC\n" 
    300         "LDR    R0, [R6, #0x64]\n" 
    301         "LDR    R3, =0x8668\n" 
    302         "AND    R1, R0, #0xFF\n" 
    303         "LDR    R0, [R8]\n" 
    304         "SUB    R2, R3, #4\n" 
    305         "BL sub_FF3033F8\n" 
    306         "LDRH   R0, [R6, #6]\n" 
    307         "CMP    R0, #2\n" 
    308         "LDREQ  R0, =0xFF18CCA8\n" 
    309         "STREQ  R0, [R6, #0xF0]\n" 
    310         "LDR    R0, [R6, #0x90]\n" 
    311         "CMP    R0, #0\n" 
    312         "LDREQ  R1, =0xFF18C8EC\n" 
    313         "STREQ  R1, [R6, #0xF0]\n" 
    314         "LDR    R2, [R6, #0xC]\n" 
    315         "LDR    R1, =0xFF41480C\n" 
    316         "CMP    R2, #2\n" 
    317         "BNE    loc_FF18D26C\n" 
    318         "LDR    R0, [R6, #0x4C]\n" 
    319         "ADD    R0, R1, R0, LSL #3\n" 
    320         "LDR    R1, [R8, #0xC]\n" 
    321         "LDR    R0, [R0, R1, LSL #2]\n" 
    322         "BL sub_FF2B6AC0\n" 
    323         "LDR    R0, =0xFF18C818\n" 
    324         "MOV    R1, #0\n" 
    325         "BL sub_FF2B6FD4\n" 
    326         "B  loc_FF18D2A8\n" 
     295"    LDR     R3, =0xFF18CFD4 \n" 
     296"    LDMIA   R5, {R0,R1} \n" 
     297"    STR     R3, [SP] \n" 
     298"    LDR     R3, =0xC6A3C \n" 
     299"    SUB     R2, R3, #0x18 \n" 
     300"    BL      sub_FF3056CC_my \n"  // --> Patched. Old value = 0xFF3056CC. 
     301"    LDR     R3, [R6, #0xB8] \n" 
     302"    STR     R3, [SP] \n" 
     303"    LDR     R0, [R6, #0x90] \n" 
     304"    LDRD    R2, [R6, #0xF8] \n" 
     305"    BL      sub_FF305ADC \n" 
     306"    LDR     R0, [R6, #0x64] \n" 
     307"    LDR     R3, =0x8668 \n" 
     308"    AND     R1, R0, #0xFF \n" 
     309"    LDR     R0, [R8] \n" 
     310"    SUB     R2, R3, #4 \n" 
     311"    BL      sub_FF3033F8 \n" 
     312"    LDRH    R0, [R6, #6] \n" 
     313"    CMP     R0, #2 \n" 
     314"    LDREQ   R0, =0xFF18CCA8 \n" 
     315"    STREQ   R0, [R6, #0xF0] \n" 
     316"    LDR     R0, [R6, #0x90] \n" 
     317"    CMP     R0, #0 \n" 
     318"    LDREQ   R1, =0xFF18C8EC \n" 
     319"    STREQ   R1, [R6, #0xF0] \n" 
     320"    LDR     R2, [R6, #0xC] \n" 
     321"    LDR     R1, =0xFF41480C \n" 
     322"    CMP     R2, #2 \n" 
     323"    BNE     loc_FF18D26C \n" 
     324"    LDR     R0, [R6, #0x4C] \n" 
     325"    ADD     R0, R1, R0, LSL#3 \n" 
     326"    LDR     R1, [R8, #0xC] \n" 
     327"    LDR     R0, [R0, R1, LSL#2] \n" 
     328"    BL      sub_FF2B6AC0 \n" 
     329"    LDR     R0, =0xFF18C818 \n" 
     330"    MOV     R1, #0 \n" 
     331"    BL      sub_FF2B6FD4 \n" 
     332"    B       loc_FF18D2A8 \n" 
     333 
    327334"loc_FF18D264:\n" 
    328         "STR    R1, [R4, #0x14]\n" 
    329         "B  loc_FF18D0D0\n" 
     335"    STR     R1, [R4, #0x14] \n" 
     336"    B       loc_FF18D0D0 \n" 
     337 
    330338"loc_FF18D26C:\n" 
    331         "CMP    R0, #0\n" 
    332         "BNE    loc_FF18D288\n" 
    333         "LDR    R1, [R6, #0x98]\n" 
    334         "MOV    R0, #5\n" 
    335         "BL sub_FF2B6FE8\n" 
    336         "BL sub_FF2B7078\n" 
    337         "B  loc_FF18D2A8\n" 
     339"    CMP     R0, #0 \n" 
     340"    BNE     loc_FF18D288 \n" 
     341"    LDR     R1, [R6, #0x98] \n" 
     342"    MOV     R0, #5 \n" 
     343"    BL      sub_FF2B6FE8 \n" 
     344"    BL      sub_FF2B7078 \n" 
     345"    B       loc_FF18D2A8 \n" 
     346 
    338347"loc_FF18D288:\n" 
    339         "LDR    R0, [R6, #0x4C]\n" 
    340         "ADD    R0, R1, R0, LSL #3\n" 
    341         "LDR    R1, [R8, #0xC]\n" 
    342         "LDR    R0, [R0, R1, LSL #2]\n" 
    343         "BL sub_FF2B5250\n" 
    344         "LDR    R0, =0xFF18C818\n" 
    345         "MOV    R1, #0\n" 
    346         "BL sub_FF2B599C\n" 
     348"    LDR     R0, [R6, #0x4C] \n" 
     349"    ADD     R0, R1, R0, LSL#3 \n" 
     350"    LDR     R1, [R8, #0xC] \n" 
     351"    LDR     R0, [R0, R1, LSL#2] \n" 
     352"    BL      sub_FF2B5250 \n" 
     353"    LDR     R0, =0xFF18C818 \n" 
     354"    MOV     R1, #0 \n" 
     355"    BL      sub_FF2B599C \n" 
     356 
    347357"loc_FF18D2A8:\n" 
    348         "LDR    R0, [R4, #8]\n" 
    349         "CMP    R0, #0\n" 
    350         "BEQ    loc_FF18D2DC\n" 
    351         "ADD    R0, SP, #0xC\n" 
    352         "BL sub_FF306BF8\n" 
    353         "LDR    R1, [R4, #0xC]\n" 
    354         "LDR    R0, [SP, #0xC]\n" 
    355         "BL sub_FF05D07C\n" 
    356         "ADD    R0, SP, #0xC\n" 
    357         "BL sub_FF306BF8\n" 
    358         "LDR    R1, [R4, #0xC]\n" 
    359         "LDR    R0, [SP, #0xC]\n" 
    360         "BL sub_FF05D07C\n" 
     358"    LDR     R0, [R4, #8] \n" 
     359"    CMP     R0, #0 \n" 
     360"    BEQ     loc_FF18D2DC \n" 
     361"    ADD     R0, SP, #0xC \n" 
     362"    BL      sub_FF306BF8 \n" 
     363"    LDR     R1, [R4, #0xC] \n" 
     364"    LDR     R0, [SP, #0xC] \n" 
     365"    BL      sub_FF05D07C \n" 
     366"    ADD     R0, SP, #0xC \n" 
     367"    BL      sub_FF306BF8 \n" 
     368"    LDR     R1, [R4, #0xC] \n" 
     369"    LDR     R0, [SP, #0xC] \n" 
     370"    BL      sub_FF05D07C \n" 
     371 
    361372"loc_FF18D2DC:\n" 
    362         "LDR    R0, =0xFF18C7D0\n" 
    363         "STR    R7, [R6, #0x44]!\n" 
    364         "STR    R0, [R6, #0x94]\n" 
    365         "LDMFD  SP!, {R0-R8,PC}\n" 
    366     ); 
     373"    LDR     R0, =0xFF18C7D0 \n" 
     374"    STR     R7, [R6, #0x44]! \n" 
     375"    STR     R0, [R6, #0x94] \n" 
     376"    LDMFD   SP!, {R0-R8,PC} \n" 
     377); 
    367378} 
    368379 
    369 void __attribute__((naked,noinline)) sub_FF3056CC_my(  ) { 
     380/*************************************************************/ 
     381//** sub_FF3056CC_my @ 0xFF3056CC - 0xFF305A80, length=238 
     382void __attribute__((naked,noinline)) sub_FF3056CC_my() { 
    370383asm volatile ( 
    371         "STMFD  SP!, {R0-R12,LR}\n" 
    372         "MOV    R9, R0\n" 
    373         "LDR    R0, [R2, #0x10]\n" 
    374         "LDR    R8, [SP, #0x38]\n" 
    375         "CMP    R0, #0\n" 
    376         "LDREQ  R1, =0x32A\n" 
    377         "LDREQ  R0, =0xFF3042E0\n" 
    378         "MOV    R5, #0\n" 
    379         "MOV    R4, R2\n" 
    380         "MOV    R10, R3\n" 
    381         "MOV    R7, R5\n" 
    382         "BLEQ   sub_FF00EC88\n" 
    383         "LDR    R6, =0xDE88\n" 
    384         "LDR    R0, [R4]\n" 
    385         "MOV    R11, #0x1E\n" 
    386         "STR    R0, [R6, #0xD0]\n" 
    387         "LDR    R0, [R4, #4]\n" 
    388         "STR    R0, [R6, #0xD4]\n" 
    389         "LDR    R0, [R4, #0x10]\n" 
    390         "STR    R0, [R6, #0xE0]\n" 
    391         "LDR    R1, [R4, #8]\n" 
    392         "LDR    R0, =0x7530\n" 
    393         "CMP    R1, #0xB\n" 
    394         "ADDCC  PC, PC, R1, LSL #2\n" 
    395         "B  loc_FF3057B8\n" 
    396         "B  loc_FF30576C\n" 
    397         "B  loc_FF30575C\n" 
    398         "B  loc_FF305794\n" 
    399         "B  loc_FF3057A8\n" 
    400         "B  loc_FF3057B8\n" 
    401         "B  loc_FF3057B8\n" 
    402         "B  loc_FF3057B8\n" 
    403         "B  loc_FF3057B8\n" 
    404         "B  loc_FF30578C\n" 
    405         "B  loc_FF305784\n" 
    406         "B  loc_FF305774\n" 
     384"    STMFD   SP!, {R0-R12,LR} \n" 
     385"    MOV     R9, R0 \n" 
     386"    LDR     R0, [R2, #0x10] \n" 
     387"    LDR     R8, [SP, #0x38] \n" 
     388"    CMP     R0, #0 \n" 
     389"    LDREQ   R1, =0x32A \n" 
     390"    LDREQ   R0, =0xFF3042E0 \n" 
     391"    MOV     R5, #0 \n" 
     392"    MOV     R4, R2 \n" 
     393"    MOV     R10, R3 \n" 
     394"    MOV     R7, R5 \n" 
     395"    BLEQ    _DebugAssert \n" 
     396"    LDR     R6, =0xDE88 \n" 
     397"    LDR     R0, [R4] \n" 
     398"    MOV     R11, #0x1E \n" 
     399"    STR     R0, [R6, #0xD0] \n" 
     400"    LDR     R0, [R4, #4] \n" 
     401"    STR     R0, [R6, #0xD4] \n" 
     402"    LDR     R0, [R4, #0x10] \n" 
     403"    STR     R0, [R6, #0xE0] \n" 
     404"    LDR     R1, [R4, #8] \n" 
     405"    LDR     R0, =0x7530 \n" 
     406"    CMP     R1, #0xB \n" 
     407"    ADDCC   PC, PC, R1, LSL#2 \n" 
     408"    B       loc_FF3057B8 \n" 
     409"    B       loc_FF30576C \n" 
     410"    B       loc_FF30575C \n" 
     411"    B       loc_FF305794 \n" 
     412"    B       loc_FF3057A8 \n" 
     413"    B       loc_FF3057B8 \n" 
     414"    B       loc_FF3057B8 \n" 
     415"    B       loc_FF3057B8 \n" 
     416"    B       loc_FF3057B8 \n" 
     417"    B       loc_FF30578C \n" 
     418"    B       loc_FF305784 \n" 
     419"    B       loc_FF305774 \n" 
     420 
    407421"loc_FF30575C:\n" 
    408         "LDR    R7, =0x5DC0\n" 
    409         "MOV    R0, #0x18\n" 
    410         "STR    R7, [R6, #0x12C]\n" 
    411         "B  loc_FF3057A0\n" 
     422"    LDR     R7, =0x5DC0 \n" 
     423"    MOV     R0, #0x18 \n" 
     424"    STR     R7, [R6, #0x12C] \n" 
     425"    B       loc_FF3057A0 \n" 
     426 
    412427"loc_FF30576C:\n" 
    413         "MOV    R7, R0\n" 
    414         "B  loc_FF305778\n" 
     428"    MOV     R7, R0 \n" 
     429"    B       loc_FF305778 \n" 
     430 
    415431"loc_FF305774:\n" 
    416         "LDR    R7, =0x5DC\n" 
     432"    LDR     R7, =0x5DC \n" 
     433 
    417434"loc_FF305778:\n" 
    418         "STR    R0, [R6, #0x12C]\n" 
    419         "STR    R11, [R6, #0xD8]\n" 
    420         "B  loc_FF3057C4\n" 
     435"    STR     R0, [R6, #0x12C] \n" 
     436"    STR     R11, [R6, #0xD8] \n" 
     437"    B       loc_FF3057C4 \n" 
     438 
    421439"loc_FF305784:\n" 
    422         "LDR    R7, =0xBB8\n" 
    423         "B  loc_FF305778\n" 
     440"    LDR     R7, =0xBB8 \n" 
     441"    B       loc_FF305778 \n" 
     442 
    424443"loc_FF30578C:\n" 
    425         "LDR    R7, =0x1770\n" 
    426         "B  loc_FF305778\n" 
     444"    LDR     R7, =0x1770 \n" 
     445"    B       loc_FF305778 \n" 
     446 
    427447"loc_FF305794:\n" 
    428 //              "LDR    R7, =0x3A980\n" 
    429                 "LDR    R7, =0xFFFFFFFE\n"           //240fps video time limit 
    430         "STR    R0, [R6, #0x12C]\n" 
    431         "MOV    R0, #0xF0\n" 
     448"    LDR     R7, =0x57600000 \n"  // --> Patched. Old value = 0x3A980. 2hrs 240fps 
     449"    STR     R0, [R6, #0x12C] \n" 
     450"    MOV     R0, #0xF0 \n" 
     451 
    432452"loc_FF3057A0:\n" 
    433         "STR    R0, [R6, #0xD8]\n" 
    434         "B  loc_FF3057C4\n" 
     453"    STR     R0, [R6, #0xD8] \n" 
     454"    B       loc_FF3057C4 \n" 
     455 
    435456"loc_FF3057A8:\n" 
    436         "STR    R0, [R6, #0x12C]\n" 
    437 //              "LDR    R7, =0x1D4C0\n" 
    438                 "LDR    R7, =0xFFFFFFFE\n"           //120fps video time limit 
    439  
    440         "MOV    R0, #0x78\n" 
    441         "B  loc_FF3057A0\n" 
     457"    STR     R0, [R6, #0x12C] \n" 
     458"    LDR     R7, =0x28800000 \n"  // --> Patched. Old value = 0x1D4C0. 2hrs 120fps 
     459"    MOV     R0, #0x78 \n" 
     460"    B       loc_FF3057A0 \n" 
     461 
    442462"loc_FF3057B8:\n" 
    443         "LDR    R1, =0x35B\n" 
    444         "LDR    R0, =0xFF3042E0\n" 
    445         "BL sub_FF00EC88\n" 
     463"    LDR     R1, =0x35B \n" 
     464"    LDR     R0, =0xFF3042E0 \n" 
     465"    BL      _DebugAssert \n" 
     466 
    446467"loc_FF3057C4:\n" 
    447         "LDR    R0, [R6, #0xD8]\n" 
    448 //              "LDR    R1, =0xE0F\n" 
    449                 "LDR    R1, =0xFD20\n"               //240p, 480p video time limit 0xFD20(~18hr) 
    450  
    451         "MOV    R0, R0, LSR #1\n" 
    452         "STR    R0, [R6, #0xDC]\n" 
    453         "LDR    R0, [R10]\n" 
    454         "STR    R0, [R6, #0xE4]\n" 
    455         "LDRH   R0, [R10, #0x10]\n" 
    456         "STR    R0, [R6, #0xE8]\n" 
    457         "LDR    R0, [R10, #4]\n" 
    458         "STRH   R0, [R6, #2]\n" 
    459         "LDR    R0, [R10, #8]\n" 
    460         "STRH   R0, [R6, #4]\n" 
    461         "LDR    R0, [R10, #0x14]\n" 
    462         "STR    R0, [R6, #0xEC]\n" 
    463         "STR    R8, [R6, #0x128]\n" 
    464         "LDR    R0, [R6, #0xD0]\n" 
    465         "CMP    R0, #0x140\n" 
    466         "MOVEQ  R0, #0x20000\n" 
    467         "MOVEQ  R5, #1\n" 
    468         "STREQ  R0, [R6, #0xAC]\n" 
    469         "BEQ    loc_FF305858\n" 
    470         "CMP    R0, #0x280\n" 
    471         "LDREQ  R0, =0x7A760\n" 
    472         "MOVEQ  R5, #2\n" 
    473         "STREQ  R0, [R6, #0xAC]\n" 
    474         "BEQ    loc_FF305858\n" 
    475         "CMP    R0, #0x500\n" 
    476         "LDREQ  R0, =0x11DA50\n" 
    477 //              "LDR    R1, =0x707\n" 
    478                 "LDR    R1, =0xFFE\n"                   //720p, 1080p video time limit 0xFFE(~68min) 
    479         "MOVEQ  R5, #4\n" 
    480         "STREQ  R0, [R6, #0xAC]\n" 
    481         "BEQ    loc_FF305858\n" 
    482         "CMP    R0, #0x780\n" 
    483         "BNE    loc_FF305860\n" 
    484         "MOV    R0, #0x200000\n" 
    485         "MOV    R5, #5\n" 
    486         "STR    R0, [R6, #0xAC]\n" 
     468"    LDR     R0, [R6, #0xD8] \n" 
     469"    LDR     R1, =0x1C20 \n"  // --> Patched. Old value = 0xE0F. 2hrs 
     470"    MOV     R0, R0, LSR#1 \n" 
     471"    STR     R0, [R6, #0xDC] \n" 
     472"    LDR     R0, [R10] \n" 
     473"    STR     R0, [R6, #0xE4] \n" 
     474"    LDRH    R0, [R10, #0x10] \n" 
     475"    STR     R0, [R6, #0xE8] \n" 
     476"    LDR     R0, [R10, #4] \n" 
     477"    STRH    R0, [R6, #2] \n" 
     478"    LDR     R0, [R10, #8] \n" 
     479"    STRH    R0, [R6, #4] \n" 
     480"    LDR     R0, [R10, #0x14] \n" 
     481"    STR     R0, [R6, #0xEC] \n" 
     482"    STR     R8, [R6, #0x128] \n" 
     483"    LDR     R0, [R6, #0xD0] \n" 
     484"    CMP     R0, #0x140 \n" 
     485"    MOVEQ   R0, #0x20000 \n" 
     486"    MOVEQ   R5, #1 \n" 
     487"    STREQ   R0, [R6, #0xAC] \n" 
     488"    BEQ     loc_FF305858 \n" 
     489"    CMP     R0, #0x280 \n" 
     490"    LDREQ   R0, =0x7A760 \n" 
     491"    MOVEQ   R5, #2 \n" 
     492"    STREQ   R0, [R6, #0xAC] \n" 
     493"    BEQ     loc_FF305858 \n" 
     494"    CMP     R0, #0x500 \n" 
     495"    LDREQ   R0, =0x11DA50 \n" 
     496"    LDR     R1, =0x1C20 \n"  // --> Patched. Old value = 0x707. 2hrs 
     497"    MOVEQ   R5, #4 \n" 
     498"    STREQ   R0, [R6, #0xAC] \n" 
     499"    BEQ     loc_FF305858 \n" 
     500"    CMP     R0, #0x780 \n" 
     501"    BNE     loc_FF305860 \n" 
     502//"  MOV     R0, #0x200000 \n" 
     503"    MOV     R0, #2097152 \n" // 10 mins 
     504"    MOV     R5, #5 \n" 
     505"    STR     R0, [R6, #0xAC] \n" 
     506 
    487507"loc_FF305858:\n" 
    488         "STR    R1, [R6, #0x4C]\n" 
    489         "B  loc_FF30586C\n" 
     508"    STR     R1, [R6, #0x4C] \n" 
     509"    B       loc_FF30586C \n" 
     510 
    490511"loc_FF305860:\n" 
    491         "LDR    R1, =0x383\n" 
    492         "LDR    R0, =0xFF3042E0\n" 
    493         "BL sub_FF00EC88\n" 
     512"    LDR     R1, =0x383 \n" 
     513"    LDR     R0, =0xFF3042E0 \n" 
     514"    BL      _DebugAssert \n" 
     515 
    494516"loc_FF30586C:\n" 
    495         "LDR    R0, [R6, #0x4C]\n" 
    496         "LDR    R1, =0x138D\n" 
    497         "MUL    R0, R7, R0\n" 
    498         "BL sub_FF3B62E0\n" 
    499         "ADD    R0, R0, #1\n" 
    500         "ADD    R0, R0, R0, LSL #2\n" 
    501         "STR    R0, [R6, #0x48]\n" 
    502         "LDR    R8, [R4, #8]\n" 
    503         "CMP    R8, #2\n" 
    504         "CMPNE  R8, #3\n" 
    505         "BNE    loc_FF3058C4\n" 
    506         "RSB    R0, R7, R7, LSL #4\n" 
    507         "LDR    R1, =0x3E9\n" 
    508         "MOV    R0, R0, LSL #1\n" 
    509         "STR    R11, [R6, #0x4C]\n" 
    510         "BL sub_FF3B62E0\n" 
    511         "LDR    R1, [R6, #0xE0]\n" 
    512         "MOV    R7, R1\n" 
    513         "BL sub_FF3B62E0\n" 
    514         "ADD    R0, R0, #1\n" 
    515         "MUL    R0, R7, R0\n" 
    516         "STR    R0, [R6, #0x48]\n" 
     517"    LDR     R0, [R6, #0x4C] \n" 
     518"    LDR     R1, =0x138D \n" 
     519"    MUL     R0, R7, R0 \n" 
     520"    BL      sub_FF3B62E0 \n" 
     521"    ADD     R0, R0, #1 \n" 
     522"    ADD     R0, R0, R0, LSL#2 \n" 
     523"    STR     R0, [R6, #0x48] \n" 
     524"    LDR     R8, [R4, #8] \n" 
     525"    CMP     R8, #2 \n" 
     526"    CMPNE   R8, #3 \n" 
     527"    BNE     loc_FF3058C4 \n" 
     528"    RSB     R0, R7, R7, LSL#4 \n" 
     529"    LDR     R1, =0x3E9 \n" 
     530"    MOV     R0, R0, LSL#1 \n" 
     531"    STR     R11, [R6, #0x4C] \n" 
     532"    BL      sub_FF3B62E0 \n" 
     533"    LDR     R1, [R6, #0xE0] \n" 
     534"    MOV     R7, R1 \n" 
     535"    BL      sub_FF3B62E0 \n" 
     536"    ADD     R0, R0, #1 \n" 
     537"    MUL     R0, R7, R0 \n" 
     538"    STR     R0, [R6, #0x48] \n" 
     539 
    517540"loc_FF3058C4:\n" 
    518         "LDR    R0, [R4, #0xC]\n" 
    519         "LDR    R7, [R10, #0xC]\n" 
    520         "ADDS   R1, R0, #0\n" 
    521         "MOV    R0, R7, LSR #1\n" 
    522         "STR    R7, [R6, #0x94]\n" 
    523         "STR    R0, [R6, #0x98]\n" 
    524         "ADD    R0, R9, #3\n" 
    525         "BIC    R0, R0, #3\n" 
    526         "STR    R0, [R6, #0xF4]\n" 
    527         "LDR    R2, [R6, #0x48]\n" 
    528         "MOVNE  R1, #1\n" 
    529         "MOV    R2, R2, LSL #2\n" 
    530         "ADD    R3, R0, R2\n" 
    531         "STR    R3, [R6, #0xF8]\n" 
    532         "LDRH   R12, [R6, #4]\n" 
    533         "LDR    R0, [SP, #4]\n" 
    534         "ADD    R2, R2, R3\n" 
    535         "CMP    R12, #0\n" 
    536         "ADD    R0, R0, R9\n" 
    537         "BEQ    loc_FF305A3C\n" 
    538         "STR    R2, [R6, #0xFC]\n" 
    539         "LDR    R3, [R6, #0x4C]\n" 
    540         "LDR    R9, =0x11D628\n" 
    541         "ADD    R2, R2, R3, LSL #3\n" 
    542         "ADD    R2, R2, #0x1F\n" 
    543         "BIC    R2, R2, #0x1F\n" 
    544         "STR    R2, [R6, #0x100]\n" 
    545         "LDR    R3, [R6, #0xAC]\n" 
    546         "LDR    R11, =0xE008\n" 
    547         "ADD    R2, R2, R3\n" 
    548         "ADD    R3, R2, #0x100000\n" 
    549         "STR    R2, [R6, #0x78]\n" 
    550         "SUB    R0, R0, R3\n" 
    551         "RSB    R2, R7, #0\n" 
    552         "ADD    R0, R0, R2, LSL #1\n" 
    553         "MOV    R0, R0, LSR #0xF\n" 
    554         "MOV    R0, R0, LSL #0xF\n" 
    555         "STR    R3, [R6, #0x104]\n" 
    556         "ADD    R8, R3, R0\n" 
    557         "STR    R0, [R6, #0x110]\n" 
    558         "STR    R8, [R6, #0x108]\n" 
    559         "MOV    R2, #0\n" 
    560         "ADD    R10, R9, #0x10\n" 
    561         "STR    R8, [R6, #0x10C]\n" 
     541"    LDR     R0, [R4, #0xC] \n" 
     542"    LDR     R7, [R10, #0xC] \n" 
     543"    MOVS    R1, R0 \n" 
     544"    MOV     R0, R7, LSR#1 \n" 
     545"    STR     R7, [R6, #0x94] \n" 
     546"    STR     R0, [R6, #0x98] \n" 
     547"    ADD     R0, R9, #3 \n" 
     548"    BIC     R0, R0, #3 \n" 
     549"    STR     R0, [R6, #0xF4] \n" 
     550"    LDR     R2, [R6, #0x48] \n" 
     551"    MOVNE   R1, #1 \n" 
     552"    MOV     R2, R2, LSL#2 \n" 
     553"    ADD     R3, R0, R2 \n" 
     554"    STR     R3, [R6, #0xF8] \n" 
     555"    LDRH    R12, [R6, #4] \n" 
     556"    LDR     R0, [SP, #4] \n" 
     557"    ADD     R2, R2, R3 \n" 
     558"    CMP     R12, #0 \n" 
     559"    ADD     R0, R0, R9 \n" 
     560"    BEQ     loc_FF305A3C \n" 
     561"    STR     R2, [R6, #0xFC] \n" 
     562"    LDR     R3, [R6, #0x4C] \n" 
     563"    LDR     R9, =0x11D628 \n" 
     564"    ADD     R2, R2, R3, LSL#3 \n" 
     565"    ADD     R2, R2, #0x1F \n" 
     566"    BIC     R2, R2, #0x1F \n" 
     567"    STR     R2, [R6, #0x100] \n" 
     568"    LDR     R3, [R6, #0xAC] \n" 
     569"    LDR     R11, =0xE008 \n" 
     570"    ADD     R2, R2, R3 \n" 
     571"    ADD     R3, R2, #0x100000 \n" 
     572"    STR     R2, [R6, #0x78] \n" 
     573"    SUB     R0, R0, R3 \n" 
     574"    RSB     R2, R7, #0 \n" 
     575"    ADD     R0, R0, R2, LSL#1 \n" 
     576"    MOV     R0, R0, LSR#15 \n" 
     577"    MOV     R0, R0, LSL#15 \n" 
     578"    STR     R3, [R6, #0x104] \n" 
     579"    ADD     R8, R3, R0 \n" 
     580"    STR     R0, [R6, #0x110] \n" 
     581"    STR     R8, [R6, #0x108] \n" 
     582"    MOV     R2, #0 \n" 
     583"    ADD     R10, R9, #0x10 \n" 
     584"    STR     R8, [R6, #0x10C] \n" 
     585 
    562586"loc_FF305974:\n" 
    563         "MLA    R0, R2, R7, R8\n" 
    564         "ADD    R12, R9, R2, LSL #3\n" 
    565         "ADD    R0, R0, #3\n" 
    566         "BIC    R0, R0, #3\n" 
    567         "STR    R0, [R11, R2, LSL #2]\n" 
    568         "MOV    R0, #0\n" 
    569         "ADD    R6, R10, R2, LSL #3\n" 
     587"    MLA     R0, R2, R7, R8 \n" 
     588"    ADD     R12, R9, R2, LSL#3 \n" 
     589"    ADD     R0, R0, #3 \n" 
     590"    BIC     R0, R0, #3 \n" 
     591"    STR     R0, [R11, R2, LSL#2] \n" 
     592"    MOV     R0, #0 \n" 
     593"    ADD     R6, R10, R2, LSL#3 \n" 
     594 
    570595"loc_FF305990:\n" 
    571         "STR    R3, [R12, R0, LSL #2]\n" 
    572         "STR    R3, [R6, R0, LSL #2]\n" 
    573         "ADD    R0, R0, #1\n" 
    574         "CMP    R0, #2\n" 
    575         "BLT    loc_FF305990\n" 
    576         "ADD    R2, R2, #1\n" 
    577         "CMP    R2, #2\n" 
    578         "BLT    loc_FF305974\n" 
    579         "LDRH   R3, [R4, #0x14]\n" 
    580         "LDR    R2, [R4, #8]\n" 
    581         "MOV    R0, R5\n" 
    582         "BL sub_FF0DA840\n" 
    583         "LDR    R1, =0xDE88\n" 
    584         "LDR    R2, [R1, #0x94]\n" 
    585         "ADD    R0, R0, R2\n" 
    586         "STR    R0, [R1, #0x8C]\n" 
    587         "LDMFD  SP!, {R0-R12,PC}\n" 
    588 //      "STRVSBT    R7, [R8], #-0x66D\n" 
    589 //      "ANDEQ  LR, R0, R0, LSR #0x20\n" 
     596"    STR     R3, [R12, R0, LSL#2] \n" 
     597"    STR     R3, [R6, R0, LSL#2] \n" 
     598"    ADD     R0, R0, #1 \n" 
     599"    CMP     R0, #2 \n" 
     600"    BLT     loc_FF305990 \n" 
     601"    ADD     R2, R2, #1 \n" 
     602"    CMP     R2, #2 \n" 
     603"    BLT     loc_FF305974 \n" 
     604"    LDRH    R3, [R4, #0x14] \n" 
     605"    LDR     R2, [R4, #8] \n" 
     606"    MOV     R0, R5 \n" 
     607"    BL      sub_FF0DA840 \n" 
     608"    LDR     R1, =0xDE88 \n" 
     609"    LDR     R2, [R1, #0x94] \n" 
     610"    ADD     R0, R0, R2 \n" 
     611"    STR     R0, [R1, #0x8C] \n" 
     612"    LDMFD   SP!, {R0-R12,PC} \n" 
     613//"  STRVSBT R7, [R8], #-0x66D \n" 
     614//"  ANDEQ   LR, R0, R0, LSR#0x20 \n" 
     615 
    590616"loc_FF305A3C:\n" 
    591         "ADD    R2, R2, #0x1F\n" 
    592         "BIC    R2, R2, #0x1F\n" 
    593         "STR    R2, [R6, #0x100]\n" 
    594         "LDR    R3, [R6, #0xAC]\n" 
    595         "ADD    R2, R2, R3\n" 
    596         "SUB    R0, R0, R2\n" 
    597         "MOV    R0, R0, LSR #0xF\n" 
    598         "MOV    R0, R0, LSL #0xF\n" 
    599         "STR    R2, [R6, #0x104]\n" 
    600         "STR    R0, [R6, #0x110]\n" 
    601         "ADD    R0, R0, R2\n" 
    602         "STR    R0, [R6, #0x108]\n" 
    603         "LDRH   R3, [R4, #0x14]\n" 
    604         "MOV    R2, R8\n" 
    605         "MOV    R0, R5\n" 
    606         "BL sub_FF0DA840\n" 
    607         "STR    R0, [R6, #0x8C]\n" 
    608         "LDMFD   SP!, {R0-R12,PC}\n" 
    609     ); 
     617"    ADD     R2, R2, #0x1F \n" 
     618"    BIC     R2, R2, #0x1F \n" 
     619"    STR     R2, [R6, #0x100] \n" 
     620"    LDR     R3, [R6, #0xAC] \n" 
     621"    ADD     R2, R2, R3 \n" 
     622"    SUB     R0, R0, R2 \n" 
     623"    MOV     R0, R0, LSR#15 \n" 
     624"    MOV     R0, R0, LSL#15 \n" 
     625"    STR     R2, [R6, #0x104] \n" 
     626"    STR     R0, [R6, #0x110] \n" 
     627"    ADD     R0, R0, R2 \n" 
     628"    STR     R0, [R6, #0x108] \n" 
     629"    LDRH    R3, [R4, #0x14] \n" 
     630"    MOV     R2, R8 \n" 
     631"    MOV     R0, R5 \n" 
     632"    BL      sub_FF0DA840 \n" 
     633"    STR     R0, [R6, #0x8C] \n" 
     634"    LDMFD   SP!, {R0-R12,PC} \n" 
     635); 
    610636} 
    611  
    612 void __attribute__((naked,noinline)) sub_FF18D424_my(){ 
    613     asm volatile( 
    614 //"sub_FF18D424             \n" 
    615         "STMFD  SP!, {R4-R11,LR}\n" 
    616         "SUB    SP, SP, #0x64\n" 
    617         "MOV    R9, #0\n" 
    618         "LDR    R8, =0x85E0\n" 
    619         "STR    R9, [SP,#0x54]\n" 
    620         "STR    R9, [SP,#0x4C]\n" 
    621         "STR    R9, [R8,#0xDC]\n" 
    622         "STR    R9, [R8,#0xE0]\n" 
    623         "STR    R9, [R8,#0xE4]\n" 
    624         "MOV    R4, R0\n" 
    625         "STR    R9, [R8,#0xE8]\n" 
    626         "LDR    R0, [R8,#0x44]\n" 
    627         "MOV    R7, R9\n" 
    628         "CMP    R0, #3\n" 
    629         "MOVEQ  R0, #4\n" 
    630         "STREQ  R0, [R8,#0x44]\n" 
    631         "LDR    R0, [R8,#0xD8]\n" 
    632         "MOV    R5, #1\n" 
    633         "MOV    R6, R9\n" 
    634         "BLX    R0\n" 
    635         "LDR    R0, [R8,#0x44]\n" 
    636         "CMP    R0, #6\n" 
    637         "BEQ    loc_FF18D494\n" 
    638         "LDR    R1, [R8,#0xC]\n" 
    639         "CMP    R1, #2\n" 
    640         "BNE    loc_FF18D4BC\n" 
    641         "CMP    R0, #5\n" 
    642         "BEQ    loc_FF18D4CC\n" 
    643 "loc_FF18D494:\n" 
    644         "LDR    R2, =0xFF18D2F8\n" 
    645         "LDR    R1, =0xFF18D35C\n" 
    646         "LDR    R0, =0xFF18D3C0\n" 
    647         "MOV    R6, #1\n" 
    648         "ADD    R3, SP, #0x34\n" 
    649         "BL sub_FF0463EC\n" 
    650         "LDR    R0, [R8,#0x44]\n" 
    651         "CMP    R0, #4\n" 
    652         "MOVNE  R5, #0\n" 
    653         "B  loc_FF18D4DC\n" 
    654 "loc_FF18D4BC:\n" 
    655         "CMP    R0, #4\n" 
    656         "BEQ    loc_FF18D4DC\n" 
    657         "CMP    R1, #2\n" 
    658         "BNE    loc_FF18D4D4\n" 
    659 "loc_FF18D4CC:\n" 
    660         "MOV    R0, #0\n" 
    661         "BL sub_FF0463F8\n" 
    662 "loc_FF18D4D4:\n" 
    663         "ADD    SP, SP, #0x64\n" 
    664         "LDMFD  SP!, {R4-R11,PC}\n" 
    665 "loc_FF18D4DC:\n" 
    666         "LDRH   R0, [R8,#6]\n" 
    667         "CMP    R0, #3\n" 
    668         "BNE    loc_FF18D4FC\n" 
    669         "LDR    R0, [R8,#0x6C]\n" 
    670         "LDR    R1, [R8,#0xEC]\n" 
    671         "BL sub_FF3B62E0\n" 
    672         "CMP    R1, #0\n" 
    673         "MOVNE  R5, #0\n" 
    674 "loc_FF18D4FC:\n" 
    675         "LDR    R0, [R8,#0x44]\n" 
    676         "CMP    R0, #6\n" 
    677         "CMPNE  R0, #1\n" 
    678         "CMPNE  R0, #3\n" 
    679         "BNE    loc_FF18D540\n" 
    680         "CMP    R6, #1\n" 
    681         "CMPEQ  R5, #0\n" 
    682         "BNE    loc_FF18D540\n" 
    683         "BL sub_FF0463F0\n" 
    684         "LDR    R0, [R8,#0x18]\n" 
    685         "MOV    R1, #0x3E8\n" 
    686         "BL sub_FF02B5A0\n" // "TakeSemaphore\n" 
    687         "CMP    R0, #9\n" 
    688         "BNE    loc_FF18D948\n" 
    689         "MOV    R0, #0x90000\n" 
    690         "BL sub_FF093424\n" 
    691         "B  loc_FF18D4D4\n" 
    692 "loc_FF18D540:\n" 
    693         "CMP    R5, #1\n" 
    694         "MOV    R10, #1\n" 
    695         "BNE    loc_FF18D568\n" 
    696         "ADD    R3, SP, #0x4C\n" 
    697         "ADD    R2, SP, #0x50\n" 
    698         "ADD    R1, SP, #0x54\n" 
    699         "ADD    R0, SP, #0x58\n" 
    700         "BL sub_FF306EA4\n" 
    701         "MOVS   R9, R0\n" 
    702         "BNE    loc_FF18D584\n" 
    703 "loc_FF18D568:\n" 
    704         "LDR    R0, [R8,#0x34]\n" 
    705         "CMP    R0, #1\n" 
    706         "BNE    loc_FF18D6C4\n" 
    707         "LDR    R0, [R8,#0x6C]\n" 
    708         "LDR    R1, [R8,#0x48]\n" 
    709         "CMP    R0, R1\n" 
    710         "BCC    loc_FF18D6C4\n" 
    711 "loc_FF18D584:\n" 
    712         "MOV    R0, R9\n" 
    713         "BL sub_FF18C8B0\n" 
    714         "LDR    R0, [R8,#0xC]\n" 
    715         "CMP    R0, #2\n" 
    716         "BNE    loc_FF18D5F4\n" 
    717         "LDR    R0, =0xFF18D2EC\n" 
    718         "MOV    R1, #0\n" 
    719         "BL sub_FF2B6FD4\n" 
    720         "LDR    R2, [R8,#0x64]\n" 
    721         "ADD    R3, SP, #0x5C\n" 
    722         "STRD   R2, [SP,#0x28]\n" 
    723         "MOV    R2, #0x18\n" 
    724         "ADD    R1, SP, #0x34\n" 
    725         "ADD    R0, SP, #0x10\n" 
    726         "BL sub_FF3B5FC4\n" 
    727         "LDR    R1, [R8,#0x84]\n" 
    728         "LDR    R2, [R8,#0x88]\n" 
    729         "MVN    R3, #1\n" 
    730         "ADD    R0, SP, #0x60\n" 
    731         "STMEA  SP, {R0-R3}\n" 
    732         "MOV    R3, #0\n" 
    733         "LDR    R0, =0xC6A54\n" 
    734         "MOV    R2, R3\n" 
    735         "MOV    R1, #0x40\n" 
    736         "BL sub_FF2B6F20\n" 
    737         "B  loc_FF18D64C\n" 
    738 "loc_FF18D5EC:\n" 
    739         "MOV    R1, #1\n" 
    740         "B  loc_FF18D8D8\n      " 
    741 "loc_FF18D5F4:\n" 
    742         "BL     sub_FF18E150\n" 
    743         "LDR    R2, [R8,#0x64]\n" 
    744         "ADD    R3, SP, #0x5C\n" 
    745         "MVN    R1, #1\n" 
    746         "MOV    R0, #0\n" 
    747         "ADD    R5, SP, #0x1C\n" 
    748         "STMIA  R5, {R0-R3}\n" 
    749         "LDR    R3, [R4,#0x1C]\n" 
    750         "LDR    R1, [R8,#0x84]\n" 
    751         "LDR    R2, [R8,#0x88]\n" 
    752         "ADD    R0, SP, #0x60\n" 
    753         "ADD    R4, SP, #0xC\n" 
    754         "STMIA  R4, {R0-R3}\n" 
    755         "MOV    R3, #0\n" 
    756         "MOV    R1, #0x40\n" 
    757         "STMEA  SP, {R1,R3}\n" 
    758         "MOV    R2, #0\n" 
    759         "STR    R3, [SP,#8]\n" 
    760         "LDR    R3, =0xC6A54\n" 
    761         "MOV    R1, R2\n" 
    762         "MOV    R0, R2\n" 
    763         "BL sub_FF2B587C\n" 
    764 "loc_FF18D64C:\n" 
    765         "LDR    R0, [R8,#0x18]\n" 
    766         "LDR    R1, [R8,#0x60]\n" 
    767         "BL sub_FF02B5A0\n"// "TakeSemaphore\n" 
    768         "CMP    R0, #9\n" 
    769         "BEQ    loc_FF18D5EC\n" 
    770         "LDR    R0, [SP,#0x5C]\n" 
    771         "CMP    R0, #0\n" 
    772         "BEQ    loc_FF18D674\n" 
    773 "loc_FF18D66C:\n" 
    774         "MOV    R1, #1\n" 
    775         "B  loc_FF18D8F0\n" 
    776 "loc_FF18D674:\n" 
    777         "LDR    R0, [R8,#0xC]\n" 
    778         "MOV    R4, #5\n" 
    779         "CMP    R0, #2\n" 
    780         "MOV    R0, #1\n" 
    781         "BNE    loc_FF18D6B0\n" 
    782         "BL sub_FF2B6F94\n" 
    783         "BL sub_FF2B6FBC\n" 
    784         "MOV    R0, #0\n" 
    785         "BL sub_FF0463F8\n" 
    786         "BL sub_FF046408\n" 
    787         "STR    R4, [R8,#0x44]\n" 
    788         "BL     sub_FF18E150\n      " 
    789         "BL sub_FF046464\n" 
    790         "STR    R10, [R8,#0x44]\n" 
    791         "B  loc_FF18D6BC\n" 
    792 "loc_FF18D6B0:\n" 
    793         "BL sub_FF2B592C\n" 
    794         "BL sub_FF2B5978\n" 
    795         "STR    R4, [R8,#0x44]\n" 
    796 "loc_FF18D6BC:\n" 
    797         "STR    R7, [R8,#0x34]\n" 
    798         "B  loc_FF18D4D4\n" 
    799 "loc_FF18D6C4:\n" 
    800         "CMP    R5, #1\n" 
    801         "BNE    loc_FF18D940\n" 
    802         "STR    R10, [R8,#0x38]\n" 
    803         "LDR    R0, [R8,#0x6C]\n" 
    804         "LDR    R11, [R4,#0xC]\n" 
    805         "CMP    R0, #0\n" 
    806         "LDRNE  R9, [SP,#0x58]\n" 
    807         "LDRNE  R10, [SP,#0x54]\n" 
    808         "BNE    loc_FF18D810\n" 
    809         "LDR    R0, [R8,#0xC]\n" 
    810         "CMP    R0, #2\n" 
    811         "BNE    loc_FF18D768\n" 
    812         "LDR    R0, =0xFF18D2EC\n" 
    813         "MOV    R1, #0\n" 
    814         "BL sub_FF2B6FD4\n" 
    815         "LDR    R2, [R8,#0x64]\n" 
    816         "ADD    R3, SP, #0x5C\n" 
    817         "STRD   R2, [SP,#0x28]\n" 
    818         "MOV    R2, #0x18\n" 
    819         "ADD    R1, SP, #0x34\n" 
    820         "ADD    R0, SP, #0x10\n" 
    821         "BL sub_FF3B5FC4\n" 
    822         "LDR    R1, [R8,#0x84]\n" 
    823         "LDR    R2, [R8,#0x88]\n" 
    824         "MVN     R3, #0\n" 
    825         "ADD    R0, SP, #0x60\n" 
    826         "STMEA  SP, {R0-R3}\n" 
    827         "LDR    R0, [SP,#0x58]\n" 
    828         "LDR    R1, [SP,#0x54]\n" 
    829         "LDR    R2, [SP,#0x50]\n" 
    830         "LDR    R3, [SP,#0x4C]\n" 
    831         "BL     sub_FF2B6F20\n" 
    832         "LDR    R0, [R8,#0x18]\n" 
    833         "LDR    R1, [R8,#0x60]\n" 
    834         "BL         sub_FF02B5A0    \n"// "TakeSemaphore\n" 
    835         "CMP    R0, #9\n" 
    836         "BEQ    loc_FF18D5EC\n" 
    837         "LDR    R0, =0xFF18C818\n" 
    838         "MOV    R1, #0\n" 
    839         "BL sub_FF2B6FD4\n" 
    840         "B  loc_FF18D7D0\n" 
    841 "loc_FF18D768:\n" 
    842         "LDR    R0, [R4,#0x20]\n" 
    843         "LDR    R2, [R8,#0x64]\n" 
    844         "ADD    R3, SP, #0x5C\n" 
    845         "MVN    R1, #0\n" 
    846         "ADD    R9, SP, #0x1C\n" 
    847         "STMIA  R9, {R0-R3}\n" 
    848         "LDR    R3, [R4,#0x1C]\n" 
    849         "LDR    R1, [R8,#0x84]\n" 
    850         "LDR    R2, [R8,#0x88]\n" 
    851         "ADD    R0, SP, #0x60\n" 
    852         "ADD    R9, SP, #0xC\n" 
    853         "STMIA  R9, {R0-R3}\n" 
    854         "LDR    R1, [SP,#0x50]\n" 
    855         "LDR    R2, [SP,#0x54]\n" 
    856         "LDR    R3, [SP,#0x4C]\n" 
    857         "STMFA  SP, {R1,R3}\n" 
    858         "STR    R2, [SP]\n" 
    859         "LDMIB  R4, {R0,R1}\n" 
    860         "LDR    R3, [SP,#0x58]\n" 
    861         "MOV    R2, R11\n" 
    862         "BL sub_FF2B587C\n" 
    863         "LDR    R0, [R8,#0x18]\n" 
    864         "LDR    R1, [R8,#0x60]\n" 
    865         "BL sub_FF02B5A0    \n"// "TakeSemaphore\n" 
    866         "CMP    R0, #9\n" 
    867         "BEQ    loc_FF18D5EC\n" 
    868 "loc_FF18D7D0:\n" 
    869         "LDR    R0, [SP,#0x5C]\n" 
    870         "CMP    R0, #0\n" 
    871         "BNE    loc_FF18D66C\n" 
    872         "LDR    R0, [R8,#0xC]\n" 
    873         "CMP    R0, #2\n" 
    874         "MOV    R0, #1\n" 
    875         "BNE    loc_FF18D7F4\n" 
    876         "BL sub_FF2B6F94\n" 
    877         "B  loc_FF18D7F8\n" 
    878 "loc_FF18D7F4:\n" 
    879         "BL sub_FF2B592C\n" 
    880 "loc_FF18D7F8:\n" 
    881         "STR    R7, [R8,#0xE8]\n" 
    882         "LDR    R0, [SP,#0x60]\n" 
    883         "LDR    R1, [SP,#0x58]\n" 
    884         "ADD    R9, R1, R0\n" 
    885         "LDR    R1, [SP,#0x54]\n" 
    886         "SUB    R10, R1, R0\n" 
    887 "loc_FF18D810:\n" 
    888         "LDR    R0, [R8,#0xC]\n" 
    889         "LDR    R2, [R8,#0x64]\n" 
    890         "CMP    R0, #2\n" 
    891         "ADD    R3, SP, #0x5C\n" 
    892         "BNE    loc_FF18D868\n" 
    893         "STRD   R2, [SP,#0x28]\n" 
    894         "MOV    R2, #0x18\n" 
    895         "ADD    R1, SP, #0x34\n" 
    896         "ADD    R0, SP, #0x10\n" 
    897         "BL sub_FF3B5FC4\n" 
    898         "LDR    R1, [R8,#0x84]\n" 
    899         "LDR    R2, [R8,#0x88]\n" 
    900         "LDR    R3, [R8,#0x68]\n" 
    901         "ADD    R0, SP, #0x60\n" 
    902         "STMEA  SP, {R0-R3}\n" 
    903         "LDR    R2, [SP,#0x50]\n" 
    904         "LDR    R3, [SP,#0x4C]\n" 
    905         "MOV    R1, R10\n" 
    906         "MOV    R0, R9\n" 
    907         "BL sub_FF2B6F20\n" 
    908         "BL sub_FF0463F0\n" 
    909         "B  loc_FF18D8C0\n" 
    910 "loc_FF18D868:\n" 
    911         "LDR    R1, [R8,#0x68]\n" 
    912         "LDR    R0, [R4,#0x20]\n" 
    913         "STR    R1, [SP,#0x20]\n" 
    914         "STR    R0, [SP,#0x1C]\n" 
    915         "STR    R2, [SP,#0x24]\n" 
    916         "STR    R3, [SP,#0x28]\n" 
    917         "LDR    R3, [R4,#0x1C]\n" 
    918         "LDR    R1, [R8,#0x84]\n" 
    919         "LDR    R2, [R8,#0x88]\n" 
    920         "ADD    R0, SP, #0x60\n" 
    921         "STR    R2, [SP,#0x14]\n" 
    922         "LDR    R2, [SP,#0x50]\n" 
    923         "STR    R1, [SP,#0x10]\n" 
    924         "STR    R3, [SP,#0x18]\n" 
    925         "LDR    R3, [SP,#0x4C]\n" 
    926         "STR    R0, [SP,#0xC]\n" 
    927         "STMFA  SP, {R2,R3}\n" 
    928         "STR    R10, [SP]\n" 
    929         "LDMIB  R4, {R0,R1}\n" 
    930         "MOV    R3, R9\n" 
    931         "MOV    R2, R11\n" 
    932         "BL sub_FF2B587C\n" 
    933 "loc_FF18D8C0:\n" 
    934         "LDR    R0, [R8,#0x18]\n" 
    935         "LDR    R1, [R8,#0x60]\n" 
    936         "BL     sub_FF02B5A0    \n"// "TakeSemaphore\n" 
    937         "CMP    R0, #9\n" 
    938         "BNE    loc_FF18D8E0\n" 
    939         "MOV    R1, #0\n" 
    940 "loc_FF18D8D8:\n" 
    941         "MOV    R0, #0x90000\n" 
    942         "B  loc_FF18D8F4\n" 
    943 "loc_FF18D8E0:\n" 
    944         "LDR    R0, [SP,#0x5C]\n" 
    945         "CMP    R0, #0\n" 
    946         "BEQ    loc_FF18D8FC\n" 
    947         "MOV    R1, #0\n" 
    948 "loc_FF18D8F0:\n" 
    949         "MOV    R0, #0xA0000\n" 
    950 "loc_FF18D8F4:\n" 
    951         "BL sub_FF18CC2C\n" 
    952         "B  loc_FF18D4D4\n" 
    953 "loc_FF18D8FC:\n" 
    954         "LDR    R0, [R8,#0xC]\n" 
    955         "CMP    R0, #2\n" 
    956         "MOV    R0, #0\n" 
    957         "BNE    loc_FF18D914\n" 
    958         "BL sub_FF2B6F94\n" 
    959         "B  loc_FF18D918\n" 
    960 "loc_FF18D914:\n" 
    961         "BL sub_FF2B592C\n" 
    962 "loc_FF18D918:\n" 
    963         "LDR    R0, [SP,#0x58]\n" 
    964         "LDR    R1, [SP,#0x60]\n" 
    965         "BL sub_FF307138\n" 
    966         "LDR    R0, [R8,#0x68]\n" 
    967         "LDR    R3, =0x8668 \n      "//0x8668 - 0x4 
    968         "ADD    R1, R0, #1\n" 
    969         "STR    R1, [R8,#0x68]\n" 
    970         "LDR    R0, [SP,#0x60]\n" 
    971         "SUB    R2, R3, #4\n" 
    972         "BL sub_FF303544\n" 
    973 //PATCH BEGIN 
    974         "LDR    R0, =0x8664\n" 
    975         "BL     set_quality\n" 
    976 //PATCH END 
    977 "   LDR R0, =0x8664 \n" 
    978 "   BL  set_quality \n" 
    979 "loc_FF18D940:\n" 
    980         "CMP    R6, #1\n" 
    981         "BNE    loc_FF18D954\n" 
    982 "loc_FF18D948:\n" 
    983         "BL sub_FF0463F4\n" 
    984         "MOV    R0, #1\n" 
    985         "BL sub_FF0463F8\n" 
    986 "loc_FF18D954:\n" 
    987         "CMP    R5, #1\n" 
    988         "LDRNEH R0, [R8,#6]\n" 
    989         "CMPNE  R0, #3\n" 
    990         "BNE    loc_FF18D4D4\n" 
    991         "LDR    R0, [R8,#0x6C]\n" 
    992         "ADD    R0, R0, #1\n" 
    993         "STR    R0, [R8,#0x6C]\n" 
    994         "LDRH   R1, [R8,#6]\n" 
    995         "CMP    R1, #3\n" 
    996         "LDRNE  R1, [R8,#0x54]\n" 
    997         "LDREQ  R1, =0x3E9\n" 
    998         "MUL    R0, R1, R0\n" 
    999         "LDRNE  R1, [R8,#0x50]\n" 
    1000         "LDREQ  R1, =0x1770\n" 
    1001         "BL     sub_FF3B62E0\n" 
    1002         "MOV    R4, R0\n" 
    1003         "BL     sub_FF3077CC\n" 
    1004         "LDR    R0, [R8,#0x8C]\n" 
    1005         "CMP    R0, R4\n" 
    1006         "BNE    loc_FF18D9B0\n" 
    1007         "LDR    R0, [R8,#0x3C]\n" 
    1008         "CMP    R0, #1\n" 
    1009         "BNE    loc_FF18D9C4\n" 
    1010 "loc_FF18D9B0:\n" 
    1011         "LDR    R1, [R8,#0xBC]\n" 
    1012         "MOV    R0, R4\n" 
    1013         "BLX    R1\n" 
    1014         "STR    R4, [R8,#0x8C]\n" 
    1015         "STR    R7, [R8,#0x3C]\n" 
    1016 "loc_FF18D9C4:\n" 
    1017         "STR    R7, [R8,#0x38]\n" 
    1018         "B  loc_FF18D4D4\n" 
    1019 // "End of function sub_FF18D424\n" 
    1020     ); 
    1021 } 
  • trunk/platform/sx230hs/sub/101a/stubs_auto.S

    r1675 r3111  
    44#include "stubs_asm.h" 
    55 
     6STUB(FF00033C) 
    67STUB(FF000358) 
    78STUB(FF000B28) 
     
    4445STUB(FF024E90) 
    4546STUB(FF025C30) 
     47STUB(FF027568) 
    4648STUB(FF0282DC) 
    4749STUB(FF02837C) 
     
    5052STUB(FF02AEF0) 
    5153STUB(FF02B184) 
    52 STUB(FF02B5A0) 
     54STUB(FF02B3C8) 
    5355STUB(FF02B74C) 
    5456STUB(FF02B91C) 
     
    6971STUB(FF02E6A0) 
    7072STUB(FF0453E0) 
    71 STUB(FF0463EC) 
    72 STUB(FF0463F0) 
    73 STUB(FF0463F4) 
    74 STUB(FF0463F8) 
    75 STUB(FF046408) 
    76 STUB(FF046464) 
    7773STUB(FF057D30) 
    7874STUB(FF057D4C) 
    7975STUB(FF05D07C) 
     76STUB(FF06A680) 
     77STUB(FF06A6E8) 
     78STUB(FF06C558) 
    8079STUB(FF07618C) 
    8180STUB(FF0768E4) 
     
    117116STUB(FF08C7B8) 
    118117STUB(FF090CD4) 
    119 STUB(FF093424) 
    120118STUB(FF0B24D0) 
    121119STUB(FF0B2760) 
     
    173171STUB(FF18C12C) 
    174172STUB(FF18C418) 
    175 STUB(FF18C8B0) 
    176 STUB(FF18CC2C) 
    177173STUB(FF18D008) 
    178174STUB(FF18E078) 
    179 STUB(FF18E150) 
    180175STUB(FF191970) 
    181176STUB(FF191B84) 
     
    192187STUB(FF192574) 
    193188STUB(FF1926EC) 
     189STUB(FF192764) 
    194190STUB(FF192834) 
    195191STUB(FF192864) 
     
    208204STUB(FF2B0A24) 
    209205STUB(FF2B5250) 
    210 STUB(FF2B587C) 
    211 STUB(FF2B592C) 
    212 STUB(FF2B5978) 
    213206STUB(FF2B599C) 
    214207STUB(FF2B6AC0) 
    215 STUB(FF2B6F20) 
    216 STUB(FF2B6F94) 
    217 STUB(FF2B6FBC) 
    218208STUB(FF2B6FD4) 
    219209STUB(FF2B6FE8) 
    220210STUB(FF2B7078) 
     211STUB(FF2E4DFC) 
     212STUB(FF2E4F3C) 
     213STUB(FF2E4F74) 
     214STUB(FF2E4F84) 
     215STUB(FF2E538C) 
     216STUB(FF2E5464) 
    221217STUB(FF3033F8) 
    222 STUB(FF303544) 
    223218STUB(FF3056CC) 
    224219STUB(FF305ADC) 
    225220STUB(FF306BF8) 
    226221STUB(FF306D7C) 
    227 STUB(FF306EA4) 
    228 STUB(FF307138) 
    229 STUB(FF3077CC) 
    230222STUB(FF30FD34) 
    231223STUB(FF3100F4) 
    232224STUB(FF3B5DDC) 
    233 STUB(FF3B5FC4) 
    234225STUB(FF3B60A8) 
    235226STUB(FF3B62E0) 
  • trunk/platform/sx230hs/sub/101a/stubs_entry.S

    r3102 r3111  
    2323// Check of modemap from 'platform/CAMERA/shooting.c': 
    2424// Firmware modemap table found @ff3232ac -> ff4957d8 
    25 // Mode 16936 in firmware but not in current modemap 
    26 // Mode 16938 in firmware but not in current modemap 
     25// No problems found with modemap table. 
    2726 
    2827// Values below can be overridden in 'stubs_min.S': 
  • trunk/platform/sx230hs/sub/101b/Makefile

    r1331 r3111  
    11topdir=../../../../ 
    22 
    3 OBJS=boot.o stubs_min.o stubs_auto.o stubs_entry.o lib.o stubs_entry_2.o capt_seq.o movie_rec.o kbd.o 
    4 STUBS_AUTO_DEPS=boot.c capt_seq.c movie_rec.c 
     3OBJS=boot.o stubs_min.o stubs_auto.o stubs_entry.o lib.o stubs_entry_2.o capt_seq.o movie_rec.o kbd.o filewrite.o 
     4STUBS_AUTO_DEPS=boot.c capt_seq.c movie_rec.c filewrite.c 
    55 
    66include  $(topdir)platform/makefile_sub.inc 
  • trunk/platform/sx230hs/sub/101b/boot.c

    r2982 r3111  
    1717extern void task_MovieRecord(); 
    1818extern void task_ExpDrv(); 
     19extern void task_FileWrite(); 
    1920 
    2021void taskHook(context_t **context) { 
     
    2829    if(tcb->entry == (void*)task_MovieRecord)       tcb->entry = (void*)movie_record_task; 
    2930    if(tcb->entry == (void*)task_ExpDrv)            tcb->entry = (void*)exp_drv_task; 
     31    if(tcb->entry == (void*)task_FileWrite)         tcb->entry = (void*)filewritetask; 
    3032} 
    3133 
  • trunk/platform/sx230hs/sub/101b/movie_rec.c

    r1675 r3111  
     1/* 
     2 * movie_rec.c - auto-generated by CHDK code_gen. 
     3 */ 
    14#include "conf.h" 
    25 
     
    47} 
    58 
    6  
    79void  set_quality(int *x){ // -17 highest; +12 lowest 
    8  
    910 if (conf.video_mode) *x=12-((conf.video_quality-1)*(12+17)/(99-1)); 
    1011} 
    1112 
    12 void __attribute__((naked,noinline)) movie_record_task(){ 
    13     asm volatile( 
    14 //"sub_FF18D9CC" 
    15                 "STMFD  SP!, {R2-R10,LR}\n" 
    16                 "LDR    R6, =0xFF18C73C\n" 
    17 //PATCH BEGIN 
    18 //      "LDR    R7, =sub_FF18D424\n" 
    19         "LDR    R7, =sub_FF18D424_my\n" 
    20 //PATCH END 
    21                 "LDR    R4, =0x85E0\n" 
    22                 "LDR    R9, =0x67F\n" 
    23                 "LDR    R10, =0x2710\n" 
    24                 "MOV    R8, #1\n" 
    25                 "MOV    R5, #0\n" 
     13/*************************************************************/ 
     14//** movie_record_task @ 0xFF18D9CC - 0xFF18DB44, length=95 
     15void __attribute__((naked,noinline)) movie_record_task() { 
     16asm volatile ( 
     17"    STMFD   SP!, {R2-R10,LR} \n" 
     18"    LDR     R6, =0xFF18C73C \n" 
     19"    LDR     R7, =0xFF18D424 \n" 
     20"    LDR     R4, =0x85E0 \n" 
     21"    LDR     R9, =0x67F \n" 
     22"    LDR     R10, =0x2710 \n" 
     23"    MOV     R8, #1 \n" 
     24"    MOV     R5, #0 \n" 
     25 
    2626"loc_FF18D9EC:\n" 
    27                 "LDR    R0, [R4, #0x24]\n" 
    28                 "MOV    R2, #0\n" 
    29                 "ADD    R1, SP, #4\n" 
    30                 "BL sub_FF02B184\n" 
    31                 "LDR    R0, [R4, #0x2C]\n" 
    32                 "CMP    R0, #0\n" 
    33                 "LDRNE  R0, [R4, #0xC]\n" 
    34                 "CMPNE  R0, #2\n" 
    35                 "LDRNE  R0, [R4, #0x44]\n" 
    36                 "CMPNE  R0, #6\n" 
    37                 "BNE    loc_FF18DB28\n" 
    38                 "LDR    R0, [SP, #4]\n" 
    39                 "LDR    R1, [R0]\n" 
    40                 "SUB    R1, R1, #2\n" 
    41                 "CMP    R1, #0xD\n" 
    42                 "ADDCC  PC, PC, R1, LSL #2\n" 
    43                 "B  loc_FF18DB28\n" 
    44                 "B  loc_FF18DAC8\n" 
    45                 "B  loc_FF18DAEC\n" 
    46                 "B  loc_FF18DAFC\n" 
    47                 "B  loc_FF18DB04\n" 
    48                 "B  loc_FF18DB0C\n" 
    49                 "B  loc_FF18DB14\n" 
    50                 "B  loc_FF18DAD0\n" 
    51                 "B  loc_FF18DB1C\n" 
    52                 "B  loc_FF18DADC\n" 
    53                 "B  loc_FF18DB28\n" 
    54                 "B  loc_FF18DB24\n" 
    55                 "B  loc_FF18DA94\n" 
    56                 "B  loc_FF18DA64\n" 
     27"    LDR     R0, [R4, #0x24] \n" 
     28"    MOV     R2, #0 \n" 
     29"    ADD     R1, SP, #4 \n" 
     30"    BL      sub_FF02B184 /*_ReceiveMessageQueue*/ \n" 
     31"    LDR     R0, [R4, #0x2C] \n" 
     32"    CMP     R0, #0 \n" 
     33"    LDRNE   R0, [R4, #0xC] \n" 
     34"    CMPNE   R0, #2 \n" 
     35"    LDRNE   R0, [R4, #0x44] \n" 
     36"    CMPNE   R0, #6 \n" 
     37"    BNE     loc_FF18DB28 \n" 
     38"    LDR     R0, [SP, #4] \n" 
     39"    LDR     R1, [R0] \n" 
     40"    SUB     R1, R1, #2 \n" 
     41"    CMP     R1, #0xD \n" 
     42"    ADDCC   PC, PC, R1, LSL#2 \n" 
     43"    B       loc_FF18DB28 \n" 
     44"    B       loc_FF18DAC8 \n" 
     45"    B       loc_FF18DAEC \n" 
     46"    B       loc_FF18DAFC \n" 
     47"    B       loc_FF18DB04 \n" 
     48"    B       loc_FF18DB0C \n" 
     49"    B       loc_FF18DB14 \n" 
     50"    B       loc_FF18DAD0 \n" 
     51"    B       loc_FF18DB1C \n" 
     52"    B       loc_FF18DADC \n" 
     53"    B       loc_FF18DB28 \n" 
     54"    B       loc_FF18DB24 \n" 
     55"    B       loc_FF18DA94 \n" 
     56"    B       loc_FF18DA64 \n" 
     57 
    5758"loc_FF18DA64:\n" 
    58                 "STR    R5, [R4, #0x40]\n" 
    59                 "STR    R5, [R4, #0x30]\n" 
    60                 "STR    R5, [R4, #0x34]\n" 
    61                 "STRH   R5, [R4, #6]\n" 
    62                 "STR    R6, [R4, #0xD8]\n" 
    63                 "STR    R7, [R4, #0xF0]\n" 
    64                 "LDR    R0, [R4, #0xC]\n" 
    65                 "ADD    R0, R0, #1\n" 
    66                 "STR    R0, [R4, #0xC]\n" 
    67                 "MOV    R0, #6\n" 
    68                 "STR    R0, [R4, #0x44]\n" 
    69                 "B  loc_FF18DAB4\n" 
     59"    STR     R5, [R4, #0x40] \n" 
     60"    STR     R5, [R4, #0x30] \n" 
     61"    STR     R5, [R4, #0x34] \n" 
     62"    STRH    R5, [R4, #6] \n" 
     63"    STR     R6, [R4, #0xD8] \n" 
     64"    STR     R7, [R4, #0xF0] \n" 
     65"    LDR     R0, [R4, #0xC] \n" 
     66"    ADD     R0, R0, #1 \n" 
     67"    STR     R0, [R4, #0xC] \n" 
     68"    MOV     R0, #6 \n" 
     69"    STR     R0, [R4, #0x44] \n" 
     70"    B       loc_FF18DAB4 \n" 
     71 
    7072"loc_FF18DA94:\n" 
    71                 "STR    R5, [R4, #0x40]\n" 
    72                 "STR    R5, [R4, #0x30]\n" 
    73                 "STR    R6, [R4, #0xD8]\n" 
    74                 "STR    R7, [R4, #0xF0]\n" 
    75                 "LDR    R0, [R4, #0xC]\n" 
    76                 "ADD    R0, R0, #1\n" 
    77                 "STR    R0, [R4, #0xC]\n" 
    78                 "STR    R8, [R4, #0x44]\n" 
     73"    STR     R5, [R4, #0x40] \n" 
     74"    STR     R5, [R4, #0x30] \n" 
     75"    STR     R6, [R4, #0xD8] \n" 
     76"    STR     R7, [R4, #0xF0] \n" 
     77"    LDR     R0, [R4, #0xC] \n" 
     78"    ADD     R0, R0, #1 \n" 
     79"    STR     R0, [R4, #0xC] \n" 
     80"    STR     R8, [R4, #0x44] \n" 
     81 
    7982"loc_FF18DAB4:\n" 
    80                 "LDR    R2, =0xFF18BD78\n" 
    81                 "LDR    R1, =0xC6A08\n" 
    82                 "LDR    R0, =0xFF18BE8C\n" 
    83                 "BL sub_FF0453E0\n" 
    84                 "B  loc_FF18DB28\n" 
     83"    LDR     R2, =0xFF18BD78 \n" 
     84"    LDR     R1, =0xC6A08 \n" 
     85"    LDR     R0, =0xFF18BE8C \n" 
     86"    BL      sub_FF0453E0 \n" 
     87"    B       loc_FF18DB28 \n" 
     88 
    8589"loc_FF18DAC8:\n" 
    86 //              "BL sub_FF18D008_my\n" 
    87                 "BL     movie_time\n" 
    88 "label_A:\n" 
    89                 "B  loc_FF18DB28\n" 
    90 "loc_FF18DAD0:\n" 
    91                 "LDR    R1, [R4, #0xF0]\n" 
    92                 "BLX    R1\n" 
    93                 "B  loc_FF18DB28\n" 
    94 "loc_FF18DADC:\n" 
    95                 "LDR    R1, [R0, #0x18]\n" 
    96                 "LDR    R0, [R0, #4]\n" 
    97                 "BL sub_FF306D88\n" 
    98                 "B  loc_FF18DB28\n" 
    99 "loc_FF18DAEC:\n" 
    100                 "LDR    R0, [R4, #0x44]\n" 
    101                 "CMP    R0, #5\n" 
    102                 "STRNE  R8, [R4, #0x34]\n" 
    103                 "B  loc_FF18DB28\n" 
    104 "loc_FF18DAFC:\n" 
    105                 "BL sub_FF18C418\n" 
    106                 "B  loc_FF18DB28\n" 
    107 "loc_FF18DB04:\n" 
    108                 "BL sub_FF18C12C\n" 
    109                 "B  loc_FF18DB28\n" 
    110 "loc_FF18DB0C:\n" 
    111                 "BL sub_FF18BEE4\n" 
    112                 "B  loc_FF18DB28\n" 
    113 "loc_FF18DB14:\n" 
    114                 "BL sub_FF18BB0C\n" 
    115                 "B  loc_FF18DB28\n" 
    116 "loc_FF18DB1C:\n" 
    117                 "BL sub_FF18BA8C\n" 
    118                 "B  loc_FF18DB28\n" 
    119 "loc_FF18DB24:\n" 
    120                 "BL sub_FF18E078\n" 
    121 "loc_FF18DB28:\n" 
    122                 "LDR    R1, [SP, #4]\n" 
    123                 "LDR    R3, =0xFF18B7F0\n" 
    124                 "STR    R5, [R1]\n" 
    125                 "STR    R9, [SP]\n" 
    126                 "LDR    R0, [R4, #0x28]\n" 
    127                 "MOV    R2, R10\n" 
    128                 "BL sub_FF02BAFC\n" 
    129                 "B  loc_FF18D9EC\n" 
    130  
    131 // "End of function sub_FF18D9CC\n" 
    132         ); 
    133 } 
    134  
    135 void __attribute__((naked,noinline)) movie_time(){ 
    136 if( (int)conf.ext_video_time == 1 ) 
     90); 
     91if (conf.ext_video_time == 1) 
    13792{ 
    13893asm volatile ( 
    139                 "BL     sub_FF18D008_my\n" 
    140                 "B      label_A\n" 
    141              ); 
     94"    BL      sub_FF18D008_my \n"  // --> Patched. Old value = 0xFF18D008. 
     95); 
    14296} 
    14397else 
    14498{ 
    14599asm volatile ( 
    146                 "BL     sub_FF18D008\n" 
    147                 "B      label_A\n" 
    148              ); 
     100"    BL      sub_FF18D008 \n" 
     101); 
    149102} 
    150  
     103asm volatile ( 
     104"    B       loc_FF18DB28 \n" 
     105 
     106"loc_FF18DAD0:\n" 
     107"    LDR     R1, [R4, #0xF0] \n" 
     108"    BLX     R1 \n" 
     109//begin patch 
     110"    LDR     R0, =video_compression_rate\n" //added 
     111"    BL      set_quality\n"                 //added 
     112//end patch 
     113"    B       loc_FF18DB28 \n" 
     114 
     115"loc_FF18DADC:\n" 
     116"    LDR     R1, [R0, #0x18] \n" 
     117"    LDR     R0, [R0, #4] \n" 
     118"    BL      sub_FF306D88 \n" 
     119"    B       loc_FF18DB28 \n" 
     120 
     121"loc_FF18DAEC:\n" 
     122"    LDR     R0, [R4, #0x44] \n" 
     123"    CMP     R0, #5 \n" 
     124"    STRNE   R8, [R4, #0x34] \n" 
     125"    B       loc_FF18DB28 \n" 
     126 
     127"loc_FF18DAFC:\n" 
     128"    BL      sub_FF18C418 \n" 
     129"    B       loc_FF18DB28 \n" 
     130 
     131"loc_FF18DB04:\n" 
     132"    BL      sub_FF18C12C \n" 
     133"    B       loc_FF18DB28 \n" 
     134 
     135"loc_FF18DB0C:\n" 
     136"    BL      sub_FF18BEE4 \n" 
     137"    B       loc_FF18DB28 \n" 
     138 
     139"loc_FF18DB14:\n" 
     140"    BL      sub_FF18BB0C \n" 
     141"    B       loc_FF18DB28 \n" 
     142 
     143"loc_FF18DB1C:\n" 
     144"    BL      sub_FF18BA8C \n" 
     145"    B       loc_FF18DB28 \n" 
     146 
     147"loc_FF18DB24:\n" 
     148"    BL      sub_FF18E078 \n" 
     149 
     150"loc_FF18DB28:\n" 
     151"    LDR     R1, [SP, #4] \n" 
     152"    LDR     R3, =0xFF18B7F0 \n" 
     153"    STR     R5, [R1] \n" 
     154"    STR     R9, [SP] \n" 
     155"    LDR     R0, [R4, #0x28] \n" 
     156"    MOV     R2, R10 \n" 
     157"    BL      sub_FF02BAFC /*_PostMessageQueueStrictly*/ \n" 
     158"    B       loc_FF18D9EC \n" 
     159); 
    151160} 
    152161 
    153 void __attribute__((naked,noinline)) sub_FF18D008_my(  ) { 
     162/*************************************************************/ 
     163//** sub_FF18D008_my @ 0xFF18D008 - 0xFF18D2E8, length=185 
     164void __attribute__((naked,noinline)) sub_FF18D008_my() { 
    154165asm volatile ( 
    155                 "STMFD  SP!, {R0-R8,LR}\n" 
    156                 "LDR    R6, =0x85E0\n" 
    157                 "MOV    R0, #0\n" 
    158                 "STR    R0, [R6, #0x34]\n" 
    159                 "STR    R0, [R6, #0x38]\n" 
    160                 "ADD    R0, R6, #0\n" 
    161                 "LDR    R0, [R0, #0x5C]\n" 
    162                 "LDRH   R1, [R6, #6]\n" 
    163                 "MOV    R3, #0x3E8\n" 
    164                 "MUL    R0, R3, R0\n" 
    165                 "CMP    R1, #0\n" 
    166                 "MOV    R2, #1\n" 
    167                 "BNE    loc_FF18D04C\n" 
    168                 "LDR    R1, [R6, #0x90]\n" 
    169                 "CMP    R1, #0\n" 
    170                 "BNE    loc_FF18D05C\n" 
    171                 "B  loc_FF18D054\n" 
     166"    STMFD   SP!, {R0-R8,LR} \n" 
     167"    LDR     R6, =0x85E0 \n" 
     168"    MOV     R0, #0 \n" 
     169"    STR     R0, [R6, #0x34] \n" 
     170"    STR     R0, [R6, #0x38] \n" 
     171"    MOV     R0, R6 \n" 
     172"    LDR     R0, [R0, #0x5C] \n" 
     173"    LDRH    R1, [R6, #6] \n" 
     174"    MOV     R3, #0x3E8 \n" 
     175"    MUL     R0, R3, R0 \n" 
     176"    CMP     R1, #0 \n" 
     177"    MOV     R2, #1 \n" 
     178"    BNE     loc_FF18D04C \n" 
     179"    LDR     R1, [R6, #0x90] \n" 
     180"    CMP     R1, #0 \n" 
     181"    BNE     loc_FF18D05C \n" 
     182"    B       loc_FF18D054 \n" 
     183 
    172184"loc_FF18D04C:\n" 
    173                 "CMP    R1, #3\n" 
    174                 "BNE    loc_FF18D05C\n" 
     185"    CMP     R1, #3 \n" 
     186"    BNE     loc_FF18D05C \n" 
     187 
    175188"loc_FF18D054:\n" 
    176                 "STR    R2, [R6, #0x48]\n" 
    177                 "B  loc_FF18D068\n" 
     189"    STR     R2, [R6, #0x48] \n" 
     190"    B       loc_FF18D068 \n" 
     191 
    178192"loc_FF18D05C:\n" 
    179                 "MOV    R1, #0x3E8\n" 
    180                 "BL sub_FF3B62EC\n" 
    181                 "STR    R0, [R6, #0x48]\n" 
     193"    MOV     R1, #0x3E8 \n" 
     194"    BL      sub_FF3B62EC \n" 
     195"    STR     R0, [R6, #0x48] \n" 
     196 
    182197"loc_FF18D068:\n" 
    183                 "LDR    R4, =0xC6A3C\n" 
    184                 "MOV    R7, #2\n" 
    185                 "LDR    R0, [R4, #8]\n" 
    186                 "CMP    R0, #0\n" 
    187                 "BEQ    loc_FF18D0D0\n" 
    188                 "LDR    R0, [R6, #0x58]\n" 
    189                 "MOV    R1, #4\n" 
    190                 "CMP    R0, #0x18\n" 
    191                 "BEQ    loc_FF18D264\n" 
    192                 "BGT    loc_FF18D0AC\n" 
    193                 "CMP    R0, #0xA\n" 
    194                 "CMPNE  R0, #0xF\n" 
    195                 "STREQ  R7, [R4, #0x14]\n" 
    196                 "BEQ    loc_FF18D0D0\n" 
    197                 "CMP    R0, #0x14\n" 
    198                 "BNE    loc_FF18D0C4\n" 
    199                 "B  loc_FF18D264\n" 
     198"    LDR     R4, =0xC6A3C \n" 
     199"    MOV     R7, #2 \n" 
     200"    LDR     R0, [R4, #8] \n" 
     201"    CMP     R0, #0 \n" 
     202"    BEQ     loc_FF18D0D0 \n" 
     203"    LDR     R0, [R6, #0x58] \n" 
     204"    MOV     R1, #4 \n" 
     205"    CMP     R0, #0x18 \n" 
     206"    BEQ     loc_FF18D264 \n" 
     207"    BGT     loc_FF18D0AC \n" 
     208"    CMP     R0, #0xA \n" 
     209"    CMPNE   R0, #0xF \n" 
     210"    STREQ   R7, [R4, #0x14] \n" 
     211"    BEQ     loc_FF18D0D0 \n" 
     212"    CMP     R0, #0x14 \n" 
     213"    BNE     loc_FF18D0C4 \n" 
     214"    B       loc_FF18D264 \n" 
     215 
    200216"loc_FF18D0AC:\n" 
    201                 "CMP    R0, #0x1E\n" 
    202                 "BEQ    loc_FF18D264\n" 
    203                 "CMP    R0, #0x3C\n" 
    204                 "MOVEQ  R0, #8\n" 
    205                 "STREQ  R0, [R4, #0x14]\n" 
    206                 "BEQ    loc_FF18D0D0\n" 
     217"    CMP     R0, #0x1E \n" 
     218"    BEQ     loc_FF18D264 \n" 
     219"    CMP     R0, #0x3C \n" 
     220"    MOVEQ   R0, #8 \n" 
     221"    STREQ   R0, [R4, #0x14] \n" 
     222"    BEQ     loc_FF18D0D0 \n" 
     223 
    207224"loc_FF18D0C4:\n" 
    208                 "LDR    R1, =0x777\n" 
    209                 "LDR    R0, =0xFF18B7F0\n" 
    210                 "BL sub_FF00EC88\n" 
     225"    LDR     R1, =0x777 \n" 
     226"    LDR     R0, =0xFF18B7F0 \n" 
     227"    BL      _DebugAssert \n" 
     228 
    211229"loc_FF18D0D0:\n" 
    212                 "LDR    R2, =0x85E2\n" 
    213                 "LDR    R0, [R6, #0xB8]\n" 
    214                 "MOV    R3, #2\n" 
    215                 "MOV    R1, #0xAA\n" 
    216                 "BL sub_FF08C388\n" 
    217                 "LDR    R2, =0x85E4\n" 
    218                 "LDR    R0, [R6, #0xB8]\n" 
    219                 "MOV    R3, #2\n" 
    220                 "MOV    R1, #0xA9\n" 
    221                 "BL sub_FF08C388\n" 
    222                 "LDR    R2, =0x8630\n" 
    223                 "LDR    R0, [R6, #0xB8]\n" 
    224                 "MOV    R3, #4\n" 
    225                 "MOV    R1, #0xA2\n" 
    226                 "BL sub_FF08C388\n" 
    227                 "LDR    R2, =0x8634\n" 
    228                 "LDR    R0, [R6, #0xB8]\n" 
    229                 "MOV    R3, #4\n" 
    230                 "MOV    R1, #0xA3\n" 
    231                 "BL sub_FF08C388\n" 
    232                 "LDR    R0, [R6, #0x90]\n" 
    233                 "CMP    R0, #0\n" 
    234                 "LDRNE  R2, =0x86E0\n" 
    235                 "MOVNE  R1, #0\n" 
    236                 "MOVNE  R0, #0xD\n" 
    237                 "BLNE   sub_FF086854\n" 
    238                 "LDR    R0, [R6, #0x4C]\n" 
    239                 "LDR    R5, =0x86E0\n" 
    240                 "LDR    R8, =0xC6A24\n" 
    241                 "CMP    R0, #2\n" 
    242                 "CMPNE  R0, #3\n" 
    243                 "BNE    loc_FF18D1CC\n" 
    244                 "LDR    R0, [R6, #0x90]\n" 
    245                 "CMP    R0, #0\n" 
    246                 "LDRNE  R0, =0x443FC000\n" 
    247                 "STRNE  R0, [R5]\n" 
    248                 "BNE    loc_FF18D1CC\n" 
    249                 "LDR    R0, =0x460B8600\n" 
    250                 "LDR    R1, =0x10959E0\n" 
    251                 "STR    R0, [R5]\n" 
    252                 "STR    R1, [R5, #4]\n" 
    253                 "LDMIA  R8, {R1,R2}\n" 
    254                 "STR    R0, [R6, #0xA0]\n" 
    255                 "MUL    R1, R2, R1\n" 
    256                 "MOV    R2, #0\n" 
    257                 "MOV    R3, R1, LSL #1\n" 
    258                 "ADD    R1, R0, R3\n" 
    259                 "STR    R3, [R6, #0x9C]\n" 
    260                 "STR    R1, [R6, #0xA4]\n" 
    261                 "STMEA  SP, {R1-R3}\n" 
    262                 "MOV    R3, R2\n" 
    263                 "MOV    R2, #9\n" 
    264                 "MOV    R1, #5\n" 
    265                 "MOV    R0, #0x10\n" 
    266                 "BL sub_FF2B0A24\n" 
    267                 "LDR    R1, [R5]\n" 
    268                 "LDR    R0, [R6, #0x9C]\n" 
    269                 "ADD    R1, R1, R0, LSL #1\n" 
    270                 "STR    R1, [R5]\n" 
    271                 "LDR    R1, [R5, #4]\n" 
    272                 "RSB    R0, R0, #0\n" 
    273                 "ADD    R0, R1, R0, LSL #1\n" 
    274                 "STR    R0, [R5, #4]\n" 
     230"    LDR     R2, =0x85E2 \n" 
     231"    LDR     R0, [R6, #0xB8] \n" 
     232"    MOV     R3, #2 \n" 
     233"    MOV     R1, #0xAA \n" 
     234"    BL      sub_FF08C388 \n" 
     235"    LDR     R2, =0x85E4 \n" 
     236"    LDR     R0, [R6, #0xB8] \n" 
     237"    MOV     R3, #2 \n" 
     238"    MOV     R1, #0xA9 \n" 
     239"    BL      sub_FF08C388 \n" 
     240"    LDR     R2, =0x8630 \n" 
     241"    LDR     R0, [R6, #0xB8] \n" 
     242"    MOV     R3, #4 \n" 
     243"    MOV     R1, #0xA2 \n" 
     244"    BL      sub_FF08C388 \n" 
     245"    LDR     R2, =0x8634 \n" 
     246"    LDR     R0, [R6, #0xB8] \n" 
     247"    MOV     R3, #4 \n" 
     248"    MOV     R1, #0xA3 \n" 
     249"    BL      sub_FF08C388 \n" 
     250"    LDR     R0, [R6, #0x90] \n" 
     251"    CMP     R0, #0 \n" 
     252"    LDRNE   R2, =0x86E0 \n" 
     253"    MOVNE   R1, #0 \n" 
     254"    MOVNE   R0, #0xD \n" 
     255"    BLNE    sub_FF086854 \n" 
     256"    LDR     R0, [R6, #0x4C] \n" 
     257"    LDR     R5, =0x86E0 \n" 
     258"    LDR     R8, =0xC6A24 \n" 
     259"    CMP     R0, #2 \n" 
     260"    CMPNE   R0, #3 \n" 
     261"    BNE     loc_FF18D1CC \n" 
     262"    LDR     R0, [R6, #0x90] \n" 
     263"    CMP     R0, #0 \n" 
     264"    LDRNE   R0, =0x443FC000 \n" 
     265"    STRNE   R0, [R5] \n" 
     266"    BNE     loc_FF18D1CC \n" 
     267"    LDR     R0, =0x460B8600 \n" 
     268"    LDR     R1, =0x10959E0 \n" 
     269"    STR     R0, [R5] \n" 
     270"    STR     R1, [R5, #4] \n" 
     271"    LDMIA   R8, {R1,R2} \n" 
     272"    STR     R0, [R6, #0xA0] \n" 
     273"    MUL     R1, R2, R1 \n" 
     274"    MOV     R2, #0 \n" 
     275"    MOV     R3, R1, LSL#1 \n" 
     276"    ADD     R1, R0, R3 \n" 
     277"    STR     R3, [R6, #0x9C] \n" 
     278"    STR     R1, [R6, #0xA4] \n" 
     279"    STMEA   SP, {R1-R3} \n" 
     280"    MOV     R3, R2 \n" 
     281"    MOV     R2, #9 \n" 
     282"    MOV     R1, #5 \n" 
     283"    MOV     R0, #0x10 \n" 
     284"    BL      sub_FF2B0A24 \n" 
     285"    LDR     R1, [R5] \n" 
     286"    LDR     R0, [R6, #0x9C] \n" 
     287"    ADD     R1, R1, R0, LSL#1 \n" 
     288"    STR     R1, [R5] \n" 
     289"    LDR     R1, [R5, #4] \n" 
     290"    RSB     R0, R0, #0 \n" 
     291"    ADD     R0, R1, R0, LSL#1 \n" 
     292"    STR     R0, [R5, #4] \n" 
     293 
    275294"loc_FF18D1CC:\n" 
    276                 "LDR    R3, =0xFF18CFD4\n" 
    277                 "LDMIA  R5, {R0,R1}\n" 
    278                 "STR    R3, [SP]\n" 
    279                 "LDR    R3, =0xC6A3C\n" 
    280                 "SUB    R2, R3, #0x18\n" 
    281                 "BL sub_FF3056D8_my\n" 
    282                 "LDR    R3, [R6, #0xB8]\n" 
    283                 "STR    R3, [SP]\n" 
    284                 "LDR    R0, [R6, #0x90]\n" 
    285                 "STRD   R2, [R6, #0xF8]\n" 
    286                 "BL sub_FF305AE8\n" 
    287                 "LDR    R0, [R6, #0x64]\n" 
    288                 "LDR    R3, =0x8668\n" 
    289                 "AND    R1, R0, #0xFF\n" 
    290                 "LDR    R0, [R8]\n" 
    291                 "SUB    R2, R3, #4\n" 
    292                 "BL sub_FF303404\n" 
    293                 "LDRH   R0, [R6, #6]\n" 
    294                 "CMP    R0, #2\n" 
    295                 "LDREQ  R0, =0xFF18CCA8\n" 
    296                 "STREQ  R0, [R6, #0xF0]\n" 
    297                 "LDR    R0, [R6, #0x90]\n" 
    298                 "CMP    R0, #0\n" 
    299                 "LDREQ  R1, =0xFF18C8EC\n" 
    300                 "STREQ  R1, [R6, #0xF0]\n" 
    301                 "LDR    R2, [R6, #0xC]\n" 
    302                 "LDR    R1, =0xFF414814\n" 
    303                 "CMP    R2, #2\n" 
    304                 "BNE    loc_FF18D26C\n" 
    305                 "LDR    R0, [R6, #0x4C]\n" 
    306                 "ADD    R0, R1, R0, LSL #3\n" 
    307                 "LDR    R1, [R8, #0xC]\n" 
    308                 "LDR    R0, [R0, R1, LSL #2]\n" 
    309                 "BL sub_FF2B6AC0\n" 
    310                 "LDR    R0, =0xFF18C818\n" 
    311                 "MOV    R1, #0\n" 
    312                 "BL sub_FF2B6FD4\n" 
    313                 "B  loc_FF18D2A8\n" 
     295"    LDR     R3, =0xFF18CFD4 \n" 
     296"    LDMIA   R5, {R0,R1} \n" 
     297"    STR     R3, [SP] \n" 
     298"    LDR     R3, =0xC6A3C \n" 
     299"    SUB     R2, R3, #0x18 \n" 
     300"    BL      sub_FF3056D8_my \n"  // --> Patched. Old value = 0xFF3056D8. 
     301"    LDR     R3, [R6, #0xB8] \n" 
     302"    STR     R3, [SP] \n" 
     303"    LDR     R0, [R6, #0x90] \n" 
     304"    LDRD    R2, [R6, #0xF8] \n" 
     305"    BL      sub_FF305AE8 \n" 
     306"    LDR     R0, [R6, #0x64] \n" 
     307"    LDR     R3, =0x8668 \n" 
     308"    AND     R1, R0, #0xFF \n" 
     309"    LDR     R0, [R8] \n" 
     310"    SUB     R2, R3, #4 \n" 
     311"    BL      sub_FF303404 \n" 
     312"    LDRH    R0, [R6, #6] \n" 
     313"    CMP     R0, #2 \n" 
     314"    LDREQ   R0, =0xFF18CCA8 \n" 
     315"    STREQ   R0, [R6, #0xF0] \n" 
     316"    LDR     R0, [R6, #0x90] \n" 
     317"    CMP     R0, #0 \n" 
     318"    LDREQ   R1, =0xFF18C8EC \n" 
     319"    STREQ   R1, [R6, #0xF0] \n" 
     320"    LDR     R2, [R6, #0xC] \n" 
     321"    LDR     R1, =0xFF414814 \n" 
     322"    CMP     R2, #2 \n" 
     323"    BNE     loc_FF18D26C \n" 
     324"    LDR     R0, [R6, #0x4C] \n" 
     325"    ADD     R0, R1, R0, LSL#3 \n" 
     326"    LDR     R1, [R8, #0xC] \n" 
     327"    LDR     R0, [R0, R1, LSL#2] \n" 
     328"    BL      sub_FF2B6AC0 \n" 
     329"    LDR     R0, =0xFF18C818 \n" 
     330"    MOV     R1, #0 \n" 
     331"    BL      sub_FF2B6FD4 \n" 
     332"    B       loc_FF18D2A8 \n" 
     333 
    314334"loc_FF18D264:\n" 
    315                 "STR    R1, [R4, #0x14]\n" 
    316                 "B  loc_FF18D0D0\n" 
     335"    STR     R1, [R4, #0x14] \n" 
     336"    B       loc_FF18D0D0 \n" 
     337 
    317338"loc_FF18D26C:\n" 
    318                 "CMP    R0, #0\n" 
    319                 "BNE    loc_FF18D288\n" 
    320                 "LDR    R1, [R6, #0x98]\n" 
    321                 "MOV    R0, #5\n" 
    322                 "BL sub_FF2B6FE8\n" 
    323                 "BL sub_FF2B7078\n" 
    324                 "B  loc_FF18D2A8\n" 
     339"    CMP     R0, #0 \n" 
     340"    BNE     loc_FF18D288 \n" 
     341"    LDR     R1, [R6, #0x98] \n" 
     342"    MOV     R0, #5 \n" 
     343"    BL      sub_FF2B6FE8 \n" 
     344"    BL      sub_FF2B7078 \n" 
     345"    B       loc_FF18D2A8 \n" 
     346 
    325347"loc_FF18D288:\n" 
    326                 "LDR    R0, [R6, #0x4C]\n" 
    327                 "ADD    R0, R1, R0, LSL #3\n" 
    328                 "LDR    R1, [R8, #0xC]\n" 
    329                 "LDR    R0, [R0, R1, LSL #2]\n" 
    330                 "BL sub_FF2B5250\n" 
    331                 "LDR    R0, =0xFF18C818\n" 
    332                 "MOV    R1, #0\n" 
    333                 "BL sub_FF2B599C\n" 
     348"    LDR     R0, [R6, #0x4C] \n" 
     349"    ADD     R0, R1, R0, LSL#3 \n" 
     350"    LDR     R1, [R8, #0xC] \n" 
     351"    LDR     R0, [R0, R1, LSL#2] \n" 
     352"    BL      sub_FF2B5250 \n" 
     353"    LDR     R0, =0xFF18C818 \n" 
     354"    MOV     R1, #0 \n" 
     355"    BL      sub_FF2B599C \n" 
     356 
    334357"loc_FF18D2A8:\n" 
    335                 "LDR    R0, [R4, #8]\n" 
    336                 "CMP    R0, #0\n" 
    337                 "BEQ    loc_FF18D2DC\n" 
    338                 "ADD    R0, SP, #0xC\n" 
    339                 "BL sub_FF306C04\n" 
    340                 "LDR    R1, [R4, #0xC]\n" 
    341                 "LDR    R0, [SP, #0xC]\n" 
    342                 "BL sub_FF05D07C\n" 
    343                 "ADD    R0, SP, #0xC\n" 
    344                 "BL sub_FF306C04\n" 
    345                 "LDR    R1, [R4, #0xC]\n" 
    346                 "LDR    R0, [SP, #0xC]\n" 
    347                 "BL sub_FF05D07C\n" 
     358"    LDR     R0, [R4, #8] \n" 
     359"    CMP     R0, #0 \n" 
     360"    BEQ     loc_FF18D2DC \n" 
     361"    ADD     R0, SP, #0xC \n" 
     362"    BL      sub_FF306C04 \n" 
     363"    LDR     R1, [R4, #0xC] \n" 
     364"    LDR     R0, [SP, #0xC] \n" 
     365"    BL      sub_FF05D07C \n" 
     366"    ADD     R0, SP, #0xC \n" 
     367"    BL      sub_FF306C04 \n" 
     368"    LDR     R1, [R4, #0xC] \n" 
     369"    LDR     R0, [SP, #0xC] \n" 
     370"    BL      sub_FF05D07C \n" 
     371 
    348372"loc_FF18D2DC:\n" 
    349                 "LDR    R0, =0xFF18C7D0\n" 
    350                 "STR    R7, [R6, #0x44]!\n" 
    351                 "STR    R0, [R6, #0x94]\n" 
    352                 "LDMFD  SP!, {R0-R8,PC}\n" 
    353     ); 
     373"    LDR     R0, =0xFF18C7D0 \n" 
     374"    STR     R7, [R6, #0x44]! \n" 
     375"    STR     R0, [R6, #0x94] \n" 
     376"    LDMFD   SP!, {R0-R8,PC} \n" 
     377); 
    354378} 
    355379 
    356 void __attribute__((naked,noinline)) sub_FF3056D8_my(  ) { 
     380/*************************************************************/ 
     381//** sub_FF3056D8_my @ 0xFF3056D8 - 0xFF305A8C, length=238 
     382void __attribute__((naked,noinline)) sub_FF3056D8_my() { 
    357383asm volatile ( 
    358  
    359                 "STMFD  SP!, {R0-R12,LR}\n" 
    360                 "MOV    R9, R0\n" 
    361                 "LDR    R0, [R2, #0x10]\n" 
    362                 "LDR    R8, [SP, #0x38]\n" 
    363                 "CMP    R0, #0\n" 
    364                 "LDREQ  R1, =0x32A\n" 
    365                 "LDREQ  R0, =0xFF3042EC\n" 
    366                 "MOV    R5, #0\n" 
    367                 "MOV    R4, R2\n" 
    368                 "MOV    R10, R3\n" 
    369                 "MOV    R7, R5\n" 
    370                 "BLEQ   sub_FF00EC88\n" 
    371                 "LDR    R6, =0xDE88\n" 
    372                 "LDR    R0, [R4]\n" 
    373                 "MOV    R11, #0x1E\n" 
    374                 "STR    R0, [R6, #0xD0]\n" 
    375                 "LDR    R0, [R4, #4]\n" 
    376                 "STR    R0, [R6, #0xD4]\n" 
    377                 "LDR    R0, [R4, #0x10]\n" 
    378                 "STR    R0, [R6, #0xE0]\n" 
    379                 "LDR    R1, [R4, #8]\n" 
    380                 "LDR    R0, =0x7530\n" 
    381                 "CMP    R1, #0xB\n" 
    382                 "ADDCC  PC, PC, R1, LSL #2\n" 
    383                 "B  loc_FF3057C4\n" 
    384                 "B  loc_FF305778\n" 
    385                 "B  loc_FF305768\n" 
    386                 "B  loc_FF3057A0\n" 
    387                 "B  loc_FF3057B4\n" 
    388                 "B  loc_FF3057C4\n" 
    389                 "B  loc_FF3057C4\n" 
    390                 "B  loc_FF3057C4\n" 
    391                 "B  loc_FF3057C4\n" 
    392                 "B  loc_FF305798\n" 
    393                 "B  loc_FF305790\n" 
    394                 "B  loc_FF305780\n" 
     384"    STMFD   SP!, {R0-R12,LR} \n" 
     385"    MOV     R9, R0 \n" 
     386"    LDR     R0, [R2, #0x10] \n" 
     387"    LDR     R8, [SP, #0x38] \n" 
     388"    CMP     R0, #0 \n" 
     389"    LDREQ   R1, =0x32A \n" 
     390"    LDREQ   R0, =0xFF3042EC \n" 
     391"    MOV     R5, #0 \n" 
     392"    MOV     R4, R2 \n" 
     393"    MOV     R10, R3 \n" 
     394"    MOV     R7, R5 \n" 
     395"    BLEQ    _DebugAssert \n" 
     396"    LDR     R6, =0xDE88 \n" 
     397"    LDR     R0, [R4] \n" 
     398"    MOV     R11, #0x1E \n" 
     399"    STR     R0, [R6, #0xD0] \n" 
     400"    LDR     R0, [R4, #4] \n" 
     401"    STR     R0, [R6, #0xD4] \n" 
     402"    LDR     R0, [R4, #0x10] \n" 
     403"    STR     R0, [R6, #0xE0] \n" 
     404"    LDR     R1, [R4, #8] \n" 
     405"    LDR     R0, =0x7530 \n" 
     406"    CMP     R1, #0xB \n" 
     407"    ADDCC   PC, PC, R1, LSL#2 \n" 
     408"    B       loc_FF3057C4 \n" 
     409"    B       loc_FF305778 \n" 
     410"    B       loc_FF305768 \n" 
     411"    B       loc_FF3057A0 \n" 
     412"    B       loc_FF3057B4 \n" 
     413"    B       loc_FF3057C4 \n" 
     414"    B       loc_FF3057C4 \n" 
     415"    B       loc_FF3057C4 \n" 
     416"    B       loc_FF3057C4 \n" 
     417"    B       loc_FF305798 \n" 
     418"    B       loc_FF305790 \n" 
     419"    B       loc_FF305780 \n" 
     420 
    395421"loc_FF305768:\n" 
    396                 "LDR    R7, =0x5DC0\n" 
    397                 "MOV    R0, #0x18\n" 
    398                 "STR    R7, [R6, #0x12C]\n" 
    399                 "B  loc_FF3057AC\n" 
     422"    LDR     R7, =0x5DC0 \n" 
     423"    MOV     R0, #0x18 \n" 
     424"    STR     R7, [R6, #0x12C] \n" 
     425"    B       loc_FF3057AC \n" 
     426 
    400427"loc_FF305778:\n" 
    401                 "MOV    R7, R0\n" 
    402                 "B  loc_FF305784\n" 
     428"    MOV     R7, R0 \n" 
     429"    B       loc_FF305784 \n" 
     430 
    403431"loc_FF305780:\n" 
    404                 "LDR    R7, =0x5DC\n" 
     432"    LDR     R7, =0x5DC \n" 
     433 
    405434"loc_FF305784:\n" 
    406                 "STR    R0, [R6, #0x12C]\n" 
    407                 "STR    R11, [R6, #0xD8]\n" 
    408                 "B  loc_FF3057D0\n" 
     435"    STR     R0, [R6, #0x12C] \n" 
     436"    STR     R11, [R6, #0xD8] \n" 
     437"    B       loc_FF3057D0 \n" 
     438 
    409439"loc_FF305790:\n" 
    410                 "LDR    R7, =0xBB8\n" 
    411                 "B  loc_FF305784\n" 
     440"    LDR     R7, =0xBB8 \n" 
     441"    B       loc_FF305784 \n" 
     442 
    412443"loc_FF305798:\n" 
    413                 "LDR    R7, =0x1770\n" 
    414                 "B  loc_FF305784\n" 
     444"    LDR     R7, =0x1770 \n" 
     445"    B       loc_FF305784 \n" 
     446 
    415447"loc_FF3057A0:\n" 
    416 //              "LDR    R7, =0x3A980\n" 
    417                 "LDR    R6, =0xFFFFFFFE\n"           //240fps video time limit 
    418                 "STR    R0, [R6, #0x12C]\n" 
    419                 "MOV    R0, #0xF0\n" 
     448"    LDR     R7, =0x57600000 \n"  // --> Patched. Old value = 0x3A980. 2hrs 240fps 
     449"    STR     R0, [R6, #0x12C] \n" 
     450"    MOV     R0, #0xF0 \n" 
     451 
    420452"loc_FF3057AC:\n" 
    421                 "STR    R0, [R6, #0xD8]\n" 
    422                 "B  loc_FF3057D0\n" 
     453"    STR     R0, [R6, #0xD8] \n" 
     454"    B       loc_FF3057D0 \n" 
     455 
    423456"loc_FF3057B4:\n" 
    424                 "STR    R0, [R6, #0x12C]\n" 
    425 //              "LDR    R7, =0x1D4C0\n" 
    426                 "LDR    R6, =0xFFFFFFFE\n"           //120fps video time limit 
    427                 "MOV    R0, #0x78\n" 
    428                 "B  loc_FF3057AC\n" 
     457"    STR     R0, [R6, #0x12C] \n" 
     458"    LDR     R7, =0x28800000 \n"  // --> Patched. Old value = 0x1D4C0. 2hrs 120fps 
     459"    MOV     R0, #0x78 \n" 
     460"    B       loc_FF3057AC \n" 
     461 
    429462"loc_FF3057C4:\n" 
    430                 "LDR    R1, =0x35B\n" 
    431                 "LDR    R0, =0xFF3042EC\n" 
    432                 "BL sub_FF00EC88\n" 
     463"    LDR     R1, =0x35B \n" 
     464"    LDR     R0, =0xFF3042EC \n" 
     465"    BL      _DebugAssert \n" 
     466 
    433467"loc_FF3057D0:\n" 
    434                 "LDR    R0, [R6, #0xD8]\n" 
    435 //              "LDR    R1, =0xE0F\n" 
    436                 "LDR    R1, =0xFD20\n"               //240p, 480p video time limit 0xFD20(~18hr) 
    437                 "MOV    R0, R0, LSR #1\n" 
    438                 "STR    R0, [R6, #0xDC]\n" 
    439                 "LDR    R0, [R10]\n" 
    440                 "STR    R0, [R6, #0xE4]\n" 
    441                 "LDRH   R0, [R10, #0x10]\n" 
    442                 "STR    R0, [R6, #0xE8]\n" 
    443                 "LDR    R0, [R10, #4]\n" 
    444                 "STRH   R0, [R6, #2]\n" 
    445                 "LDR    R0, [R10, #8]\n" 
    446                 "STRH   R0, [R6, #4]\n" 
    447                 "LDR    R0, [R10, #0x14]\n" 
    448                 "STR    R0, [R6, #0xEC]\n" 
    449                 "STR    R8, [R6, #0x128]\n" 
    450                 "LDR    R0, [R6, #0xD0]\n" 
    451                 "CMP    R0, #0x140\n" 
    452                 "MOVEQ  R0, #0x20000\n" 
    453                 "MOVEQ  R5, #1\n" 
    454                 "STREQ  R0, [R6, #0xAC]\n" 
    455                 "BEQ    loc_FF305864\n" 
    456                 "CMP    R0, #0x280\n" 
    457                 "LDREQ  R0, =0x7A760\n" 
    458                 "MOVEQ  R5, #2\n" 
    459                 "STREQ  R0, [R6, #0xAC]\n" 
    460                 "BEQ    loc_FF305864\n" 
    461                 "CMP    R0, #0x500\n" 
    462                 "LDREQ  R0, =0x11DA50\n" 
    463 //              "LDR    R1, =0x707\n" 
    464                 "LDR    R1, =0xFFE\n"                   //720p, 1080p video time limit 0xFFE(~68min) 
    465                 "MOVEQ  R5, #4\n" 
    466                 "STREQ  R0, [R6, #0xAC]\n" 
    467                 "BEQ    loc_FF305864\n" 
    468                 "CMP    R0, #0x780\n" 
    469                 "BNE    loc_FF30586C\n" 
    470                 "MOV    R0, #0x200000\n" 
    471                 "MOV    R5, #5\n" 
    472                 "STR    R0, [R6, #0xAC]\n" 
     468"    LDR     R0, [R6, #0xD8] \n" 
     469"    LDR     R1, =0x1C20 \n"  // --> Patched. Old value = 0xE0F. 2hrs 
     470"    MOV     R0, R0, LSR#1 \n" 
     471"    STR     R0, [R6, #0xDC] \n" 
     472"    LDR     R0, [R10] \n" 
     473"    STR     R0, [R6, #0xE4] \n" 
     474"    LDRH    R0, [R10, #0x10] \n" 
     475"    STR     R0, [R6, #0xE8] \n" 
     476"    LDR     R0, [R10, #4] \n" 
     477"    STRH    R0, [R6, #2] \n" 
     478"    LDR     R0, [R10, #8] \n" 
     479"    STRH    R0, [R6, #4] \n" 
     480"    LDR     R0, [R10, #0x14] \n" 
     481"    STR     R0, [R6, #0xEC] \n" 
     482"    STR     R8, [R6, #0x128] \n" 
     483"    LDR     R0, [R6, #0xD0] \n" 
     484"    CMP     R0, #0x140 \n" 
     485"    MOVEQ   R0, #0x20000 \n" 
     486"    MOVEQ   R5, #1 \n" 
     487"    STREQ   R0, [R6, #0xAC] \n" 
     488"    BEQ     loc_FF305864 \n" 
     489"    CMP     R0, #0x280 \n" 
     490"    LDREQ   R0, =0x7A760 \n" 
     491"    MOVEQ   R5, #2 \n" 
     492"    STREQ   R0, [R6, #0xAC] \n" 
     493"    BEQ     loc_FF305864 \n" 
     494"    CMP     R0, #0x500 \n" 
     495"    LDREQ   R0, =0x11DA50 \n" 
     496"    LDR     R1, =0x1C20 \n"  // --> Patched. Old value = 0x707. 2hrs 
     497"    MOVEQ   R5, #4 \n" 
     498"    STREQ   R0, [R6, #0xAC] \n" 
     499"    BEQ     loc_FF305864 \n" 
     500"    CMP     R0, #0x780 \n" 
     501"    BNE     loc_FF30586C \n" 
     502//"  MOV     R0, #0x200000 \n" 
     503"    MOV     R0, #2097152 \n" // 10 mins 
     504"    MOV     R5, #5 \n" 
     505"    STR     R0, [R6, #0xAC] \n" 
     506 
    473507"loc_FF305864:\n" 
    474                 "STR    R1, [R6, #0x4C]\n" 
    475                 "B  loc_FF305878\n" 
     508"    STR     R1, [R6, #0x4C] \n" 
     509"    B       loc_FF305878 \n" 
     510 
    476511"loc_FF30586C:\n" 
    477                 "LDR    R1, =0x383\n" 
    478                 "LDR    R0, =0xFF3042EC\n" 
    479                 "BL sub_FF00EC88\n" 
     512"    LDR     R1, =0x383 \n" 
     513"    LDR     R0, =0xFF3042EC \n" 
     514"    BL      _DebugAssert \n" 
     515 
    480516"loc_FF305878:\n" 
    481                 "LDR    R0, [R6, #0x4C]\n" 
    482                 "LDR    R1, =0x138D\n" 
    483                 "MUL    R0, R7, R0\n" 
    484                 "BL sub_FF3B62EC\n" 
    485                 "ADD    R0, R0, #1\n" 
    486                 "ADD    R0, R0, R0, LSL #2\n" 
    487                 "STR    R0, [R6, #0x48]\n" 
    488                 "LDR    R8, [R4, #8]\n" 
    489                 "CMP    R8, #2\n" 
    490                 "CMPNE  R8, #3\n" 
    491                 "BNE    loc_FF3058D0\n" 
    492                 "RSB    R0, R7, R7, LSL #4\n" 
    493                 "LDR    R1, =0x3E9\n" 
    494                 "MOV    R0, R0, LSL #1\n" 
    495                 "STR    R11, [R6, #0x4C]\n" 
    496                 "BL sub_FF3B62EC\n" 
    497                 "LDR    R1, [R6, #0xE0]\n" 
    498                 "MOV    R7, R1\n" 
    499                 "BL sub_FF3B62EC\n" 
    500                 "ADD    R0, R0, #1\n" 
    501                 "MUL    R0, R7, R0\n" 
    502                 "STR    R0, [R6, #0x48]\n" 
     517"    LDR     R0, [R6, #0x4C] \n" 
     518"    LDR     R1, =0x138D \n" 
     519"    MUL     R0, R7, R0 \n" 
     520"    BL      sub_FF3B62EC \n" 
     521"    ADD     R0, R0, #1 \n" 
     522"    ADD     R0, R0, R0, LSL#2 \n" 
     523"    STR     R0, [R6, #0x48] \n" 
     524"    LDR     R8, [R4, #8] \n" 
     525"    CMP     R8, #2 \n" 
     526"    CMPNE   R8, #3 \n" 
     527"    BNE     loc_FF3058D0 \n" 
     528"    RSB     R0, R7, R7, LSL#4 \n" 
     529"    LDR     R1, =0x3E9 \n" 
     530"    MOV     R0, R0, LSL#1 \n" 
     531"    STR     R11, [R6, #0x4C] \n" 
     532"    BL      sub_FF3B62EC \n" 
     533"    LDR     R1, [R6, #0xE0] \n" 
     534"    MOV     R7, R1 \n" 
     535"    BL      sub_FF3B62EC \n" 
     536"    ADD     R0, R0, #1 \n" 
     537"    MUL     R0, R7, R0 \n" 
     538"    STR     R0, [R6, #0x48] \n" 
     539 
    503540"loc_FF3058D0:\n" 
    504                 "LDR    R0, [R4, #0xC]\n" 
    505                 "LDR    R7, [R10, #0xC]\n" 
    506                 "ADDS   R1, R0, #0\n" 
    507                 "MOV    R0, R7, LSR #1\n" 
    508                 "STR    R7, [R6, #0x94]\n" 
    509                 "STR    R0, [R6, #0x98]\n" 
    510                 "ADD    R0, R9, #3\n" 
    511                 "BIC    R0, R0, #3\n" 
    512                 "STR    R0, [R6, #0xF4]\n" 
    513                 "LDR    R2, [R6, #0x48]\n" 
    514                 "MOVNE  R1, #1\n" 
    515                 "MOV    R2, R2, LSL #2\n" 
    516                 "ADD    R3, R0, R2\n" 
    517                 "STR    R3, [R6, #0xF8]\n" 
    518                 "LDRH   R12, [R6, #4]\n" 
    519                 "LDR    R0, [SP, #4]\n" 
    520                 "ADD    R2, R2, R3\n" 
    521                 "CMP    R12, #0\n" 
    522                 "ADD    R0, R0, R9\n" 
    523                 "BEQ    loc_FF305A48\n" 
    524                 "STR    R2, [R6, #0xFC]\n" 
    525                 "LDR    R3, [R6, #0x4C]\n" 
    526                 "LDR    R9, =0x11D628\n" 
    527                 "ADD    R2, R2, R3, LSL #3\n" 
    528                 "ADD    R2, R2, #0x1F\n" 
    529                 "BIC    R2, R2, #0x1F\n" 
    530                 "STR    R2, [R6, #0x100]\n" 
    531                 "LDR    R3, [R6, #0xAC]\n" 
    532                 "LDR    R11, =0xE008\n" 
    533                 "ADD    R2, R2, R3\n" 
    534                 "ADD    R3, R2, #0x100000\n" 
    535                 "STR    R2, [R6, #0x78]\n" 
    536                 "SUB    R0, R0, R3\n" 
    537                 "RSB    R2, R7, #0\n" 
    538                 "ADD    R0, R0, R2, LSL #1\n" 
    539                 "MOV    R0, R0, LSR #0xF\n" 
    540                 "MOV    R0, R0, LSL #0xF\n" 
    541                 "STR    R3, [R6, #0x104]\n" 
    542                 "ADD    R8, R3, R0\n" 
    543                 "STR    R0, [R6, #0x110]\n" 
    544                 "STR    R8, [R6, #0x108]\n" 
    545                 "MOV    R2, #0\n" 
    546                 "ADD    R10, R9, #0x10\n" 
    547                 "STR    R8, [R6, #0x10C]\n" 
     541"    LDR     R0, [R4, #0xC] \n" 
     542"    LDR     R7, [R10, #0xC] \n" 
     543"    MOVS    R1, R0 \n" 
     544"    MOV     R0, R7, LSR#1 \n" 
     545"    STR     R7, [R6, #0x94] \n" 
     546"    STR     R0, [R6, #0x98] \n" 
     547"    ADD     R0, R9, #3 \n" 
     548"    BIC     R0, R0, #3 \n" 
     549"    STR     R0, [R6, #0xF4] \n" 
     550"    LDR     R2, [R6, #0x48] \n" 
     551"    MOVNE   R1, #1 \n" 
     552"    MOV     R2, R2, LSL#2 \n" 
     553"    ADD     R3, R0, R2 \n" 
     554"    STR     R3, [R6, #0xF8] \n" 
     555"    LDRH    R12, [R6, #4] \n" 
     556"    LDR     R0, [SP, #4] \n" 
     557"    ADD     R2, R2, R3 \n" 
     558"    CMP     R12, #0 \n" 
     559"    ADD     R0, R0, R9 \n" 
     560"    BEQ     loc_FF305A48 \n" 
     561"    STR     R2, [R6, #0xFC] \n" 
     562"    LDR     R3, [R6, #0x4C] \n" 
     563"    LDR     R9, =0x11D628 \n" 
     564"    ADD     R2, R2, R3, LSL#3 \n" 
     565"    ADD     R2, R2, #0x1F \n" 
     566"    BIC     R2, R2, #0x1F \n" 
     567"    STR     R2, [R6, #0x100] \n" 
     568"    LDR     R3, [R6, #0xAC] \n" 
     569"    LDR     R11, =0xE008 \n" 
     570"    ADD     R2, R2, R3 \n" 
     571"    ADD     R3, R2, #0x100000 \n" 
     572"    STR     R2, [R6, #0x78] \n" 
     573"    SUB     R0, R0, R3 \n" 
     574"    RSB     R2, R7, #0 \n" 
     575"    ADD     R0, R0, R2, LSL#1 \n" 
     576"    MOV     R0, R0, LSR#15 \n" 
     577"    MOV     R0, R0, LSL#15 \n" 
     578"    STR     R3, [R6, #0x104] \n" 
     579"    ADD     R8, R3, R0 \n" 
     580"    STR     R0, [R6, #0x110] \n" 
     581"    STR     R8, [R6, #0x108] \n" 
     582"    MOV     R2, #0 \n" 
     583"    ADD     R10, R9, #0x10 \n" 
     584"    STR     R8, [R6, #0x10C] \n" 
     585 
    548586"loc_FF305980:\n" 
    549                 "MLA    R0, R2, R7, R8\n" 
    550                 "ADD    R12, R9, R2, LSL #3\n" 
    551                 "ADD    R0, R0, #3\n" 
    552                 "BIC    R0, R0, #3\n" 
    553                 "STR    R0, [R11, R2, LSL #2]\n" 
    554                 "MOV    R0, #0\n" 
    555                 "ADD    R6, R10, R2, LSL #3\n" 
     587"    MLA     R0, R2, R7, R8 \n" 
     588"    ADD     R12, R9, R2, LSL#3 \n" 
     589"    ADD     R0, R0, #3 \n" 
     590"    BIC     R0, R0, #3 \n" 
     591"    STR     R0, [R11, R2, LSL#2] \n" 
     592"    MOV     R0, #0 \n" 
     593"    ADD     R6, R10, R2, LSL#3 \n" 
     594 
    556595"loc_FF30599C:\n" 
    557                 "STR    R3, [R12, R0, LSL #2]\n" 
    558                 "STR    R3, [R6, R0, LSL #2]\n" 
    559                 "ADD    R0, R0, #1\n" 
    560                 "CMP    R0, #2\n" 
    561                 "BLT    loc_FF30599C\n" 
    562                 "ADD    R2, R2, #1\n" 
    563                 "CMP    R2, #2\n" 
    564                 "BLT    loc_FF305980\n" 
    565                 "LDRH   R3, [R4, #0x14]\n" 
    566                 "LDR    R2, [R4, #8]\n" 
    567                 "MOV    R0, R5\n" 
    568                 "BL sub_FF0DA840\n" 
    569                 "LDR    R1, =0xDE88\n" 
    570                 "LDR    R2, [R1, #0x94]\n" 
    571                 "ADD    R0, R0, R2\n" 
    572                 "STR    R0, [R1, #0x8C]\n" 
    573                 "LDMFD  SP!, {R0-R12,PC}\n" 
    574 //                "STRVSBT  R7, [R8], #-0x66D\n" 
    575 //                "ANDEQ    LR, R0, R0, LSR #0x20\n" 
     596"    STR     R3, [R12, R0, LSL#2] \n" 
     597"    STR     R3, [R6, R0, LSL#2] \n" 
     598"    ADD     R0, R0, #1 \n" 
     599"    CMP     R0, #2 \n" 
     600"    BLT     loc_FF30599C \n" 
     601"    ADD     R2, R2, #1 \n" 
     602"    CMP     R2, #2 \n" 
     603"    BLT     loc_FF305980 \n" 
     604"    LDRH    R3, [R4, #0x14] \n" 
     605"    LDR     R2, [R4, #8] \n" 
     606"    MOV     R0, R5 \n" 
     607"    BL      sub_FF0DA840 \n" 
     608"    LDR     R1, =0xDE88 \n" 
     609"    LDR     R2, [R1, #0x94] \n" 
     610"    ADD     R0, R0, R2 \n" 
     611"    STR     R0, [R1, #0x8C] \n" 
     612"    LDMFD   SP!, {R0-R12,PC} \n" 
     613//"  STRVSBT R7, [R8], #-0x66D \n" 
     614//"  ANDEQ   LR, R0, R0, LSR#0x20 \n" 
     615 
    576616"loc_FF305A48:\n" 
    577                 "ADD    R2, R2, #0x1F\n" 
    578                 "BIC    R2, R2, #0x1F\n" 
    579                 "STR    R2, [R6, #0x100]\n" 
    580                 "LDR    R3, [R6, #0xAC]\n" 
    581                 "ADD    R2, R2, R3\n" 
    582                 "SUB    R0, R0, R2\n" 
    583                 "MOV    R0, R0, LSR #0xF\n" 
    584                 "MOV    R0, R0, LSL #0xF\n" 
    585                 "STR    R2, [R6, #0x104]\n" 
    586                 "STR    R0, [R6, #0x110]\n" 
    587                 "ADD    R0, R0, R2\n" 
    588                 "STR    R0, [R6, #0x108]\n" 
    589                 "LDRH   R3, [R4, #0x14]\n" 
    590                 "MOV    R2, R8\n" 
    591                 "MOV    R0, R5\n" 
    592                 "BL sub_FF0DA840\n" 
    593                 "STR    R0, [R6, #0x8C]\n" 
    594                 "LDMFD  SP!, {R0-R12,PC}\n" 
    595     ); 
     617"    ADD     R2, R2, #0x1F \n" 
     618"    BIC     R2, R2, #0x1F \n" 
     619"    STR     R2, [R6, #0x100] \n" 
     620"    LDR     R3, [R6, #0xAC] \n" 
     621"    ADD     R2, R2, R3 \n" 
     622"    SUB     R0, R0, R2 \n" 
     623"    MOV     R0, R0, LSR#15 \n" 
     624"    MOV     R0, R0, LSL#15 \n" 
     625"    STR     R2, [R6, #0x104] \n" 
     626"    STR     R0, [R6, #0x110] \n" 
     627"    ADD     R0, R0, R2 \n" 
     628"    STR     R0, [R6, #0x108] \n" 
     629"    LDRH    R3, [R4, #0x14] \n" 
     630"    MOV     R2, R8 \n" 
     631"    MOV     R0, R5 \n" 
     632"    BL      sub_FF0DA840 \n" 
     633"    STR     R0, [R6, #0x8C] \n" 
     634"    LDMFD   SP!, {R0-R12,PC} \n" 
     635); 
    596636} 
    597  
    598 void __attribute__((naked,noinline)) sub_FF18D424_my(){ 
    599     asm volatile( 
    600 //"sub_FF18D424             \n" 
    601                 "STMFD  SP!, {R4-R11,LR}\n" 
    602                 "SUB    SP, SP, #0x64\n" 
    603                 "MOV    R9, #0\n" 
    604                 "LDR    R8, =0x85E0\n" 
    605                 "STR    R9, [SP, #0x54]\n" 
    606                 "STR    R9, [SP, #0x4C]\n" 
    607                 "STR    R9, [R8, #0xDC]\n" 
    608                 "STR    R9, [R8, #0xE0]\n" 
    609                 "STR    R9, [R8, #0xE4]\n" 
    610                 "MOV    R4, R0\n" 
    611                 "STR    R9, [R8, #0xE8]\n" 
    612                 "LDR    R0, [R8, #0x44]\n" 
    613                 "MOV    R7, R9\n" 
    614                 "CMP    R0, #3\n" 
    615                 "MOVEQ  R0, #4\n" 
    616                 "STREQ  R0, [R8, #0x44]\n" 
    617                 "LDR    R0, [R8, #0xD8]\n" 
    618                 "MOV    R5, #1\n" 
    619                 "MOV    R6, R9\n" 
    620                 "BLX    R0\n" 
    621                 "LDR    R0, [R8, #0x44]\n" 
    622                 "CMP    R0, #6\n" 
    623                 "BEQ    loc_FF18D494\n" 
    624                 "LDR    R1, [R8, #0xC]\n" 
    625                 "CMP    R1, #2\n" 
    626                 "BNE    loc_FF18D4BC\n" 
    627                 "CMP    R0, #5\n" 
    628                 "BEQ    loc_FF18D4CC\n" 
    629 "loc_FF18D494:\n" 
    630                 "LDR    R2, =0xFF18D2F8\n" 
    631                 "LDR    R1, =0xFF18D35C\n" 
    632                 "LDR    R0, =0xFF18D3C0\n" 
    633                 "MOV    R6, #1\n" 
    634                 "ADD    R3, SP, #0x34\n" 
    635                 "BL sub_FF0463EC\n" 
    636                 "LDR    R0, [R8, #0x44]\n" 
    637                 "CMP    R0, #4\n" 
    638                 "MOVNE  R5, #0\n" 
    639                 "B  loc_FF18D4DC\n" 
    640 "loc_FF18D4BC:\n" 
    641                 "CMP    R0, #4\n" 
    642                 "BEQ    loc_FF18D4DC\n" 
    643                 "CMP    R1, #2\n" 
    644                 "BNE    loc_FF18D4D4\n" 
    645 "loc_FF18D4CC:\n" 
    646                 "MOV    R0, #0\n" 
    647                 "BL sub_FF0463F8\n" 
    648 "loc_FF18D4D4:\n" 
    649                 "ADD    SP, SP, #0x64\n" 
    650                 "LDMFD  SP!, {R4-R11,PC}\n" 
    651 "loc_FF18D4DC:\n" 
    652                 "LDRH   R0, [R8, #6]\n" 
    653                 "CMP    R0, #3\n" 
    654                 "BNE    loc_FF18D4FC\n" 
    655                 "LDR    R0, [R8, #0x6C]\n" 
    656                 "LDR    R1, [R8, #0xEC]\n" 
    657                 "BL sub_FF3B62EC\n" 
    658                 "CMP    R1, #0\n" 
    659                 "MOVNE  R5, #0\n" 
    660 "loc_FF18D4FC:\n" 
    661                 "LDR    R0, [R8, #0x44]\n" 
    662                 "CMP    R0, #6\n" 
    663                 "CMPNE  R0, #1\n" 
    664                 "CMPNE  R0, #3\n" 
    665                 "BNE    loc_FF18D540\n" 
    666                 "CMP    R6, #1\n" 
    667                 "CMPEQ  R5, #0\n" 
    668                 "BNE    loc_FF18D540\n" 
    669                 "BL sub_FF0463F0\n" 
    670                 "LDR    R0, [R8, #0x18]\n" 
    671                 "MOV    R1, #0x3E8\n" 
    672                 "BL sub_FF02B5A0\n" 
    673                 "CMP    R0, #9\n" 
    674                 "BNE    loc_FF18D948\n" 
    675                 "MOV    R0, #0x90000\n" 
    676                 "BL sub_FF093424\n" 
    677                 "B  loc_FF18D4D4\n" 
    678 "loc_FF18D540:\n" 
    679                 "CMP    R5, #1\n" 
    680                 "MOV    R10, #1\n" 
    681                 "BNE    loc_FF18D568\n" 
    682                 "ADD    R3, SP, #0x4C\n" 
    683                 "ADD    R2, SP, #0x50\n" 
    684                 "ADD    R1, SP, #0x54\n" 
    685                 "ADD    R0, SP, #0x58\n" 
    686                 "BL sub_FF306EB0\n" 
    687                 "MOVS   R9, R0\n" 
    688                 "BNE    loc_FF18D584\n" 
    689 "loc_FF18D568:\n" 
    690                 "LDR    R0, [R8, #0x34]\n" 
    691                 "CMP    R0, #1\n" 
    692                 "BNE    loc_FF18D6C4\n" 
    693                 "LDR    R0, [R8, #0x6C]\n" 
    694                 "LDR    R1, [R8, #0x48]\n" 
    695                 "CMP    R0, R1\n" 
    696                 "BCC    loc_FF18D6C4\n" 
    697 "loc_FF18D584:\n" 
    698                 "MOV    R0, R9\n" 
    699                 "BL sub_FF18C8B0\n" 
    700                 "LDR    R0, [R8, #0xC]\n" 
    701                 "CMP    R0, #2\n" 
    702                 "BNE    loc_FF18D5F4\n" 
    703                 "LDR    R0, =0xFF18D2EC\n" 
    704                 "MOV    R1, #0\n" 
    705                 "BL sub_FF2B6FD4\n" 
    706                 "LDR    R2, [R8, #0x64]\n" 
    707                 "ADD    R3, SP, #0x5C\n" 
    708                 "STRD   R2, [SP, #0x28]\n" 
    709                 "MOV    R2, #0x18\n" 
    710                 "ADD    R1, SP, #0x34\n" 
    711                 "ADD    R0, SP, #0x10\n" 
    712                 "BL sub_FF3B5FD0\n" 
    713                 "LDR    R1, [R8, #0x84]\n" 
    714                 "LDR    R2, [R8, #0x88]\n" 
    715                 "MVN    R3, #1\n" 
    716                 "ADD    R0, SP, #0x60\n" 
    717                 "STMEA  SP, {R0-R3}\n" 
    718                 "MOV    R3, #0\n" 
    719                 "LDR    R0, =0xC6A54\n" 
    720                 "MOV    R2, R3\n" 
    721                 "MOV    R1, #0x40\n" 
    722                 "BL sub_FF2B6F20\n" 
    723                 "B  loc_FF18D64C\n" 
    724 "loc_FF18D5EC:\n" 
    725                 "MOV    R1, #1\n" 
    726                 "B  loc_FF18D8D8\n" 
    727 "loc_FF18D5F4:\n" 
    728                 "BL sub_FF18E150\n" 
    729                 "LDR    R2, [R8, #0x64]\n" 
    730                 "ADD    R3, SP, #0x5C\n" 
    731                 "MVN    R1, #1\n" 
    732                 "MOV    R0, #0\n" 
    733                 "ADD    R5, SP, #0x1C\n" 
    734                 "STMIA  R5, {R0-R3}\n" 
    735                 "LDR    R3, [R4, #0x1C]\n" 
    736                 "LDR    R1, [R8, #0x84]\n" 
    737                 "LDR    R2, [R8, #0x88]\n" 
    738                 "ADD    R0, SP, #0x60\n" 
    739                 "ADD    R4, SP, #0xC\n" 
    740                 "STMIA  R4, {R0-R3}\n" 
    741                 "MOV    R3, #0\n" 
    742                 "MOV    R1, #0x40\n" 
    743                 "STMEA  SP, {R1,R3}\n" 
    744                 "MOV    R2, #0\n" 
    745                 "STR    R3, [SP, #8]\n" 
    746                 "LDR    R3, =0xC6A54\n" 
    747                 "MOV    R1, R2\n" 
    748                 "MOV    R0, R2\n" 
    749                 "BL sub_FF2B587C\n" 
    750 "loc_FF18D64C:\n" 
    751                 "LDR    R0, [R8, #0x18]\n" 
    752                 "LDR    R1, [R8, #0x60]\n" 
    753                 "BL sub_FF02B5A0\n" 
    754                 "CMP    R0, #9\n" 
    755                 "BEQ    loc_FF18D5EC\n" 
    756                 "LDR    R0, [SP, #0x5C]\n" 
    757                 "CMP    R0, #0\n" 
    758                 "BEQ    loc_FF18D674\n" 
    759 "loc_FF18D66C:\n" 
    760                 "MOV    R1, #1\n" 
    761                 "B  loc_FF18D8F0\n" 
    762 "loc_FF18D674:\n" 
    763                 "LDR    R0, [R8, #0xC]\n" 
    764                 "MOV    R4, #5\n" 
    765                 "CMP    R0, #2\n" 
    766                 "MOV    R0, #1\n" 
    767                 "BNE    loc_FF18D6B0\n" 
    768                 "BL sub_FF2B6F94\n" 
    769                 "BL sub_FF2B6FBC\n" 
    770                 "MOV    R0, #0\n" 
    771                 "BL sub_FF0463F8\n" 
    772                 "BL sub_FF046408\n" 
    773                 "STR    R4, [R8, #0x44]\n" 
    774                 "BL sub_FF18E150\n" 
    775                 "BL sub_FF046464\n" 
    776                 "STR    R10, [R8, #0x44]\n" 
    777                 "B  loc_FF18D6BC\n" 
    778 "loc_FF18D6B0:\n" 
    779                 "BL sub_FF2B592C\n" 
    780                 "BL sub_FF2B5978\n" 
    781                 "STR    R4, [R8, #0x44]\n" 
    782 "loc_FF18D6BC:\n" 
    783                 "STR    R7, [R8, #0x34]\n" 
    784                 "B  loc_FF18D4D4\n" 
    785 "loc_FF18D6C4:\n" 
    786                 "CMP    R5, #1\n" 
    787                 "BNE    loc_FF18D940\n" 
    788                 "STR    R10, [R8, #0x38]\n" 
    789                 "LDR    R0, [R8, #0x6C]\n" 
    790                 "LDR    R11, [R4, #0xC]\n" 
    791                 "CMP    R0, #0\n" 
    792                 "LDRNE  R9, [SP, #0x58]\n" 
    793                 "LDRNE  R10, [SP, #0x54]\n" 
    794                 "BNE    loc_FF18D810\n" 
    795                 "LDR    R0, [R8, #0xC]\n" 
    796                 "CMP    R0, #2\n" 
    797                 "BNE    loc_FF18D768\n" 
    798                 "LDR    R0, =0xFF18D2EC\n" 
    799                 "MOV    R1, #0\n" 
    800                 "BL sub_FF2B6FD4\n" 
    801                 "LDR    R2, [R8, #0x64]\n" 
    802                 "ADD    R3, SP, #0x5C\n" 
    803                 "STRD   R2, [SP, #0x28]\n" 
    804                 "MOV    R2, #0x18\n" 
    805                 "ADD    R1, SP, #0x34\n" 
    806                 "ADD    R0, SP, #0x10\n" 
    807                 "BL sub_FF3B5FD0\n" 
    808                 "LDR    R1, [R8, #0x84]\n" 
    809                 "LDR    R2, [R8, #0x88]\n" 
    810                 "MVN    R3, #0\n" 
    811                 "ADD    R0, SP, #0x60\n" 
    812                 "STMEA  SP, {R0-R3}\n" 
    813                 "LDR    R0, [SP, #0x58]\n" 
    814                 "LDR    R1, [SP, #0x54]\n" 
    815                 "LDR    R2, [SP, #0x50]\n" 
    816                 "LDR    R3, [SP, #0x4C]\n" 
    817                 "BL sub_FF2B6F20\n" 
    818                 "LDR    R0, [R8, #0x18]\n" 
    819                 "LDR    R1, [R8, #0x60]\n" 
    820                 "BL sub_FF02B5A0\n" 
    821                 "CMP    R0, #9\n" 
    822                 "BEQ    loc_FF18D5EC\n" 
    823                 "LDR    R0, =0xFF18C818\n" 
    824                 "MOV    R1, #0\n" 
    825                 "BL sub_FF2B6FD4\n" 
    826                 "B  loc_FF18D7D0\n" 
    827 "loc_FF18D768:\n" 
    828                 "LDR    R0, [R4, #0x20]\n" 
    829                 "LDR    R2, [R8, #0x64]\n" 
    830                 "ADD    R3, SP, #0x5C\n" 
    831                 "MVN    R1, #0\n" 
    832                 "ADD    R9, SP, #0x1C\n" 
    833                 "STMIA  R9, {R0-R3}\n" 
    834                 "LDR    R3, [R4, #0x1C]\n" 
    835                 "LDR    R1, [R8, #0x84]\n" 
    836                 "LDR    R2, [R8, #0x88]\n" 
    837                 "ADD    R0, SP, #0x60\n" 
    838                 "ADD    R9, SP, #0xC\n" 
    839                 "STMIA  R9, {R0-R3}\n" 
    840                 "LDR    R1, [SP, #0x50]\n" 
    841                 "LDR    R2, [SP, #0x54]\n" 
    842                 "LDR    R3, [SP, #0x4C]\n" 
    843                 "STMFA  SP, {R1,R3}\n" 
    844                 "STR    R2, [SP]\n" 
    845                 "LDMIB  R4, {R0,R1}\n" 
    846                 "LDR    R3, [SP, #0x58]\n" 
    847                 "MOV    R2, R11\n" 
    848                 "BL sub_FF2B587C\n" 
    849                 "LDR    R0, [R8, #0x18]\n" 
    850                 "LDR    R1, [R8, #0x60]\n" 
    851                 "BL sub_FF02B5A0\n" 
    852                 "CMP    R0, #9\n" 
    853                 "BEQ    loc_FF18D5EC\n" 
    854 "loc_FF18D7D0:\n" 
    855                 "LDR    R0, [SP, #0x5C]\n" 
    856                 "CMP    R0, #0\n" 
    857                 "BNE    loc_FF18D66C\n" 
    858                 "LDR    R0, [R8, #0xC]\n" 
    859                 "CMP    R0, #2\n" 
    860                 "MOV    R0, #1\n" 
    861                 "BNE    loc_FF18D7F4\n" 
    862                 "BL sub_FF2B6F94\n" 
    863                 "B  loc_FF18D7F8\n" 
    864 "loc_FF18D7F4:\n" 
    865                 "BL sub_FF2B592C\n" 
    866 "loc_FF18D7F8:\n" 
    867                 "STR    R7, [R8, #0xE8]\n" 
    868                 "LDR    R0, [SP, #0x60]\n" 
    869                 "LDR    R1, [SP, #0x58]\n" 
    870                 "ADD    R9, R1, R0\n" 
    871                 "LDR    R1, [SP, #0x54]\n" 
    872                 "SUB    R10, R1, R0\n" 
    873 "loc_FF18D810:\n" 
    874                 "LDR    R0, [R8, #0xC]\n" 
    875                 "LDR    R2, [R8, #0x64]\n" 
    876                 "CMP    R0, #2\n" 
    877                 "ADD    R3, SP, #0x5C\n" 
    878                 "BNE    loc_FF18D868\n" 
    879                 "STRD   R2, [SP, #0x28]\n" 
    880                 "MOV    R2, #0x18\n" 
    881                 "ADD    R1, SP, #0x34\n" 
    882                 "ADD    R0, SP, #0x10\n" 
    883                 "BL sub_FF3B5FD0\n" 
    884                 "LDR    R1, [R8, #0x84]\n" 
    885                 "LDR    R2, [R8, #0x88]\n" 
    886                 "LDR    R3, [R8, #0x68]\n" 
    887                 "ADD    R0, SP, #0x60\n" 
    888                 "STMEA  SP, {R0-R3}\n" 
    889                 "LDR    R2, [SP, #0x50]\n" 
    890                 "LDR    R3, [SP, #0x4C]\n" 
    891                 "MOV    R1, R10\n" 
    892                 "MOV    R0, R9\n" 
    893                 "BL sub_FF2B6F20\n" 
    894                 "BL sub_FF0463F0\n" 
    895                 "B  loc_FF18D8C0\n" 
    896 "loc_FF18D868:\n" 
    897                 "LDR    R1, [R8, #0x68]\n" 
    898                 "LDR    R0, [R4, #0x20]\n" 
    899                 "STR    R1, [SP, #0x20]\n" 
    900                 "STR    R0, [SP, #0x1C]\n" 
    901                 "STR    R2, [SP, #0x24]\n" 
    902                 "STR    R3, [SP, #0x28]\n" 
    903                 "LDR    R3, [R4, #0x1C]\n" 
    904                 "LDR    R1, [R8, #0x84]\n" 
    905                 "LDR    R2, [R8, #0x88]\n" 
    906                 "ADD    R0, SP, #0x60\n" 
    907                 "STR    R2, [SP, #0x14]\n" 
    908                 "LDR    R2, [SP, #0x50]\n" 
    909                 "STR    R1, [SP, #0x10]\n" 
    910                 "STR    R3, [SP, #0x18]\n" 
    911                 "LDR    R3, [SP, #0x4C]\n" 
    912                 "STR    R0, [SP, #0xC]\n" 
    913                 "STMFA  SP, {R2,R3}\n" 
    914                 "STR    R10, [SP]\n" 
    915                 "LDMIB  R4, {R0,R1}\n" 
    916                 "MOV    R3, R9\n" 
    917                 "MOV    R2, R11\n" 
    918                 "BL sub_FF2B587C\n" 
    919 "loc_FF18D8C0:\n" 
    920                 "LDR    R0, [R8, #0x18]\n" 
    921                 "LDR    R1, [R8, #0x60]\n" 
    922                 "BL sub_FF02B5A0\n" 
    923                 "CMP    R0, #9\n" 
    924                 "BNE    loc_FF18D8E0\n" 
    925                 "MOV    R1, #0\n" 
    926 "loc_FF18D8D8:\n" 
    927                 "MOV    R0, #0x90000\n" 
    928                 "B  loc_FF18D8F4\n" 
    929 "loc_FF18D8E0:\n" 
    930                 "LDR    R0, [SP, #0x5C]\n" 
    931                 "CMP    R0, #0\n" 
    932                 "BEQ    loc_FF18D8FC\n" 
    933                 "MOV    R1, #0\n" 
    934 "loc_FF18D8F0:\n" 
    935                 "MOV    R0, #0xA0000\n" 
    936 "loc_FF18D8F4:\n" 
    937                 "BL sub_FF18CC2C\n" 
    938                 "B  loc_FF18D4D4\n" 
    939 "loc_FF18D8FC:\n" 
    940                 "LDR    R0, [R8, #0xC]\n" 
    941                 "CMP    R0, #2\n" 
    942                 "MOV    R0, #0\n" 
    943                 "BNE    loc_FF18D914\n" 
    944                 "BL sub_FF2B6F94\n" 
    945                 "B  loc_FF18D918\n" 
    946 "loc_FF18D914:\n" 
    947                 "BL sub_FF2B592C\n" 
    948 "loc_FF18D918:\n" 
    949                 "LDR    R0, [SP, #0x58]\n" 
    950                 "LDR    R1, [SP, #0x60]\n" 
    951                 "BL sub_FF307144\n" 
    952                 "LDR    R0, [R8, #0x68]\n" 
    953                 "LDR    R3, =0x8668\n" 
    954                 "ADD    R1, R0, #1\n" 
    955                 "STR    R1, [R8, #0x68]\n" 
    956                 "LDR    R0, [SP, #0x60]\n" 
    957                 "SUB    R2, R3, #4\n" 
    958                 "BL sub_FF303550\n" 
    959 //PATCH BEGIN 
    960         "LDR    R0, =0x8664\n" 
    961         "BL     set_quality\n" 
    962 //PATCH END 
    963 "loc_FF18D940:\n" 
    964                 "CMP    R6, #1\n" 
    965                 "BNE    loc_FF18D954\n" 
    966 "loc_FF18D948:\n" 
    967                 "BL sub_FF0463F4\n" 
    968                 "MOV    R0, #1\n" 
    969                 "BL sub_FF0463F8\n" 
    970 "loc_FF18D954:\n" 
    971                 "CMP    R5, #1\n" 
    972                 "LDRNEH R0, [R8, #6]\n" 
    973                 "CMPNE  R0, #3\n" 
    974                 "BNE    loc_FF18D4D4\n" 
    975                 "LDR    R0, [R8, #0x6C]\n" 
    976                 "ADD    R0, R0, #1\n" 
    977                 "STR    R0, [R8, #0x6C]\n" 
    978                 "LDRH   R1, [R8, #6]\n" 
    979                 "CMP    R1, #3\n" 
    980                 "LDRNE  R1, [R8, #0x54]\n" 
    981                 "LDREQ  R1, =0x3E9\n" 
    982                 "MUL    R0, R1, R0\n" 
    983                 "LDRNE  R1, [R8, #0x50]\n" 
    984                 "LDREQ  R1, =0x1770\n" 
    985                 "BL sub_FF3B62EC\n" 
    986                 "MOV    R4, R0\n" 
    987                 "BL sub_FF3077D8\n" 
    988                 "LDR    R0, [R8, #0x8C]\n" 
    989                 "CMP    R0, R4\n" 
    990                 "BNE    loc_FF18D9B0\n" 
    991                 "LDR    R0, [R8, #0x3C]\n" 
    992                 "CMP    R0, #1\n" 
    993                 "BNE    loc_FF18D9C4\n" 
    994 "loc_FF18D9B0:\n" 
    995                 "LDR    R1, [R8, #0xBC]\n" 
    996                 "MOV    R0, R4\n" 
    997                 "BLX    R1\n" 
    998                 "STR    R4, [R8, #0x8C]\n" 
    999                 "STR    R7, [R8, #0x3C]\n" 
    1000 "loc_FF18D9C4:\n" 
    1001                 "STR    R7, [R8, #0x38]\n" 
    1002                 "B  loc_FF18D4D4\n" 
    1003  
    1004 // "End of function sub_FF18D424\n" 
    1005     ); 
    1006 } 
  • trunk/platform/sx230hs/sub/101b/stubs_auto.S

    r1675 r3111  
    44#include "stubs_asm.h" 
    55 
     6STUB(FF00033C) 
    67STUB(FF000358) 
    78STUB(FF000B28) 
     
    4546STUB(FF025C30) 
    4647STUB(FF0263C0) 
     48STUB(FF027568) 
    4749STUB(FF0282DC) 
    4850STUB(FF02837C) 
     
    5153STUB(FF02AEF0) 
    5254STUB(FF02B184) 
    53 STUB(FF02B5A0) 
     55STUB(FF02B3C8) 
    5456STUB(FF02B74C) 
    5557STUB(FF02B91C) 
     
    7072STUB(FF02E6A0) 
    7173STUB(FF0453E0) 
    72 STUB(FF0463EC) 
    73 STUB(FF0463F0) 
    74 STUB(FF0463F4) 
    75 STUB(FF0463F8) 
    76 STUB(FF046408) 
    77 STUB(FF046464) 
    7874STUB(FF057D30) 
    7975STUB(FF057D4C) 
    8076STUB(FF05D07C) 
     77STUB(FF06A680) 
     78STUB(FF06A6E8) 
     79STUB(FF06C558) 
    8180STUB(FF07618C) 
    8281STUB(FF0768E4) 
     
    118117STUB(FF08C7B8) 
    119118STUB(FF090CD4) 
    120 STUB(FF093424) 
    121119STUB(FF0B24D0) 
    122120STUB(FF0B2760) 
     
    174172STUB(FF18C12C) 
    175173STUB(FF18C418) 
    176 STUB(FF18C8B0) 
    177 STUB(FF18CC2C) 
    178174STUB(FF18D008) 
    179175STUB(FF18E078) 
    180 STUB(FF18E150) 
    181176STUB(FF191970) 
    182177STUB(FF191B84) 
     
    193188STUB(FF192574) 
    194189STUB(FF1926EC) 
     190STUB(FF192764) 
    195191STUB(FF192834) 
    196192STUB(FF192864) 
     
    209205STUB(FF2B0A24) 
    210206STUB(FF2B5250) 
    211 STUB(FF2B587C) 
    212 STUB(FF2B592C) 
    213 STUB(FF2B5978) 
    214207STUB(FF2B599C) 
    215208STUB(FF2B6AC0) 
    216 STUB(FF2B6F20) 
    217 STUB(FF2B6F94) 
    218 STUB(FF2B6FBC) 
    219209STUB(FF2B6FD4) 
    220210STUB(FF2B6FE8) 
    221211STUB(FF2B7078) 
     212STUB(FF2E4DFC) 
     213STUB(FF2E4F3C) 
     214STUB(FF2E4F74) 
     215STUB(FF2E4F84) 
     216STUB(FF2E538C) 
     217STUB(FF2E5464) 
    222218STUB(FF303404) 
    223 STUB(FF303550) 
    224219STUB(FF3056D8) 
    225220STUB(FF305AE8) 
    226221STUB(FF306C04) 
    227222STUB(FF306D88) 
    228 STUB(FF306EB0) 
    229 STUB(FF307144) 
    230 STUB(FF3077D8) 
    231223STUB(FF30FD40) 
    232224STUB(FF310100) 
    233225STUB(FF3B5DE8) 
    234 STUB(FF3B5FD0) 
    235226STUB(FF3B60B4) 
    236227STUB(FF3B62EC) 
  • trunk/platform/sx230hs/sub/101b/stubs_entry.S

    r3102 r3111  
    2323// Check of modemap from 'platform/CAMERA/shooting.c': 
    2424// Firmware modemap table found @ff3232b8 -> ff4957e0 
    25 // Mode 16936 in firmware but not in current modemap 
    26 // Mode 16938 in firmware but not in current modemap 
     25// No problems found with modemap table. 
    2726 
    2827// Values below can be overridden in 'stubs_min.S': 
Note: See TracChangeset for help on using the changeset viewer.