source: trunk/platform/a630/sub/100c/capt_seq.c @ 514

Revision 514, 10.6 KB checked in by reyalp, 5 years ago (diff)

merged old-trunk 491:502. russian.lng not updated, since it is very out of date in this tree already.

RevLine 
[174]1#include "lolevel.h"
2#include "platform.h"
3#include "core.h"
4
5#define RAWDATA_AVAILABLE (1)
6#define RAWDATA_SAVED (2)
7
8#define NR_ON (2)
9#define NR_OFF (1)
10
11static long raw_save_stage;
12
[514]13int capt_seq_hook_raw_here(int x)
[174]14{
15    raw_save_stage = RAWDATA_AVAILABLE;
16    core_rawdata_available();
17    while (raw_save_stage != RAWDATA_SAVED){
18        _SleepTask(10);
19    }
[514]20  return x;
[174]21}
22
23void hook_raw_save_complete()
24{
25    raw_save_stage = RAWDATA_SAVED;
26}
27
28
29void capt_seq_hook_set_nr()
30{
31    long *nrflag = (long*)0x6208;
32
33    switch (core_get_noise_reduction_value()){
[176]34    case NOISE_REDUCTION_AUTO_CANON:
[174]35        // leave it alone
36        break;
[176]37    case NOISE_REDUCTION_OFF:
[174]38        *nrflag = 1;
39        break;
[176]40    case NOISE_REDUCTION_ON:
[174]41        *nrflag = 2;
42        break;
43    };
44}
45
[514]46void __attribute__((naked,noinline)) sub_FFD53158_my(){
47  asm volatile (
48                "STMFD   SP!, {R4,LR}\n"
49                "BL      sub_FFD52D08\n"
50                "LDR     R3, =0x91AA0\n"
51                "LDR     R2, [R3,#0x24]\n"
52                "CMP     R2, #0\n"
53                "MOV     R4, R0\n"
54                "MOV     R0, #0xC\n"
55                "BEQ     loc_FFD531A0\n"
56                "BL      sub_FFD5CA00\n"
57                "TST     R0, #1\n"
58                "BEQ     loc_FFD531A0\n"
59                "LDR     R3, [R4,#8]\n"
60                "LDR     R2, =0x61EC\n"
61                "ORR     R3, R3, #0x40000000\n"
62                "MOV     R1, #1\n"
63                "STR     R1, [R2]\n"
64                "STR     R3, [R4,#8]\n"
65                "LDMFD   SP!, {R4,PC}\n"
66"loc_FFD531A0:\n"
67                "BL      sub_FFD9385C\n"
68                "BL      sub_FFC14FE0\n"
69                "STR     R0, [R4,#0x14]\n"
70                "MOV     R0, R4\n"
71                "BL      sub_FFD56070_my\n"          //------------>
72                "BL      capt_seq_hook_raw_here\n"   // +
73                "TST     R0, #1\n"
74                "LDRNE   R3, =0x61EC\n"
75                "MOVNE   R2, #1\n"
76                "STRNE   R2, [R3]\n"
77                "LDMFD   SP!, {R4,PC}\n"
78  );
79}
[243]80
[174]81void __attribute__((naked,noinline)) sub_FFD56070_my(long p)
82{
83    asm volatile (
84                "STMFD   SP!, {R4,LR}\n"
85                "MOV     R4, R0\n"
86                "SUB     SP, SP, #0xC\n"
87                "BL      sub_FFD56A2C\n"
88                "LDR     R1, =0xFFFFFFFF\n"
89                "BL      sub_FFC103A4\n"
90                "LDR     R0, =0x122\n"
91                "ADD     R1, SP, #0x14-0x10\n"
92                "MOV     R2, #4\n"
93                "BL      sub_FFC14DE4\n"
94                "TST     R0, #1\n"
95                "BEQ     loc_FFD560B0\n"
96                "LDR     R0, =0xFFD55EEC\n"
97                "MOV     R1, #0x1BC\n"
98                "BL      sub_FFC03CF8\n"
99"loc_FFD560B0:\n"
100                "LDR     R3, =0x91AA0\n"
101                "LDR     R2, =0x91B60\n"
102                "LDR     R0, [R3,#0x80]\n"
103                "LDRSH   R1, [R2,#0xE]\n"
104                //"BL      nullsub_49\n"
105                "MOV     R0, R4\n"
106                "BL      sub_FFD55E70\n"
[416]107            "BL      wait_until_remote_button_is_released\n"
[174]108                "BL      capt_seq_hook_set_nr\n"
109                "LDR     R3, =0x620C\n"
110                "LDR     R0, [R3]\n"
111
112                "B       sub_FFD560D4\n"
113    );
114}
115
116void __attribute__((naked,noinline)) sub_FFD5307C_my(long p)
117{
118    asm volatile (
119                "STMFD   SP!, {R4,R5,LR}\n"
120                "LDR     R3, =0x91AA0\n"
121                "LDR     R5, [R0,#0xC]\n"
122                "LDR     R1, [R3,#0x24]\n"
123                "LDR     R2, [R5,#8]\n"
124                "CMP     R1, #0\n"
125                "ORR     R2, R2, #1\n"
126                "STR     R2, [R5,#8]\n"
127                "BNE     loc_FFD530D0\n"
128                "MOV     R0, #0xC\n"
129                "BL      sub_FFD5CA00\n"
130                "TST     R0, #1\n"
131                "BEQ     loc_FFD530D0\n"
132                "LDR     R3, [R5,#8]\n"
133                "MOV     R0, #1\n"
134                "ORR     R3, R3, #0x40000000\n"
135                "STR     R3, [R5,#8]\n"
136"loc_FFD530C0:\n"
137                "MOV     R2, R5\n"
138                "MOV     R1, #1\n"
139                "LDMFD   SP!, {R4,R5,LR}\n"
140                "B       sub_FFD518C4\n"
141"loc_FFD530D0:\n"
142                "LDR     R4, =0x91AA0\n"
143                "BL      sub_FFD53B6C\n"
144                "LDR     R3, [R4,#0x24]\n"
145                "CMP     R3, #0\n"
146                "BNE     loc_FFD53118\n"
147                "MOV     R0, R5\n"
148                "BL      sub_FFD54C10\n"
149                "TST     R0, #1\n"
150                "BNE     loc_FFD530C0\n"
151                "BL      sub_FFD9385C\n"
152                "BL      sub_FFC14FE0\n"
153                "STR     R0, [R5,#0x14]\n"
154                "MOV     R0, R5\n"
155                "BL      sub_FFD55F58\n"
156                "BL      sub_FFD568B8\n"
157                "MOV     R0, R5\n"
158                "BL      sub_FFD56070_my\n"
159                "BL      capt_seq_hook_raw_here\n"
160                "B       loc_FFD5312C\n"
161"loc_FFD53118:\n"
162                "LDR     R3, =0x61EC\n"
163                "LDR     R2, [R3]\n"
164                "CMP     R2, #0\n"
165                "MOVNE   R0, #0x1D\n"
166                "MOVEQ   R0, #0\n"
167"loc_FFD5312C:\n"
168                "MOV     R1, #1\n"
169                "MOV     R2, R5\n"
170                "BL      sub_FFD518C4\n"
171                "BL      sub_FFD563A4\n"
172                "CMP     R0, #0\n"
173                "LDRNE   R3, [R5,#8]\n"
174                "ORRNE   R3, R3, #0x2000\n"
175                "STRNE   R3, [R5,#8]\n"
176                "LDMFD   SP!, {R4,R5,PC}\n"
177
178
179    );
180}
181
182void __attribute__((naked,noinline)) capt_seq_task()
183{
184        asm volatile (
185                "STMFD   SP!, {R4,LR}\n"
186                "SUB     SP, SP, #4\n"
187                "MOV     R4, SP\n"
188                "B       loc_FFD536F0\n"
189"loc_FFD53564:\n"
190                "LDR     R2, [SP,#0xC-0xC]\n"
191                "LDR     R3, [R2]\n"
192                "MOV     R0, R2\n"
193                "CMP     R3, #0x16\n"
194                "LDRLS   PC, [PC,R3,LSL#2]\n"
195                "B       loc_FFD536C4\n"
196                ".long loc_FFD535D8\n"
197                ".long loc_FFD535F8\n"
198                ".long loc_FFD5360C\n"
199                ".long loc_FFD53620\n"
200                ".long loc_FFD53618\n"
201                ".long loc_FFD53628\n"
202                ".long loc_FFD53630\n"
203                ".long loc_FFD5363C\n"
204                ".long loc_FFD53644\n"
205                ".long loc_FFD53650\n"
206                ".long loc_FFD53658\n"
207                ".long loc_FFD53660\n"
208                ".long loc_FFD53668\n"
209                ".long loc_FFD53670\n"
210                ".long loc_FFD53678\n"
211                ".long loc_FFD53684\n"
212                ".long loc_FFD5368C\n"
213                ".long loc_FFD53694\n"
214                ".long loc_FFD5369C\n"
215                ".long loc_FFD536A8\n"
216                ".long loc_FFD536B4\n"
217                ".long loc_FFD536BC\n"
218                ".long loc_FFD536D8\n"
219"loc_FFD535D8:\n"
220                "BL      sub_FFD53B94\n"
[243]221                "BL      shooting_expo_param_override\n"  // +
[174]222                "BL      sub_FFD51358\n"
223                "LDR     R3, =0x91AA0\n"
224                "LDR     R2, [R3,#0x24]\n"
225                "CMP     R2, #0\n"
226                "BEQ     loc_FFD536D4\n"
[514]227                "BL      sub_FFD53158_my\n"
[174]228                "B       loc_FFD536D4\n"
229"loc_FFD535F8:\n"
230                "BL      sub_FFD5307C_my\n"
231"loc_FFD535FC:\n"
232                "LDR     R2, =0x91AA0\n"
233                "MOV     R3, #0\n"
234                "STR     R3, [R2,#0x24]\n"
235                "B       loc_FFD536D4\n"
236"loc_FFD5360C:\n"
237                "MOV     R0, #1\n"
238                "BL      sub_FFD53D84\n"
239                "B       loc_FFD536D4\n"
240"loc_FFD53618:\n"
241                "BL      sub_FFD537E8\n"
242                "B       loc_FFD535FC\n"
243"loc_FFD53620:\n"
244                "BL      sub_FFD53B4C\n"
245                "B       loc_FFD535FC\n"
246"loc_FFD53628:\n"
247                "BL      sub_FFD53B5C\n"
248                "B       loc_FFD536D4\n"
249"loc_FFD53630:\n"
250                "BL      sub_FFD53C7C\n"
251                "BL      sub_FFD51358\n"
252                "B       loc_FFD536D4\n"
253"loc_FFD5363C:\n"
254                "BL      sub_FFD53230\n"
255                "B       loc_FFD536D4\n"
256"loc_FFD53644:\n"
257                "BL      sub_FFD53CE4\n"
258                "BL      sub_FFD51358\n"
259                "B       loc_FFD536D4\n"
260"loc_FFD53650:\n"
261                "BL      sub_FFD53B4C\n"
262                "B       loc_FFD536D4\n"
263"loc_FFD53658:\n"
264                "BL      sub_FFD5533C\n"
265                "B       loc_FFD536D4\n"
266"loc_FFD53660:\n"
267                "BL      sub_FFD55508\n"
268                "B       loc_FFD536D4\n"
269"loc_FFD53668:\n"
270                "BL      sub_FFD5559C\n"
271                "B       loc_FFD536D4\n"
272"loc_FFD53670:\n"
273                "BL      sub_FFD55638\n"
274                "B       loc_FFD536D4\n"
275"loc_FFD53678:\n"
276                "MOV     R0, #0\n"
277                "BL      sub_FFD558A4\n"
278                "B       loc_FFD536D4\n"
279"loc_FFD53684:\n"
280                "BL      sub_FFD55A5C\n"
281                "B       loc_FFD536D4\n"
282"loc_FFD5368C:\n"
283                "BL      sub_FFD55AEC\n"
284                "B       loc_FFD536D4\n"
285"loc_FFD53694:\n"
286                "BL      sub_FFD55BA4\n"
287                "B       loc_FFD536D4\n"
288"loc_FFD5369C:\n"
289                "MOV     R0, #1\n"
290                "BL      sub_FFD558A4\n"
291                "B       loc_FFD536D4\n"
292"loc_FFD536A8:\n"
293                "BL      sub_FFD53EA0\n"
294                "BL      sub_FFD52FA4\n"
295                "B       loc_FFD536D4\n"
296"loc_FFD536B4:\n"
297                "BL      sub_FFD55778\n"
298                "B       loc_FFD536D4\n"
299"loc_FFD536BC:\n"
300                "BL      sub_FFD557D0\n"
301                "B       loc_FFD536D4\n"
302"loc_FFD536C4:\n"
303                "MOV     R1, #0x4E0\n"
304                "LDR     R0, =0xFFD52E00\n"
305                "ADD     R1, R1, #9\n"
306                "BL      sub_FFC03CF8\n"
307"loc_FFD536D4:\n"
308                "LDR     R2, [SP,#0xC-0xC]\n"
309"loc_FFD536D8:\n"
310                "LDR     R3, =0x66DA4\n"
311                "LDR     R1, [R2,#4]\n"
312                "LDR     R0, [R3]\n"
313                "BL      sub_FFC10208\n"
314                "LDR     R0, [SP,#0xC-0xC]\n"
315                "BL      sub_FFD52E7C\n"
316"loc_FFD536F0:\n"
317                "LDR     R3, =0x66DA8\n"
318                "MOV     R1, R4\n"
319                "LDR     R0, [R3]\n"
320                "MOV     R2, #0\n"
321                "BL      sub_FFC10920\n"
322                "TST     R0, #1\n"
323                "BEQ     loc_FFD53564\n"
324                "MOV     R1, #0x410\n"
325                "LDR     R0, =0xFFD52E00\n"
326                "ADD     R1, R1, #0xB\n"
327                "BL      sub_FFC03CF8\n"
328                "BL      sub_FFC11E7C\n"
329                "ADD     SP, SP, #4\n"
330                "LDMFD   SP!, {R4,PC}\n"
331        );
332}
333
334
335
Note: See TracBrowser for help on using the repository browser.