CHDK_DE Vorschauversion  Trunk Rev. 5659
 Alle Datenstrukturen Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Makrodefinitionen
capt_seq.c-Dateireferenz
#include "lolevel.h"
#include "platform.h"
#include "core.h"
#include "conf.h"
#include "stdlib.h"
#include "../../../generic/capt_seq.c"
+ Include-Abhängigkeitsdiagramm für capt_seq.c:

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define NR_AUTO   (0)
 
#define PAUSE_FOR_FILE_COUNTER   150
 

Funktionen

void __attribute__ ((naked, noinline))
 

Variablen

static long * nrflag = (long*)(0x8748+0x00)
 

Makro-Dokumentation

#define NR_AUTO   (0)

Definiert in Zeile 8 der Datei capt_seq.c.

#define PAUSE_FOR_FILE_COUNTER   150

Definiert in Zeile 10 der Datei capt_seq.c.

Dokumentation der Funktionen

void __attribute__ ( (naked, noinline)  )

Definiert in Zeile 15 der Datei capt_seq.c.

15  {
16 asm volatile (
17  "STMFD SP!, {R3-R9,LR} \n"
18  "LDR R4, =0x36C2C \n"
19  "LDR R7, =0x2AEC \n"
20  "MOV R6, #0 \n"
21 "loc_FF86F100:\n"
22  "LDR R0, [R7, #4] \n"
23  "MOV R2, #0 \n"
24  "MOV R1, SP \n"
25  "BL sub_003F7218 \n" // RAM
26  "TST R0, #1 \n"
27  "BEQ loc_FF86F12C \n"
28  "LDR R1, =0x493 \n"
29  "LDR R0, =0xFF86EC5C \n" // "SsShootTask.c"
30  "BL _DebugAssert \n"
31  "BL _ExitTask \n"
32  "LDMFD SP!, {R3-R9,PC} \n"
33 "loc_FF86F12C:\n"
34  "LDR R0, [SP] \n"
35  "LDR R1, [R0] \n"
36  "CMP R1, #0x20 \n"
37  "ADDCC PC, PC, R1, LSL #2 \n"
38  "B loc_FF86F394 \n"
39  "B loc_FF86F1C0 \n"
40  "B loc_FF86F1D8 \n"
41  "B loc_FF86F248 \n"
42  "B loc_FF86F25C \n"
43  "B loc_FF86F254 \n"
44  "B loc_FF86F268 \n"
45  "B loc_FF86F270 \n"
46  "B loc_FF86F278 \n"
47  "B loc_FF86F294 \n"
48  "B loc_FF86F2C0 \n"
49  "B loc_FF86F2A0 \n"
50  "B loc_FF86F2AC \n"
51  "B loc_FF86F2B4 \n"
52  "B loc_FF86F2C8 \n"
53  "B loc_FF86F2D0 \n"
54  "B loc_FF86F2D8 \n"
55  "B loc_FF86F2E0 \n"
56  "B loc_FF86F2E8 \n"
57  "B loc_FF86F2F4 \n"
58  "B loc_FF86F2FC \n"
59  "B loc_FF86F304 \n"
60  "B loc_FF86F30C \n"
61  "B loc_FF86F314 \n"
62  "B loc_FF86F320 \n"
63  "B loc_FF86F328 \n"
64  "B loc_FF86F330 \n"
65  "B loc_FF86F338 \n"
66  "B loc_FF86F340 \n"
67  "B loc_FF86F34C \n"
68  "B loc_FF86F354 \n"
69  "B loc_FF86F360 \n"
70  "B loc_FF86F3A0 \n"
71 "loc_FF86F1C0:\n"
72  "BL shooting_expo_iso_override \n" // added
73  "BL sub_FF86F900 \n"
74  "BL shooting_expo_param_override \n" // added
75  "BL sub_FF86CF58 \n"
76 // "LDR R0, [R4, #0x28] \n"
77 // "CMP R0, #0 \n"
78 // "BLNE sub_FF961044 \n" // above 3 lines removed - redundant with added lines below
79  "MOV R0, #0 \n" // patch added
80  "STR R0, [R4,#0x28] \n" //fixes overrides behavior at short shutter press
81  "B loc_FF86F3A0 \n"
82 "loc_FF86F1D8:\n"
83  "LDR R5, [R0, #0x10] \n"
84  "LDR R0, [R4, #0x28] \n"
85  "CMP R0, #0 \n"
86  "BNE loc_FF86F220 \n"
87  "LDR R0, [R4, #0x8C] \n"
88  "TST R0, #0x30 \n"
89  "BLNE sub_FF870AA4 \n"
90  "BL sub_FF870784 \n"
91  "MOV R1, R5 \n"
92  "BL sub_FF8707DC \n"
93  "LDR R0, =0x10F \n"
94  "MOV R2, #4 \n"
95  "ADD R1, R5, #0x24 \n"
96  "BL _SetPropertyCase \n"
97  "MOV R2, #4 \n"
98  "ADD R1, R5, #0x28 \n"
99  "MOV R0, #0x2C \n"
100  "BL _SetPropertyCase \n"
101 "loc_FF86F220:\n"
102  "MOV R0, R5 \n"
103 // "BL sub_FF960F08 \n" //original
104  "BL sub_FF960F08_my \n" //patched
105  "BL capt_seq_hook_raw_here \n" // patch
106  "MOV R8, R0 \n"
107  "MOV R2, R5 \n"
108  "MOV R1, #1 \n"
109  "BL sub_FF86D408 \n"
110  "TST R8, #1 \n"
111  "MOVEQ R0, R5 \n"
112  "BLEQ sub_FF9608FC \n"
113  "B loc_FF86F3A0 \n"
114 "loc_FF86F248:\n"
115  "MOV R0, #1 \n"
116  "BL sub_FF86FBD0 \n"
117  "B loc_FF86F3A0 \n"
118 "loc_FF86F254:\n"
119  "BL sub_FF86F568 \n"
120  "B loc_FF86F260 \n"
121 "loc_FF86F25C:\n"
122  "BL sub_FF86F8E0 \n"
123 "loc_FF86F260:\n"
124  "STR R6, [R4, #0x28] \n"
125  "B loc_FF86F3A0 \n"
126 "loc_FF86F268:\n"
127  "BL sub_FF86F8E8 \n"
128  "B loc_FF86F3A0 \n"
129 "loc_FF86F270:\n"
130  "BL sub_FF86FAB8 \n"
131  "B loc_FF86F298 \n"
132 "loc_FF86F278:\n"
133  "LDR R5, [R0, #0x10] \n"
134  "MOV R0, R5 \n"
135  "BL sub_FF9610DC \n"
136  "MOV R2, R5 \n"
137  "MOV R1, #9 \n"
138  "BL sub_FF86D408 \n"
139  "B loc_FF86F3A0 \n"
140 "loc_FF86F294:\n"
141  "BL sub_FF86FB38 \n"
142 "loc_FF86F298:\n"
143  "BL sub_FF86CF58 \n"
144  "B loc_FF86F3A0 \n"
145 "loc_FF86F2A0:\n"
146  "LDR R0, [R4, #0x58] \n"
147  "BL sub_FF86FFA8 \n"
148  "B loc_FF86F3A0 \n"
149 "loc_FF86F2AC:\n"
150  "BL sub_FF870340 \n"
151  "B loc_FF86F3A0 \n"
152 "loc_FF86F2B4:\n"
153  "MOV R0, #0 \n"
154  "BL sub_FF8703A4 \n"
155  "B loc_FF86F3A0 \n"
156 "loc_FF86F2C0:\n"
157  "BL sub_FF86F8E0 \n"
158  "B loc_FF86F3A0 \n"
159 "loc_FF86F2C8:\n"
160  "BL sub_FF95FCA8 \n"
161  "B loc_FF86F3A0 \n"
162 "loc_FF86F2D0:\n"
163  "BL sub_FF95FF08 \n"
164  "B loc_FF86F3A0 \n"
165 "loc_FF86F2D8:\n"
166  "BL sub_FF95FFC0 \n"
167  "B loc_FF86F3A0 \n"
168 "loc_FF86F2E0:\n"
169  "BL sub_FF960094 \n"
170  "B loc_FF86F3A0 \n"
171 "loc_FF86F2E8:\n"
172  "MOV R0, #0 \n"
173  "BL sub_FF9602F4 \n"
174  "B loc_FF86F3A0 \n"
175 "loc_FF86F2F4:\n"
176  "BL sub_FF960464 \n"
177  "B loc_FF86F3A0 \n"
178 "loc_FF86F2FC:\n"
179  "BL sub_FF9604F8 \n"
180  "B loc_FF86F3A0 \n"
181 "loc_FF86F304:\n"
182  "BL sub_FF9605B4 \n"
183  "B loc_FF86F3A0 \n"
184 "loc_FF86F30C:\n"
185  "BL sub_FF86FD44 \n"
186  "B loc_FF86F3A0 \n"
187 "loc_FF86F314:\n"
188  "BL sub_FF86FDB0 \n"
189  "BL sub_FF832410 \n"
190  "B loc_FF86F3A0 \n"
191 "loc_FF86F320:\n"
192  "BL sub_FF960164 \n"
193  "B loc_FF86F3A0 \n"
194 "loc_FF86F328:\n"
195  "BL sub_FF9601A4 \n"
196  "B loc_FF86F3A0 \n"
197 "loc_FF86F330:\n"
198  "BL sub_FF871C80 \n"
199  "B loc_FF86F3A0 \n"
200 "loc_FF86F338:\n"
201  "BL sub_FF871CF4 \n"
202  "B loc_FF86F3A0 \n"
203 "loc_FF86F340:\n"
204  "LDR R0, [R0, #0xC] \n"
205  "BL sub_FF9606DC \n"
206  "B loc_FF86F3A0 \n"
207 "loc_FF86F34C:\n"
208  "BL sub_FF96074C \n"
209  "B loc_FF86F3A0 \n"
210 "loc_FF86F354:\n"
211  "BL sub_FF871D5C \n"
212  "BL sub_FF871D14 \n"
213  "B loc_FF86F3A0 \n"
214 "loc_FF86F360:\n"
215  "MOV R0, #1 \n"
216  "BL sub_FF9617F8 \n"
217  "MOV R0, #1 \n"
218  "BL sub_FF961920 \n"
219  "LDRH R0, [R4, #0x9C] \n"
220  "CMP R0, #4 \n"
221  "LDRNEH R0, [R4] \n"
222  "SUBNE R1, R0, #0x8200 \n"
223  "SUBNES R1, R1, #0x2E \n"
224  "BNE loc_FF86F3A0 \n"
225  "BL sub_FF871CF4 \n"
226  "BL sub_FF8721B8 \n"
227  "B loc_FF86F3A0 \n"
228 "loc_FF86F394:\n"
229  "LDR R1, =0x5F4 \n"
230  "LDR R0, =0xFF86EC5C \n" // "SsShootTask.c"
231  "BL _DebugAssert \n"
232 "loc_FF86F3A0:\n"
233  "LDR R0, [SP] \n"
234  "LDR R1, [R0, #4] \n"
235  "LDR R0, [R7] \n"
236  "BL sub_003FAC6C \n" // RAM
237  "LDR R5, [SP] \n"
238  "LDR R0, [R5, #8] \n"
239  "CMP R0, #0 \n"
240  "LDREQ R1, =0x117 \n"
241  "LDREQ R0, =0xFF86EC5C \n" // "SsShootTask.c"
242  "BLEQ _DebugAssert \n"
243  "STR R6, [R5, #8] \n"
244  "B loc_FF86F100 \n"
245  );
246 }

Variablen-Dokumentation

long* nrflag = (long*)(0x8748+0x00)
static

Definiert in Zeile 7 der Datei capt_seq.c.