source: trunk/platform/g1x/sub/100f/movie_rec.c @ 1810

Revision 1810, 3.7 KB checked in by philmoz, 13 months ago (diff)

Alpha version of CHDK for the G1X firmware 1.00f.

  • Property svn:eol-style set to native
Line 
1#include "conf.h"
2
3void change_video_tables(int a, int b){
4}
5
6void  set_quality(int *x){ // -17 highest; +12 lowest
7 if (conf.video_mode) *x=12-((conf.video_quality-1)*(12+17)/(99-1));
8}
9
10// @ 0xff1ca86c
11void __attribute__((naked,noinline)) movie_record_task(){
12
13 asm volatile(
14                "STMFD   SP!, {R2-R10,LR}\n"
15                "LDR     R6, =0xFF1C98BC\n" //nullsub_163
16                "LDR     R7, =0xFF1CA2D8\n" //sub_FF1CA2D8
17                "LDR     R4, =0x9D98\n"
18                "LDR     R9, =0x6D6\n"
19                "LDR     R10, =0x2710\n"
20                "MOV     R8, #1\n"
21                "MOV     R5, #0\n"
22"loc_FF1CA88C:\n"
23                "LDR     R0, [R4,#0x24]\n"
24                "MOV     R2, #0\n"
25                "ADD     R1, SP, #4\n"
26                "BL      sub_FF029EA8\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_FF1CA9C8\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_FF1CA9C8\n"
40                "B       loc_FF1CA968\n"
41                "B       loc_FF1CA98C\n"
42                "B       loc_FF1CA99C\n"
43                "B       loc_FF1CA9A4\n"
44                "B       loc_FF1CA9AC\n"
45                "B       loc_FF1CA9B4\n"
46                "B       loc_FF1CA970\n"
47                "B       loc_FF1CA9BC\n"
48                "B       loc_FF1CA97C\n"
49                "B       loc_FF1CA9C8\n"
50                "B       loc_FF1CA9C4\n"
51                "B       loc_FF1CA934\n"
52                "B       loc_FF1CA904\n"
53"loc_FF1CA904:\n"
54// jumptable FF1CA8C8 entry 12
55                "STR     R5, [R4,#0x40]\n"
56                "STR     R5, [R4,#0x30]\n"
57                "STR     R5, [R4,#0x34]\n"
58                "STRH    R5, [R4,#6]\n"
59                "STR     R6, [R4,#0xD8]\n"
60                "STR     R7, [R4,#0xF4]\n"
61                "LDR     R0, [R4,#0xC]\n"
62                "ADD     R0, R0, #1\n"
63                "STR     R0, [R4,#0xC]\n"
64                "MOV     R0, #6\n"
65                "STR     R0, [R4,#0x44]\n"
66                "B       loc_FF1CA954\n"
67"loc_FF1CA934:\n"
68// jumptable FF1CA8C8 entry 11
69                "STR     R5, [R4,#0x40]\n"
70                "STR     R5, [R4,#0x30]\n"
71                "STR     R6, [R4,#0xD8]\n"
72                "STR     R7, [R4,#0xF4]\n"
73                "LDR     R0, [R4,#0xC]\n"
74                "ADD     R0, R0, #1\n"
75                "STR     R0, [R4,#0xC]\n"
76                "STR     R8, [R4,#0x44]\n"
77"loc_FF1CA954:\n"
78                "LDR     R2, =0xFF1C8E50\n" //sub_FF1C8E50
79                "LDR     R1, =0xC4620\n"
80                "LDR     R0, =0xFF1C8F64\n" //sub_FF1C8F64
81                "BL      sub_FF046660\n"
82                "B       loc_FF1CA9C8\n"
83"loc_FF1CA968:\n"
84// jumptable FF1CA8C8 entry 0
85                "BL      sub_FF1C9DE8\n"
86                "B       loc_FF1CA9C8\n"
87"loc_FF1CA970:\n"
88// jumptable FF1CA8C8 entry 6
89                "LDR     R1, [R4,#0xF4]\n"
90                "BLX     R1\n"
91
92"                LDR     R0, =0x9E1C \n"         //added - Found @FF1CA7C8 & FF1CA7D8 (0x9E20 - 4)
93"                BL              set_quality \n"         //added
94
95                "B       loc_FF1CA9C8\n"
96"loc_FF1CA97C:\n"
97// jumptable FF1CA8C8 entry 8
98                "LDR     R1, [R0,#0x18]\n"
99                "LDR     R0, [R0,#4]\n"
100                "BL      sub_FF369B10\n"
101                "B       loc_FF1CA9C8\n"
102"loc_FF1CA98C:\n"
103// jumptable FF1CA8C8 entry 1
104                "LDR     R0, [R4,#0x44]\n"
105                "CMP     R0, #5\n"
106                "STRNE   R8, [R4,#0x34]\n"
107                "B       loc_FF1CA9C8\n"
108"loc_FF1CA99C:\n"
109// jumptable FF1CA8C8 entry 2
110                "BL      sub_FF1C9520\n"
111                "B       loc_FF1CA9C8\n"
112"loc_FF1CA9A4:\n"
113// jumptable FF1CA8C8 entry 3
114                "BL      sub_FF1C9218\n"
115                "B       loc_FF1CA9C8\n"
116"loc_FF1CA9AC:\n"
117// jumptable FF1CA8C8 entry 4
118                "BL      sub_FF1C8FBC\n"
119                "B       loc_FF1CA9C8\n"
120"loc_FF1CA9B4:\n"
121// jumptable FF1CA8C8 entry 5
122                "BL      sub_FF1C8BE4\n"
123                "B       loc_FF1CA9C8\n"
124"loc_FF1CA9BC:\n"
125// jumptable FF1CA8C8 entry 7
126                "BL      sub_FF1C8B64\n"
127                "B       loc_FF1CA9C8\n"
128"loc_FF1CA9C4:\n"
129// jumptable FF1CA8C8 entry 10
130                "BL      sub_FF1CAF04\n"
131"loc_FF1CA9C8:\n"
132// jumptable FF1CA8C8 default entry
133// jumptable FF1CA8C8 entry 9
134                "LDR     R1, [SP,#4]\n"
135                "LDR     R3, =0xFF1C8900\n" //aMovierecorder_ ; "MovieRecorder.c"
136                "STR     R5, [R1]\n"
137                "STR     R9, [SP]\n"
138                "LDR     R0, [R4,#0x28]\n"
139                "MOV     R2, R10\n"
140                "BL      sub_FF02A820\n"
141                "B       loc_FF1CA88C\n"
142 );
143}
144
Note: See TracBrowser for help on using the repository browser.