| 1 | #include "conf.h" |
|---|
| 2 | |
|---|
| 3 | // from sx10 |
|---|
| 4 | void change_video_tables(int a, int b){ |
|---|
| 5 | } |
|---|
| 6 | |
|---|
| 7 | // from sx10, TODO untested, not hooked up yet |
|---|
| 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 R7, =0x2710\n" |
|---|
| 16 | " LDR R4, =0x53A0\n" |
|---|
| 17 | " MOV R6, #0\n" |
|---|
| 18 | " MOV R5, #1\n" |
|---|
| 19 | "loc_FF86215C:\n" // main loop |
|---|
| 20 | " LDR R0, [R4,#0x1C]\n" |
|---|
| 21 | " MOV R2, #0\n" |
|---|
| 22 | " ADD R1, SP, #4\n" |
|---|
| 23 | " BL sub_FF82746C\n" // LOCATION: KerQueue.c:0 |
|---|
| 24 | " LDR R0, [R4,#0x24]\n" |
|---|
| 25 | " CMP R0, #0\n" |
|---|
| 26 | " BNE loc_FF86222C\n" |
|---|
| 27 | " LDR R0, [SP,#4]\n" |
|---|
| 28 | " LDR R1, [R0]\n" |
|---|
| 29 | " SUB R1, R1, #2\n" |
|---|
| 30 | " CMP R1, #9\n" |
|---|
| 31 | " ADDLS PC, PC, R1,LSL#2\n" |
|---|
| 32 | " B loc_FF86222C\n" |
|---|
| 33 | " B loc_FF8621E0\n" |
|---|
| 34 | " B loc_FF862200\n" |
|---|
| 35 | " B loc_FF862210\n" |
|---|
| 36 | " B loc_FF862218\n" |
|---|
| 37 | " B loc_FF8621E8\n" |
|---|
| 38 | " B loc_FF862220\n" |
|---|
| 39 | " B loc_FF8621F0\n" |
|---|
| 40 | " B loc_FF86222C\n" |
|---|
| 41 | " B loc_FF862228\n" |
|---|
| 42 | " B loc_FF8621B8\n" |
|---|
| 43 | "loc_FF8621B8:\n" |
|---|
| 44 | // jumptable FF862188 entry 9 |
|---|
| 45 | " LDR R0, =0xFF861E30\n" // loc_ret |
|---|
| 46 | " STR R6, [R4,#0x38]\n" |
|---|
| 47 | " STR R0, [R4,#0xA0]\n" |
|---|
| 48 | " LDR R2, =0xFF8613B0\n" // sub_FF8613B0 |
|---|
| 49 | " LDR R1, =0x1AE50\n" |
|---|
| 50 | " LDR R0, =0xFF861494\n" //loc_FF861494 |
|---|
| 51 | " STR R6, [R4,#0x28]\n" |
|---|
| 52 | " BL sub_FF83BBFC\n" |
|---|
| 53 | " STR R5, [R4,#0x3C]\n" |
|---|
| 54 | " B loc_FF86222C\n" // -> jt 7, loop |
|---|
| 55 | "loc_FF8621E0:\n" |
|---|
| 56 | // jumptable FF862188 entry 0 |
|---|
| 57 | " BL unlock_optical_zoom\n" // + |
|---|
| 58 | " BL sub_FF861F28\n" // __MovieRecorder_c__0 |
|---|
| 59 | " B loc_FF86222C\n" |
|---|
| 60 | "loc_FF8621E8:\n" |
|---|
| 61 | // jumptable FF862188 entry 4 |
|---|
| 62 | " BL sub_FF861AA8\n" // -> _my for quality ? |
|---|
| 63 | " B loc_FF86222C\n" |
|---|
| 64 | "loc_FF8621F0:\n" |
|---|
| 65 | // jumptable FF862188 entry 6 |
|---|
| 66 | " LDR R1, [R0,#0x10]\n" |
|---|
| 67 | " LDR R0, [R0,#4]\n" |
|---|
| 68 | " BL sub_FF937EF8\n" // LOCATION: MovWriter.c:0 |
|---|
| 69 | " B loc_FF86222C\n" // -> jt 7, loop |
|---|
| 70 | "loc_FF862200:\n" |
|---|
| 71 | // jumptable FF862188 entry 1 |
|---|
| 72 | " LDR R0, [R4,#0x3C]\n" |
|---|
| 73 | " CMP R0, #5\n" |
|---|
| 74 | " STRNE R5, [R4,#0x2C]\n" |
|---|
| 75 | " B loc_FF86222C\n" // -> jt 7, loop |
|---|
| 76 | "loc_FF862210:\n" |
|---|
| 77 | // jumptable FF862188 entry 2 |
|---|
| 78 | " BL sub_FF8617F0\n" // __MovieRecorder_c__0 |
|---|
| 79 | " B loc_FF86222C\n" // -> jt 7, loop |
|---|
| 80 | "loc_FF862218:\n" |
|---|
| 81 | // jumptable FF862188 entry 3 |
|---|
| 82 | " BL sub_FF8614E0\n" // __MovieRecorder_c__0 |
|---|
| 83 | " B loc_FF86222C\n" // -> jt 7, loop |
|---|
| 84 | "loc_FF862220:\n" |
|---|
| 85 | // jumptable FF862188 entry 5 |
|---|
| 86 | " BL sub_FF86133C\n" //__MovieRecorder_c__100 |
|---|
| 87 | " B loc_FF86222C\n" // -> jt 7, loop |
|---|
| 88 | "loc_FF862228:\n" |
|---|
| 89 | // jumptable FF862188 entry 8 |
|---|
| 90 | " BL sub_FF862398\n" /// __MovieRecorder_c__100 |
|---|
| 91 | "loc_FF86222C:\n" |
|---|
| 92 | // jumptable FF862188 default entry |
|---|
| 93 | // jumptable FF862188 entry 7 |
|---|
| 94 | " LDR R1, [SP,#4]\n" |
|---|
| 95 | " MOV R3, #0x430\n" |
|---|
| 96 | " STR R6, [R1]\n" |
|---|
| 97 | " STR R3, [SP]\n" |
|---|
| 98 | " LDR R0, [R4,#0x20]\n" |
|---|
| 99 | " LDR R3, =0xFF86113C\n"// =aMovierecorder_ |
|---|
| 100 | " MOV R2, R7\n" |
|---|
| 101 | " BL sub_FF827DC0\n" |
|---|
| 102 | " B loc_FF86215C\n" // -> main loop |
|---|
| 103 | ); |
|---|
| 104 | } |
|---|
| 105 | |
|---|