CHDK_DE Vorschauversion  Trunk Rev. 5429
 Alle Datenstrukturen Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Makrodefinitionen
movie_rec.c-Dateireferenz
#include "conf.h"
+ Include-Abhängigkeitsdiagramm für movie_rec.c:

gehe zum Quellcode dieser Datei

Funktionen

void change_video_tables (int a, int b)
 
void set_quality (int *x)
 
void __attribute__ ((naked, noinline))
 *-------------------------------------------------------------------— Mehr ...
 

Dokumentation der Funktionen

void __attribute__ ( (naked, noinline)  )

*-------------------------------------------------------------------—

!!

Definiert in Zeile 13 der Datei movie_rec.c.

13  {
14 // FF18676C
15  asm volatile (
16  " STMFD SP!, {R2-R10,LR} \n"
17  " LDR R6, =0xFF1854DC \n" // diff
18  " LDR R7, =0xFF1861D8 \n" // diff
19  " LDR R4, =0x6CC0 \n"
20  " LDR R9, =0x6D6 \n"
21  " LDR R10, =0x2710 \n"
22  " MOV R8, #1 \n"
23  " MOV R5, #0 \n"
24  "loc_FF18678C:\n" // diff
25  " LDR R0, [R4, #0x24] \n"
26  " MOV R2, #0 \n"
27  " ADD R1, SP, #4 \n"
28  " BL sub_FF02B314 \n"
29  " LDR R0, [R4, #0x2C] \n"
30  " CMP R0, #0 \n"
31  " LDRNE R0, [R4, #0xC] \n"
32  " CMPNE R0, #2 \n"
33  " LDRNE R0, [R4, #0x44] \n"
34  " CMPNE R0, #6 \n"
35  " BNE loc_FF1868C8 \n" // diff
36  " LDR R0, [SP, #4] \n"
37  " LDR R1, [R0] \n"
38  " SUB R1, R1, #2 \n"
39  " CMP R1, #0xD \n"
40  " ADDCC PC, PC, R1, LSL #2 \n"
41  " B loc_FF1868C8 \n" // diff until next loc
42  " B loc_FF186868 \n"
43  " B loc_FF18688C \n"
44  " B loc_FF18689C \n"
45  " B loc_FF1868A4 \n"
46  " B loc_FF1868AC \n"
47  " B loc_FF1868B4 \n"
48  " B loc_FF186870 \n"
49  " B loc_FF1868BC \n"
50  " B loc_FF18687C \n"
51  " B loc_FF1868C8 \n"
52  " B loc_FF1868C4 \n"
53  " B loc_FF186834 \n"
54  " B loc_FF186804 \n"
55  "loc_FF186804:\n" // jump table entry 12
56  " STR R5, [R4, #0x40] \n"
57  " STR R5, [R4, #0x30] \n"
58  " STR R5, [R4, #0x34] \n"
59  " STRH R5, [R4, #6] \n"
60  " STR R6, [R4, #0xD8] \n"
61  " STR R7, [R4, #0xF4] \n"
62  " LDR R0, [R4, #0xC] \n"
63  " ADD R0, R0, #1 \n"
64  " STR R0, [R4, #0xC] \n"
65  " MOV R0, #6 \n"
66  " STR R0, [R4, #0x44] \n"
67  " B loc_FF186854 \n" //diff
68  "loc_FF186834:\n" // jump table 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_FF186854:\n"
78  " LDR R2, =0xFF184A84 \n"
79  " LDR R1, =0xB1A28 \n"
80  " LDR R0, =0xFF184B98 \n"
81  " BL sub_FF045B24 \n"
82  " B loc_FF1868C8 \n"
83  "loc_FF186868:\n" // jump table entry
84 //begin patch
85  //" BL sub_FF185DBC \n" //original
86  " BL movie_time\n" //patched
87 "label_A:\n"
88 //end patch
89  " B loc_FF1868C8 \n"
90  "loc_FF186870:\n" // jump table entry 6
91  " LDR R1, [R4, #0xF4] \n"
92  " BLX R1 \n"
93  " LDR R0, =0x6D48-4 \n" // added - found at FF1866A4 in 100b
94  " BL set_quality \n" // added
95  " B loc_FF1868C8 \n" // diff
96  "loc_FF18687C:\n" // jump table entry 8
97  " LDR R1, [R0, #0x18] \n"
98  " LDR R0, [R0, #4] \n"
99  " BL sub_FF2E47C0 \n" // diff
100  " B loc_FF1868C8 \n"
101  "loc_FF18688C:\n" // jump table entry 1
102  " LDR R0, [R4, #0x44] \n"
103  " CMP R0, #5 \n"
104  " STRNE R8, [R4, #0x34] \n"
105  " B loc_FF1868C8 \n"
106  "loc_FF18689C:\n" // jump table entry 2
107  " BL sub_FF185150 \n"
108  " B loc_FF1868C8 \n"
109  "loc_FF1868A4:\n" // jump table entry 3
110  " BL sub_FF184E48 \n"
111  " B loc_FF1868C8 \n"
112  "loc_FF1868AC:\n" // jump table entry 4
113  " BL sub_FF184BF0 \n"
114  " B loc_FF1868C8 \n"
115  "loc_FF1868B4:\n" // jump table entry 5
116  " BL sub_FF184810 \n"
117  " B loc_FF1868C8 \n"
118  "loc_FF1868BC:\n" // jump table entry 7
119  " BL sub_FF184790 \n"
120  " B loc_FF1868C8 \n"
121  "loc_FF1868C4:\n" // jump table entry 10
122  " BL sub_FF186E40 \n"
123  "loc_FF1868C8:\n" // jump table default entry & 9
124  " LDR R1, [SP, #4] \n"
125  " LDR R3, =0xFF1844E4 \n" // **"MovieRecorder.c"
126  " STR R5, [R1] \n"
127  " STR R9, [SP] \n"
128  " LDR R0, [R4, #0x28] \n"
129  " MOV R2, R10 \n"
130  " BL sub_FF02BC8C \n"
131  " B loc_FF18678C \n" // diff
132  );
133 }
void change_video_tables ( int  a,
int  b 
)

Definiert in Zeile 3 der Datei movie_rec.c.

3  {
4 }
void set_quality ( int *  x)

Definiert in Zeile 6 der Datei movie_rec.c.

6  { // -17 highest; +12 lowest
7  if (conf.video_mode) *x=12-((conf.video_quality-1)*(12+17)/(99-1));
8 }