Changeset 938 for trunk/platform/d10/sub/100a/movie_rec.c
- Timestamp:
- 09/07/10 05:01:37 (3 years ago)
- File:
-
- 1 edited
-
trunk/platform/d10/sub/100a/movie_rec.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/platform/d10/sub/100a/movie_rec.c
r897 r938 1 #include "conf.h" 2 3 // from sx10 4 void change_video_tables(int a, int b){ 5 } 6 7 // from sx10, not sure if the values are right, seems to work 8 void set_quality(int *x){ // -17 highest; +12 lowest 9 if (conf.video_mode) *x=12-((conf.video_quality-1)*(12+17)/(99-1)); 10 } 11 12 void __attribute__((naked,noinline)) movie_record_task(){ 13 asm volatile( 14 " STMFD SP!, {R2-R8,LR}\n" 15 " LDR R8, =0x442\n" 16 " LDR R7, =0x2710\n" 17 " LDR R4, =0x5FA8\n" 18 " MOV R6, #0\n" 19 " MOV R5, #1\n" 20 "loc_FF92F5E0:\n" 21 " LDR R0, [R4,#0x18]\n" 22 " MOV R2, #0\n" 23 " ADD R1, SP, #4\n" 24 " BL sub_FF826C30\n" // KerQueue.c 0 25 " LDR R0, [R4,#0x20]\n" 26 " CMP R0, #0\n" 27 " BNE loc_FF92F6B0\n" 28 " LDR R0, [SP,#4]\n" 29 " LDR R1, [R0]\n" 30 " SUB R1, R1, #2\n" 31 " CMP R1, #9\n" 32 " ADDLS PC, PC, R1,LSL#2\n" 33 " B loc_FF92F6B0\n" 34 " B loc_FF92F664\n" 35 " B loc_FF92F684\n" 36 " B loc_FF92F694\n" 37 " B loc_FF92F69C\n" 38 " B loc_FF92F66C\n" 39 " B loc_FF92F6A4\n" 40 " B loc_FF92F674\n" 41 " B loc_FF92F6B0\n" 42 " B loc_FF92F6AC\n" 43 " B loc_FF92F63C\n" 44 "loc_FF92F63C:\n" 45 // jumptable FF92F60C entry 9 46 " LDR R0, =0xFF92F2F0\n" // locret 47 " STR R6, [R4,#0x34]\n" 48 " STR R0, [R4,#0x9C]\n" 49 " LDR R0, =0xFF92E96C\n" 50 " LDR R2, =0xFF92E888\n" 51 " LDR R1, =0x4B268\n" 52 " STR R6, [R4,#0x24]\n" 53 " BL sub_FF839668\n" 54 " STR R5, [R4,#0x38]\n" 55 " B loc_FF92F6B0\n" 56 "loc_FF92F664:\n" 57 // jumptable FF92F60C entry 0 58 " BL unlock_optical_zoom\n" // + 59 " BL sub_FF92F3E8\n" // MovieRecorder.c 0 60 " B loc_FF92F6B0\n" 61 "loc_FF92F66C:\n" 62 // jumptable FF92F60C entry 4 63 " BL sub_FF92EF94_my\n" // -> quality override 64 " B loc_FF92F6B0\n" 65 "loc_FF92F674:\n" 66 // jumptable FF92F60C entry 6 67 " LDR R1, [R0,#0x18]\n" 68 " LDR R0, [R0,#4]\n" 69 " BL sub_FFA42458\n" // MovWriter.c 0 70 " B loc_FF92F6B0\n" 71 "loc_FF92F684:\n" 72 // jumptable FF92F60C entry 1 73 " LDR R0, [R4,#0x38]\n" 74 " CMP R0, #5\n" 75 " STRNE R5, [R4,#0x28]\n" 76 " B loc_FF92F6B0\n" 77 "loc_FF92F694:\n" 78 // jumptable FF92F60C entry 2 79 " BL sub_FF92ECCC\n" // MovieRecorder.c 0 80 " B loc_FF92F6B0\n" 81 "loc_FF92F69C:\n" 82 // jumptable FF92F60C entry 3 83 " BL sub_FF92E9B8\n" // MovieRecorder.c 0 84 " B loc_FF92F6B0\n" 85 "loc_FF92F6A4:\n" 86 // jumptable FF92F60C entry 5 87 " BL sub_FF92E814\n" // MovieRecorder.c 100 88 " B loc_FF92F6B0\n" 89 "loc_FF92F6AC:\n" 90 // jumptable FF92F60C entry 8 91 " BL sub_FF92F818\n" // MovieRecorder.c 100 92 "loc_FF92F6B0:\n" 93 // jumptable FF92F60C default entry 94 // jumptable FF92F60C entry 7 95 " LDR R1, [SP,#4]\n" 96 " LDR R3, =0xFF92E678\n" // "MovieRecorder.c" 97 " STR R6, [R1]\n" 98 " STR R8, [SP]\n" 99 " LDR R0, [R4,#0x1C]\n" 100 " MOV R2, R7\n" 101 " BL sub_FF827584\n" 102 " B loc_FF92F5E0\n" 103 ); 104 } 105 106 void __attribute__((naked,noinline)) sub_FF92EF94_my(){ 107 asm volatile( 108 " STMFD SP!, {R4-R9,LR}\n" 109 " SUB SP, SP, #0x44\n" 110 " MOV R7, #0\n" 111 " LDR R6, =0x5FA8\n" 112 " MOV R4, R0\n" 113 " STR R7, [SP,#0x34]\n" 114 " STR R7, [SP,#0x2C]\n" 115 " LDR R0, [R6,#0x38]\n" 116 " MOV R8, #4\n" 117 " CMP R0, #3\n" 118 " STREQ R8, [R6,#0x38]\n" 119 " LDR R0, [R6,#0x9C]\n" 120 " BLX R0\n" 121 " LDR R0, [R6,#0x38]\n" 122 " CMP R0, #4\n" 123 " BNE loc_FF92F0E4\n" 124 " ADD R3, SP, #0x2C\n" 125 " ADD R2, SP, #0x30\n" 126 " ADD R1, SP, #0x34\n" 127 " ADD R0, SP, #0x38\n" 128 " BL sub_FFA424F4\n" // MovWriter.c 0 129 " CMP R0, #0\n" 130 " MOV R5, #1\n" 131 " BNE loc_FF92F010\n" 132 " LDR R1, [R6,#0x28]\n" 133 " CMP R1, #1\n" 134 " BNE loc_FF92F0F8\n" 135 " LDR R1, [R6,#0x4C]\n" 136 " LDR R2, [R6,#0x3C]\n" 137 " CMP R1, R2\n" 138 " BCC loc_FF92F0F8\n" 139 "loc_FF92F010:\n" 140 " CMP R0, #0x80000001\n" 141 " STREQ R8, [R6,#0x50]\n" 142 " BEQ loc_FF92F048\n" 143 " CMP R0, #0x80000003\n" 144 " STREQ R5, [R6,#0x50]\n" 145 " BEQ loc_FF92F048\n" 146 " CMP R0, #0x80000005\n" 147 " MOVEQ R0, #2\n" 148 " BEQ loc_FF92F044\n" 149 " CMP R0, #0x80000007\n" 150 " STRNE R7, [R6,#0x50]\n" 151 " BNE loc_FF92F048\n" 152 " MOV R0, #3\n" 153 "loc_FF92F044:\n" 154 " STR R0, [R6,#0x50]\n" 155 "loc_FF92F048:\n" 156 " LDR R0, =0x4B29C\n" 157 " LDR R0, [R0,#8]\n" 158 " CMP R0, #0\n" 159 " BEQ loc_FF92F060\n" 160 " BL sub_FF8486D8\n" 161 " B loc_FF92F064\n" 162 "loc_FF92F060:\n" 163 " BL sub_FF92E814\n" // MovieRecorder.c 100 164 "loc_FF92F064:\n" 165 " LDR R0, [R4,#0x1C]\n" 166 " LDR R1, [R4,#0x20]\n" 167 " ADD R3, SP, #0x3C\n" 168 " MVN R2, #1\n" 169 " ADD R7, SP, #0x18\n" 170 " STMIA R7, {R0-R3}\n" 171 " LDR R2, [R6,#0x64]\n" 172 " LDR R3, [R6,#0x68]\n" 173 " MOV R0, #0\n" 174 " ADD R1, SP, #0x40\n" 175 " ADD R7, SP, #8\n" 176 " STMIA R7, {R0-R3}\n" 177 " MOV R3, #0\n" 178 " MOV R2, #0x40\n" 179 " STRD R2, [SP]\n" 180 " LDMIB R4, {R0,R1}\n" 181 " LDR R3, =0x4B2B4\n" 182 " MOV R2, R9\n" 183 " BL sub_FFA05D9C\n" 184 " LDR R0, [R6,#0x10]\n" 185 " MOV R1, #0x3E8\n" 186 " BL sub_FF82704C\n" // TakeSemaphore 187 " CMP R0, #9\n" 188 " BEQ loc_FF92F17C\n" 189 " LDR R0, [SP,#0x3C]\n" 190 " CMP R0, #0\n" 191 " BNE loc_FF92F198\n" 192 " MOV R0, #1\n" 193 " BL sub_FFA05E44\n" 194 " BL sub_FFA05E80\n" 195 " MOV R0, #5\n" 196 " STR R0, [R6,#0x38]\n" 197 "loc_FF92F0E4:\n" 198 " ADD SP, SP, #0x44\n" 199 " LDMFD SP!, {R4-R9,PC}\n" 200 "loc_FF92F0EC:\n" 201 " BL sub_FF877FFC\n" // HardwareDefect 202 " MOV R0, #1\n" 203 " B loc_FF92F238\n" 204 "loc_FF92F0F8:\n" 205 " LDR R12, [SP,#0x34]\n" 206 " CMP R12, #0\n" 207 " BEQ loc_FF92F298\n" 208 " STR R5, [R6,#0x2C]\n" 209 " LDR R0, [R6,#0x4C]\n" 210 " LDR R8, [R4,#0xC]\n" 211 " CMP R0, #0\n" 212 " LDRNE LR, [SP,#0x38]\n" 213 " BNE loc_FF92F1C4\n" 214 " LDR R0, [R4,#0x1C]\n" 215 " LDR R1, [R4,#0x20]\n" 216 " ADD R3, SP, #0x3C\n" 217 " MVN R2, #0\n" 218 " ADD R9, SP, #0x18\n" 219 " STMIA R9, {R0-R3}\n" 220 " LDR R0, [SP,#0x2C]\n" 221 " LDR R2, [R6,#0x64]\n" 222 " LDR R3, [R6,#0x68]\n" 223 " ADD R1, SP, #0x40\n" 224 " ADD R9, SP, #8\n" 225 " STMIA R9, {R0-R3}\n" 226 " LDR R3, [SP,#0x30]\n" 227 " STR R12, [SP]\n" 228 " STR R3, [SP,#4]\n" 229 " LDMIB R4, {R0,R1}\n" 230 " LDR R3, [SP,#0x38]\n" 231 " MOV R2, R8\n" 232 " BL sub_FFA05D9C\n" 233 " LDR R0, [R6,#0x10]\n" 234 " MOV R1, #0x3E8\n" 235 " BL sub_FF82704C\n" // TakeSemaphore 236 " CMP R0, #9\n" 237 " BNE loc_FF92F18C\n" 238 "loc_FF92F17C:\n" 239 " BL sub_FFA429C0\n" 240 " MOV R0, #0x90000\n" 241 " STR R5, [R6,#0x38]\n" 242 " B loc_FF92F0EC\n" 243 "loc_FF92F18C:\n" 244 " LDR R0, [SP,#0x3C]\n" 245 " CMP R0, #0\n" 246 " BEQ loc_FF92F1A8\n" 247 "loc_FF92F198:\n" 248 " BL sub_FFA429C0\n" 249 " MOV R0, #0xA0000\n" 250 " STR R5, [R6,#0x38]\n" 251 " B loc_FF92F0EC\n" 252 "loc_FF92F1A8:\n" 253 " MOV R0, #1\n" 254 " BL sub_FFA05E44\n" 255 " LDR R0, [SP,#0x40]\n" 256 " LDR R1, [SP,#0x38]\n" 257 " ADD LR, R1, R0\n" 258 " LDR R1, [SP,#0x34]\n" 259 " SUB R12, R1, R0\n" 260 "loc_FF92F1C4:\n" 261 " LDR R0, [R4,#0x1C]\n" 262 " LDR R2, [R6,#0x48]\n" 263 " LDR R1, [R4,#0x20]\n" 264 " ADD R3, SP, #0x3C\n" 265 " ADD R9, SP, #0x18\n" 266 " STMIA R9, {R0-R3}\n" 267 " LDR R0, [SP,#0x2C]\n" 268 " LDR R2, [R6,#0x64]\n" 269 " LDR R3, [R6,#0x68]\n" 270 " ADD R1, SP, #0x40\n" 271 " ADD R9, SP, #8\n" 272 " STMIA R9, {R0-R3}\n" 273 " LDR R3, [SP,#0x30]\n" 274 " STR R12, [SP]\n" 275 " STR R3, [SP,#4]\n" 276 " LDMIB R4, {R0,R1}\n" 277 " MOV R3, LR\n" 278 " MOV R2, R8\n" 279 " BL sub_FFA05D9C\n" 280 " LDR R0, [R6,#0x10]\n" 281 " MOV R1, #0x3E8\n" 282 " BL sub_FF82704C\n" // TakeSemaphore 283 " CMP R0, #9\n" 284 " BNE loc_FF92F240\n" 285 " BL sub_FFA429C0\n" 286 " MOV R0, #0x90000\n" 287 " STR R5, [R6,#0x38]\n" 288 " BL sub_FF877FFC\n" // HardwareDefect 289 " MOV R0, #0\n" 290 "loc_FF92F238:\n" 291 " BL sub_FFA05E44\n" 292 " B loc_FF92F0E4\n" 293 "loc_FF92F240:\n" 294 " LDR R0, [SP,#0x3C]\n" 295 " CMP R0, #0\n" 296 " BEQ loc_FF92F260\n" 297 " BL sub_FFA429C0\n" 298 " MOV R0, #0xA0000\n" 299 " STR R5, [R6,#0x38]\n" 300 " BL sub_FF877FFC\n" // HardwareDefect 301 " B loc_FF92F0E4\n" 302 "loc_FF92F260:\n" 303 " MOV R0, #0\n" 304 " BL sub_FFA05E44\n" 305 " LDR R0, [SP,#0x38]\n" 306 " LDR R1, [SP,#0x40]\n" 307 " BL sub_FFA4271C\n" // MovWriter.c 0 308 " LDR R0, [R6,#0x48]\n" 309 " LDR R3, =0x6010\n" 310 " ADD R1, R0, #1\n" 311 " STR R1, [R6,#0x48]\n" 312 " STR R3, [SP]\n" 313 " LDR R0, [SP,#0x40]\n" 314 " SUB R3, R3, #4\n" 315 " MOV R2, #0xF\n" 316 " BL sub_FFA40A14\n" 317 " LDR R0, =0x6010-4\n" // + 318 " BL set_quality\n" // + 319 "loc_FF92F298:\n" 320 " LDR R0, [R6,#0x4C]\n" 321 " ADD R0, R0, #1\n" 322 " STR R0, [R6,#0x4C]\n" 323 " LDR R1, [R6,#0x74]\n" 324 " MUL R0, R1, R0\n" 325 " LDR R1, [R6,#0x70]\n" 326 " BL sub_FFACE280\n" 327 " MOV R4, R0\n" 328 " BL sub_FFA429F8\n" 329 " LDR R1, [R6,#0x6C]\n" 330 " CMP R1, R4\n" 331 " BNE loc_FF92F2D4\n" 332 " LDR R0, [R6,#0x30]\n" 333 " CMP R0, #1\n" 334 " BNE loc_FF92F2E8\n" 335 "loc_FF92F2D4:\n" 336 " LDR R1, [R6,#0x80]\n" 337 " MOV R0, R4\n" 338 " BLX R1\n" 339 " STR R4, [R6,#0x6C]\n" 340 " STR R7, [R6,#0x30]\n" 341 "loc_FF92F2E8:\n" 342 " STR R7, [R6,#0x2C]\n" 343 " B loc_FF92F0E4\n" 344 ); 345 }
Note: See TracChangeset
for help on using the changeset viewer.