source: trunk/platform/ixus700_sd500/sub/101a/movie_rec.c @ 502

Revision 502, 27.5 KB checked in by EWAVR, 5 years ago (diff)

+ Added Ev video correction for most A-series cameras
(http://chdk.setepontos.com/index.php/topic,1075.msg20604.html#msg20604)
+ IXUS700(SD500) Added AF-in-video feature

  • RAW saving at quick shutter press patch for IXUS950(SD850) (by whoever) and A640
Line 
1#include "conf.h"
2
3int *video_quality = &conf.video_quality;
4int *video_mode    = &conf.video_mode;
5
6long def_table1[56]={
70x10000,0xC000,0x5800, 0x2000, 0x1C6A, 0x1550,0x9C5,  0x38D,  0x3C45, 0x2D34, 0x14B8, 0x788,  0x5F60, 0x4788,
80x20C9, 0xBE1, 0x8661, 0x64C9, 0x2E31, 0x10CB,0xB21A, 0x8594, 0x3D39, 0x1642, 0xE249, 0xA9B8, 0x4DC9, 0x1C48,
90x117D2,0xD1DF,0x6030, 0x22F9, 0x153D5,0xFEE1,0x74D1, 0x2A79, 0x195F8,0x1307C,0x8B8D, 0x32AA, 0x1E01C,0x16817,
100xA509, 0x3C01,0x2328E,0x1A5ED,0xC160, 0x4637,0x28C99,0x1E975,0xE054, 0x5190, 0x2F08B,0x2346B,0x102AF,0x5E0E
11};
12
13long def_table2[12]={0xE666,0xACCD,0x4F33,0x1CCD,-0x170A,-0x1148,-0x7EB,-0x2E1,-0x2BC6,-0x20D5,-0xF0C,-0x579};
14
15long table1[56], table2[12];
16
17void change_video_tables(int a, int b){
18 int i;
19 for (i=0;i<56;i++) table1[i]=(def_table1[i]*a)/b;
20 for (i=0;i<12;i++) table2[i]=(def_table2[i]*a)/b;
21}
22
23long CompressionRateTable[]={0x60, 0x5D, 0x5A, 0x57, 0x54, 0x51, 0x4D, 0x48, 0x42, 0x3B, 0x32, 0x29, 0x22, 0x1D, 0x17, 0x14, 0x10, 0xE, 0xB, 9, 7, 6, 5, 4, 3, 2, 1};
24
25
26void __attribute__((naked,noinline)) movie_record_task(){
27 asm volatile(
28                "STMFD   SP!, {R4,LR}\n"   
29                "SUB     SP, SP, #4\n"     
30                "MOV     R4, SP\n"         
31                "B       loc_FF947234\n"   
32"loc_FF947184:\n"                           
33                "LDR     R3, =0x6F668\n"   
34                "LDR     R2, [R3]\n"       
35                "CMP     R2, #0\n"         
36                "BNE     loc_FF947220\n"   
37                "SUB     R3, R12, #1\n"     
38                "CMP     R3, #0xA\n"       
39                "LDRLS   PC, [PC,R3,LSL#2]\n"
40                "B       loc_FF947220\n"   
41                ".long loc_FF9471D0\n"
42                ".long loc_FF9471D8\n"
43                ".long loc_FF9471F0\n"
44                ".long loc_FF9471F8\n"
45                ".long loc_FF947200\n"
46                ".long loc_FF9471E0\n"
47                ".long loc_FF947208\n"
48                ".long loc_FF9471E8\n"
49                ".long loc_FF947220\n"
50                ".long loc_FF947218\n"
51                ".long loc_FF947210\n"
52"loc_FF9471D0:\n"                           
53                                       
54                "BL      sub_FF9472B4\n"   
55                "B       loc_FF94721C\n"   
56"loc_FF9471D8:\n"                           
57                                       
58                "BL      sub_FF9474E8\n"   
59                "BL      unlock_optical_zoom\n"
60                "B       loc_FF94721C\n"   
61"loc_FF9471E0:\n"                           
62                                       
63                "BL      sub_FF947874_my\n"    //--------------------->
64                "B       loc_FF94721C\n"   
65"loc_FF9471E8:\n"                           
66                                       
67                "BL      sub_FF947CF8\n"   
68                "B       loc_FF94721C\n"   
69"loc_FF9471F0:\n"                           
70                                       
71                "BL      sub_FF947ADC\n"   
72                "BL      sub_FF94EFF4\n"         // + (UnlockAF)
73                "B       loc_FF94721C\n"   
74"loc_FF9471F8:\n"                           
75                                       
76                "BL      sub_FF947F04\n"   
77                "B       loc_FF94721C\n"   
78"loc_FF947200:\n"                           
79                                       
80                "BL      sub_FF9480C8\n"   
81                "B       loc_FF94721C\n"   
82"loc_FF947208:\n"                           
83                                       
84                "BL      sub_FF947DB8\n"   
85                "B       loc_FF94721C\n"   
86"loc_FF947210:\n"                           
87                                       
88                "BL      sub_FF947E98\n"   
89                "B       loc_FF94721C\n"   
90"loc_FF947218:\n"                           
91                                       
92                "BL      sub_FF947B2C\n"   
93"loc_FF94721C:\n"                           
94                                       
95                "LDR     R1, [SP]\n"       
96"loc_FF947220:\n"                           
97                                       
98                "LDR     R3, =0x6F598\n"   
99                "MOV     R2, #0\n"         
100                "STR     R2, [R1]\n"       
101                "LDR     R0, [R3]\n"       
102                "BL      sub_FF8209C0\n"
103"loc_FF947234:\n"                           
104                "LDR     R3, =0x6F594\n"   
105                "MOV     R1, R4\n"         
106                "LDR     R0, [R3]\n"       
107                "MOV     R2, #0\n"         
108                "BL      sub_FF8205A8\n"
109                "LDR     R0, [SP]\n"       
110                "LDR     R12, [R0]\n"       
111                "CMP     R12, #0xC\n"       
112                "MOV     R1, R0\n"         
113                "BNE     loc_FF947184\n"   
114                "LDR     R3, =0x6F58C\n"   
115                "LDR     R0, [R3]\n"       
116                "BL      sub_FF8213C8\n"   
117                "BL      sub_FF821DD0\n"       
118                "ADD     SP, SP, #4\n"     
119                "LDMFD   SP!, {R4,PC}\n"   
120
121 );
122}
123
124
125void __attribute__((naked,noinline)) sub_FF947874_my(){
126 asm volatile(
127                "STMFD   SP!, {R4-R8,LR}\n"
128                "LDR     R5, =0x6F684\n"   
129                "SUB     SP, SP, #0x1C\n"   
130                "LDR     R3, [R5]\n"       
131                "CMP     R3, #3\n"         
132                "MOV     R4, R0\n"         
133                "MOVEQ   R3, #4\n"         
134                "STREQ   R3, [R5]\n"       
135                "LDR     R3, =0x6F72C\n"   
136                "MOV     LR, PC\n"         
137                "LDR     PC, [R3]\n"       
138                "LDR     R2, [R5]\n"       
139                "CMP     R2, #4\n"         
140                "BNE     loc_FF947A0C\n"   
141                "ADD     R0, SP, #0x18\n"   
142                "BL      sub_FF9495DC_my\n"  //------------------>
143                "CMP     R0, #0\n"         
144                "BNE     loc_FF9478E4\n"   
145                "LDR     R3, =0x6F670\n"   
146                "LDR     R2, [R3]\n"       
147                "CMP     R2, #1\n"         
148                "BNE     loc_FF947900\n"   
149                "LDR     R2, =0x6F6C0\n"   
150                "LDR     R1, =0x6F698\n"   
151                "LDR     R12, [R2]\n"       
152                "LDR     R3, [R1]\n"       
153                "CMP     R12, R3\n"         
154                "BCC     loc_FF947900\n"   
155"loc_FF9478E4:\n"                           
156                "BL      sub_FF947A54\n"   
157                "LDR     R3, =0x5348\n"     
158                "LDR     R0, [R3]\n"       
159                "BL      sub_FFA49210\n"   
160                "MOV     R3, #5\n"         
161                "STR     R3, [R5]\n"       
162                "B       loc_FF947A0C\n"   
163"loc_FF947900:\n"                           
164                                       
165                "LDR     R0, [R4,#4]\n"     
166                "LDR     R5, [R4,#0xC]\n"   
167                "LDR     R3, =0x6F6C8\n"   
168                "LDR     R4, [R4,#8]\n"     
169                "LDR     R8, =0x6F6D4\n"   
170                "LDR     R6, =0x6F674\n"   
171                "ADD     R12, SP, #0x14\n" 
172                "ADD     LR, SP, #0x10\n"   
173                "MOV     R7, #1\n"         
174                "LDR     R2, [R3]\n"       
175                "LDR     R1, [SP,#0x18]\n" 
176                "STMEA   SP, {R4,R5,R12,LR}\n"
177                "LDR     R3, [R8]\n"       
178                "STR     R7, [R6]\n"       
179                "BL      sub_FF898CA0\n"   
180                "LDR     R3, =0x6F58C\n"   
181                "MOV     R1, #0x3E8\n"     
182                "LDR     R0, [R3]\n"       
183                "BL      sub_FF8211E0\n"   
184                "CMP     R0, #9\n"         
185                "BNE     loc_FF947964\n"   
186                "BL      sub_FF949CF4\n"   
187                "LDR     R3, =0x6F684\n"   
188                "LDR     R0, =0xFF94785C\n"
189                "B       loc_FF94797C\n"   
190"loc_FF947964:\n"                           
191                "LDR     R5, [SP,#0x10]\n" 
192                "CMP     R5, #0\n"         
193                "BEQ     loc_FF947988\n"   
194                "BL      sub_FF949CF4\n"   
195                "LDR     R3, =0x6F684\n"   
196                "LDR     R0, =0xFF947868\n"
197"loc_FF94797C:\n"                           
198                "STR     R7, [R3]\n"       
199                "BL      sub_FF960F44\n"   
200                "B       loc_FF947A0C\n"   
201"loc_FF947988:\n"                           
202                "BL      sub_FF898D4C\n"   
203                "LDR     R0, [SP,#0x18]\n" 
204                "LDR     R1, [SP,#0x14]\n" 
205                "BL      sub_FF9499FC\n"   
206                "LDR     R4, =0x6F6C0\n"   
207                "LDR     R3, [R4]\n"       
208                "ADD     R3, R3, #1\n"     
209                "LDR     R0, [SP,#0x14]\n" 
210                "MOV     R1, R8\n"         
211                "STR     R3, [R4]\n"       
212                "MOV     R2, R5\n"         
213                "BL      sub_FF9484C0_my\n"   //---------------------->
214                "LDR     R3, =0x6F6AC\n"   
215                "LDR     R4, [R4]\n"       
216                "LDR     R1, [R3]\n"       
217                "MOV     R0, R4\n"         
218                "BL      sub_FFAAF930\n"       
219                "CMP     R0, #0\n"         
220                "BEQ     loc_FF9479E8\n"   
221                "LDR     R6, =0x6F678\n"   
222                "LDR     R3, [R6]\n"       
223                "CMP     R3, #1\n"         
224                "BNE     loc_FF947A00\n"   
225                "B       loc_FF9479EC\n"   
226"loc_FF9479E8:\n"                           
227                "LDR     R6, =0x6F678\n"   
228"loc_FF9479EC:\n"                           
229                "MOV     R0, R4\n"         
230                "LDR     R3, =0x6F708\n"   
231                "MOV     LR, PC\n"         
232                "LDR     PC, [R3]\n"       
233                "STR     R5, [R6]\n"       
234"loc_FF947A00:\n"                           
235                "LDR     R2, =0x6F674\n"   
236                "MOV     R3, #0\n"         
237                "STR     R3, [R2]\n"       
238"loc_FF947A0C:\n"                           
239                                       
240                "ADD     SP, SP, #0x1C\n"   
241                "LDMFD   SP!, {R4-R8,PC}\n"
242
243 );
244}
245
246void __attribute__((naked,noinline)) sub_FF9495DC_my(){
247 asm volatile(
248                "STMFD   SP!, {R4-R11,LR}\n"
249                "LDR     R12, =0x6F9D4\n"   
250                "LDR     R3, =0x6F9EC\n"   
251                "SUB     SP, SP, #8\n"     
252                "LDR     R1, [R3]\n"       
253                "LDR     R2, [R12]\n"       
254                "LDR     R3, =0x6FA6C\n"   
255                "ADD     R7, R2, #1\n"     
256                "LDR     R3, [R3]\n"       
257                "CMP     R7, R1\n"         
258                "STR     R7, [R12]\n"       
259                "MOV     R11, R0\n"         
260                "STR     R3, [SP,#4]\n"     
261                "MOVHI   R3, #0\n"         
262                "STRHI   R3, [R11]\n"       
263                "MOVHI   R0, #0x80000001\n"
264                "BHI     loc_FF9499B0\n"   
265                "LDR     R3, =0x6FA50\n"   
266                "LDR     R4, [R3]\n"       
267                "MOV     R0, R7\n"         
268                "MOV     R1, R4\n"         
269                "BL      sub_FFAAF930\n"       
270                "CMP     R0, #1\n"         
271                "BNE     loc_FF949844\n"   
272                "LDR     R3, =0x6FA70\n"   
273                "LDR     R1, =0x6FA7C\n"   
274                "LDR     R0, =0x6F9C0\n"   
275                "LDR     R10, [R3]\n"       
276                "LDR     R2, [R1]\n"       
277                "LDR     R5, [R0]\n"       
278                "ADD     R2, R10, R2\n"     
279                "CMP     R2, R5\n"         
280                "BNE     loc_FF949680\n"   
281                "MOV     R1, R4\n"         
282                "MOV     R0, R7\n"         
283                "BL      sub_FFAAF2A0\n"       
284                "LDR     R4, =0x6F9C8\n"   
285                "ADD     R0, R0, #1\n"     
286                "AND     R0, R0, #1\n"     
287                "STR     R10, [R4,R0,LSL#2]\n"
288                "B       loc_FF94969C\n"   
289"loc_FF949680:\n"                           
290                "MOV     R1, R4\n"         
291                "MOV     R0, R7\n"         
292                "BL      sub_FFAAF2A0\n"       
293                "LDR     R4, =0x6F9C8\n"   
294                "ADD     R0, R0, #1\n"     
295                "AND     R0, R0, #1\n"     
296                "STR     R5, [R4,R0,LSL#2]\n"
297"loc_FF94969C:\n"                           
298                "LDR     R2, =0x6FA50\n"   
299                "LDR     R3, =0x6F9D4\n"   
300                "LDR     R1, [R2]\n"       
301                "LDR     R0, [R3]\n"       
302                "BL      sub_FFAAF2A0\n"       
303                "LDR     R1, =0x6F9BC\n"   
304                "ADD     R0, R0, #1\n"     
305                "AND     R0, R0, #1\n"     
306                "LDR     R12, [R4,R0,LSL#2]\n"
307                "LDR     R2, [R1]\n"       
308                "CMP     R12, R2\n"         
309                "BHI     loc_FF9496E8\n"   
310                "LDR     R4, =0x6FA0C\n"   
311                "LDR     R3, [R4]\n"       
312                "ADD     R3, R12, R3\n"     
313                "ADD     R3, R3, #8\n"     
314                "CMP     R2, R3\n"         
315                "BCS     loc_FF9496EC\n"   
316                "B       loc_FF9498C0\n"   
317"loc_FF9496E8:\n"                           
318                "LDR     R4, =0x6FA0C\n"   
319"loc_FF9496EC:\n"                           
320                "LDR     R2, =0x6FA70\n"   
321                "LDR     R1, =0x6FA7C\n"   
322                "LDR     R0, [R4]\n"       
323                "LDR     R3, [R1]\n"       
324                "LDR     LR, [R2]\n"       
325                "ADD     R0, R12, R0\n"     
326                "ADD     R2, LR, R3\n"     
327                "ADD     R1, R0, #8\n"     
328                "CMP     R1, R2\n"         
329                "BLS     loc_FF94973C\n"   
330                "LDR     R3, =0x6F9BC\n"   
331                "RSB     R2, R2, R0\n"     
332                "ADD     R0, R2, #8\n"     
333                "LDR     R1, [R3]\n"       
334                "ADD     R2, LR, R0\n"     
335                "CMP     R1, R2\n"         
336                "BCC     loc_FF9498C0\n"   
337                "LDR     R3, =0x6F9C0\n"   
338                "STR     R2, [R3]\n"       
339                "B       loc_FF949744\n"   
340"loc_FF94973C:\n"                           
341                "LDR     R3, =0x6F9C0\n"   
342                "STR     R1, [R3]\n"       
343"loc_FF949744:\n"                           
344                "LDR     R3, [R4]\n"       
345                "LDR     R12, =0x6FA20\n"   
346                "ADD     R3, R3, #0x18\n"   
347                "LDR     R2, [R12,#4]\n"   
348                "MOV     R0, R3\n"         
349                "MOV     R1, #0\n"         
350                "CMP     R1, R2\n"         
351                "BHI     loc_FF949900\n"   
352                "BNE     loc_FF949774\n"   
353                "LDR     R3, [R12]\n"       
354                "CMP     R0, R3\n"         
355                "BHI     loc_FF949900\n"   
356"loc_FF949774:\n"                           
357                "LDR     R4, [R4]\n"       
358                "LDR     LR, =0x6FA28\n"   
359                "STR     R4, [SP]\n"       
360                "LDR     R12, =0x6FA20\n"   
361                "LDR     R3, =0x6F9D4\n"   
362                "LDMIA   LR, {R7,R8}\n"     
363                "LDMIA   R12, {R5,R6}\n"   
364                "LDR     R10, [R3]\n"       
365                "LDR     R2, =0x6FA50\n"   
366                "MOV     R3, R4\n"         
367                "MOV     R4, #0\n"         
368                "ADDS    R7, R7, R3\n"     
369                "ADC     R8, R8, R4\n"     
370                "LDR     R9, [R2]\n"       
371                "SUBS    R5, R5, R3\n"     
372                "SBC     R6, R6, R4\n"     
373                "MVN     R2, #0\n"         
374                "MVN     R1, #0x17\n"       
375                "ADDS    R5, R5, R1\n"     
376                "MOV     R4, #0\n"         
377                "MOV     R3, #0x18\n"       
378                "ADC     R6, R6, R2\n"     
379                "ADDS    R7, R7, R3\n"     
380                "ADC     R8, R8, R4\n"     
381                "STMIA   R12, {R5,R6}\n"   
382                "SUB     R0, R10, #1\n"     
383                "MOV     R1, R9\n"         
384                "STMIA   LR, {R7,R8}\n"     
385                "BL      sub_FFAAF2A0\n"       
386                "CMP     R10, #1\n"         
387                "MLA     R0, R9, R0, R0\n" 
388                "BEQ     loc_FF949844\n"   
389                "LDR     R2, [SP,#4]\n"     
390                "SUB     R3, R0, #1\n"     
391                "MOV     R3, R3,LSL#4\n"   
392                "ADD     R5, R2, #0x14\n"   
393                "ADD     R4, R2, #0x10\n"   
394                "LDR     R1, [R5,R3]\n"     
395                "LDR     R2, [R4,R3]\n"     
396                "MOV     R3, R0,LSL#4\n"   
397                "LDR     R0, [SP,#4]\n"     
398                "ADD     R2, R2, R1\n"     
399                "LDR     LR, =0x62773130\n"
400                "ADD     R1, R0, #8\n"     
401                "ADD     R12, R0, #0xC\n"   
402                "ADD     R2, R2, #8\n"     
403                "MOV     R0, #0\n"         
404                "STR     LR, [R1,R3]\n"     
405                "STR     R0, [R12,R3]\n"   
406                "STR     R2, [R4,R3]\n"     
407                "LDR     R1, [SP]\n"       
408                "STR     R1, [R5,R3]\n"     
409"loc_FF949844:\n"                           
410                                       
411                "LDR     R2, =0x6F9C0\n"   
412                "LDR     R3, [R2]\n"       
413                "ADD     R1, R3, #8\n"     
414                "STR     R1, [R11]\n"       
415                "LDR     R0, =0x6F9BC\n"   
416                "LDR     R2, [R0]\n"       
417                "CMP     R3, R2\n"         
418                "BHI     loc_FF94987C\n"   
419                "LDR     LR, =0x6FA1C\n"   
420                "LDR     R3, [LR]\n"       
421                "ADD     R3, R1, R3\n"     
422                "CMP     R2, R3\n"         
423                "BCS     loc_FF949880\n"   
424                "B       loc_FF9498C0\n"   
425"loc_FF94987C:\n"                           
426                "LDR     LR, =0x6FA1C\n"   
427"loc_FF949880:\n"                           
428                "LDR     R3, =0x6FA70\n"   
429                "LDR     R2, =0x6FA7C\n"   
430                "LDR     R12, [R3]\n"       
431                "LDR     R0, [R2]\n"       
432                "LDR     R1, [R11]\n"       
433                "LDR     R3, [LR]\n"       
434                "ADD     R2, R1, R3\n"     
435                "ADD     R1, R12, R0\n"     
436                "CMP     R2, R1\n"         
437                "BLS     loc_FF9498D0\n"   
438                "RSB     R0, R1, R2\n"     
439                "LDR     R1, =0x6F9BC\n"   
440                "LDR     R2, [R1]\n"       
441                "ADD     R3, R12, R0\n"     
442                "CMP     R2, R3\n"         
443                "BCS     loc_FF9498D0\n"   
444"loc_FF9498C0:\n"                           
445                                       
446                "MOV     R3, #0\n"         
447                "STR     R3, [R11]\n"       
448                "MOV     R0, #0x80000003\n"
449                "B       loc_FF9499B0\n"   
450"loc_FF9498D0:\n"                           
451                                       
452                "LDR     R3, [LR]\n"       
453                "LDR     R12, =0x6FA20\n"   
454                "ADD     R3, R3, #0x18\n"   
455                "LDR     R2, [R12,#4]\n"   
456                "MOV     R0, R3\n"         
457                "MOV     R1, #0\n"         
458                "CMP     R1, R2\n"         
459                "BHI     loc_FF949900\n"   
460                "BNE     loc_FF949910\n"   
461                "LDR     R3, [R12]\n"       
462                "CMP     R0, R3\n"         
463                "BLS     loc_FF949910\n"   
464"loc_FF949900:\n"                           
465                                       
466                "MOV     R3, #0\n"         
467                "STR     R3, [R11]\n"       
468                "MOV     R0, #0x80000005\n"
469                "B       loc_FF9499B0\n"   
470"loc_FF949910:\n"                           
471                                       
472                "LDR     R1, =0x6FA04\n"   
473                "LDR     R0, =0x6FA50\n"   
474                "LDR     R3, [R1]\n"       
475                "LDR     R2, [R0]\n"       
476                "ADD     R3, R3, R2,LSL#4\n"
477                "ADD     R3, R3, R3,LSL#2\n"
478                "LDR     R12, =0x6FA20\n"   
479                "MOV     R3, R3,LSL#1\n"   
480                "ADD     R3, R3, #0xA0\n"   
481                "LDR     R2, [R12,#4]\n"   
482                "MOV     R0, R3\n"         
483                "MOV     R1, #0\n"         
484                "CMP     R1, R2\n"         
485                "BHI     loc_FF949958\n"   
486                "BNE     loc_FF94997C\n"   
487                "LDR     R3, [R12]\n"       
488                "CMP     R0, R3\n"         
489                "BLS     loc_FF94997C\n"   
490"loc_FF949958:\n"                           
491                "LDR     R4, =0x6FA38\n"   
492                "LDR     R1, [R4]\n"       
493                "CMP     R1, #0\n"         
494                "BNE     loc_FF94997C\n"   
495                "MOV     R0, #0x3140\n"     
496                "ADD     R0, R0, #8\n"     
497                "BL      sub_FF964D9C\n"   
498                "MOV     R3, #1\n"         
499                "STR     R3, [R4]\n"       
500"loc_FF94997C:\n"                           
501                                       
502                "LDR     R2, =0x6FA28\n"   
503                "LDR     R3, [R2,#4]\n"     
504                "CMP     R3, #0\n"         
505                "BHI     loc_FF94999C\n"   
506                "BNE     loc_FF9499AC\n"   
507                "LDR     R3, [R2]\n"       
508                "CMP     R3, #0x40000000\n"
509           //   "BLS     loc_FF9499AC\n"     // -
510
511                "B       loc_FF9499AC\n"     // +
512               
513"loc_FF94999C:\n"                           
514                "MOV     R3, #0\n"         
515                "STR     R3, [R11]\n"       
516                "MOV     R0, #0x80000007\n"
517                "B       loc_FF9499B0\n"   
518"loc_FF9499AC:\n"                           
519                                       
520                "MOV     R0, #0\n"         
521"loc_FF9499B0:\n"                           
522                                       
523                "ADD     SP, SP, #8\n"     
524                "LDMFD   SP!, {R4-R11,PC}\n"
525 );
526}
527
528void __attribute__((naked,noinline)) sub_FF9484C0_my(){
529 asm volatile(
530                "CMP     R2, #1\n"         
531                "STMFD   SP!, {R4-R7,LR}\n"
532                "MOV     R7, R0\n"         
533                "MOV     R6, R1\n"         
534                "LDREQ   R3, =CompressionRateTable\n"
535                "LDREQ   R2, [R3,#0x18]\n" 
536                "STREQ   R2, [R6]\n"       
537                "LDMEQFD SP!, {R4-R7,PC}\n"
538                "LDR     R12, =0x6F738\n"   
539                "LDR     R0, [R12]\n"       
540                "LDR     R3, =0x6F740\n"   
541                "CMP     R0, #0\n"         
542                "LDR     R1, [R3]\n"       
543                "BEQ     loc_FF94850C\n"   
544                "LDR     R2, =0x6F744\n"   
545                "LDR     R3, [R2]\n"       
546                "CMP     R3, #1\n"         
547                "BNE     loc_FF948520\n"   
548                "B       loc_FF948510\n"   
549"loc_FF94850C:\n"                           
550                "LDR     R2, =0x6F744\n"   
551"loc_FF948510:\n"                           
552                "MOV     R3, #0\n"         
553                "STR     R3, [R2]\n"       
554                "STR     R7, [R12]\n"       
555                "B       loc_FF9485D4\n"   
556"loc_FF948520:\n"                           
557                "LDR     R3, =0x6F73C\n"   
558                "LDR     R2, [R3]\n"       
559                "LDR     R5, =table1\n" // + 0xFF948294
560                "MOV     LR, R2,LSL#2\n"   
561                "LDR     R3, [R5,LR]\n"     
562                "LDR     R4, =table2\n" // + 0xFF948374
563                "RSB     R12, R3, R0\n"     
564                "LDR     R2, [R4,LR]\n"     
565                "CMP     R12, #0\n"         
566                "RSB     R0, R2, R0\n"     
567                "BLE     loc_FF948580\n"   
568                "ADD     R3, R5, #0x10\n"   
569                "LDR     R2, [R3,LR]\n"     
570                "CMP     R2, R12\n"         
571                "ADDGE   R1, R1, #1\n"     
572                "BGE     loc_FF948574\n"   
573                "ADD     R3, R5, #0x20\n"   
574                "LDR     R2, [R3,LR]\n"     
575                "CMP     R2, R12\n"         
576                "ADDGE   R1, R1, #2\n"     
577                "ADDLT   R1, R1, #3\n"     
578"loc_FF948574:\n"                           
579          //    "CMP     R1, #0xE\n"     // -
580          //    "MOVGE   R1, #0xE\n"     // -
581                "CMP     R1, #0x1A\n"    // +   
582                "MOVGE   R1, #0x1A\n"    // +   
583
584                "B       loc_FF9485B8\n"   
585"loc_FF948580:\n"                           
586                "CMP     R0, #0\n"         
587                "BGE     loc_FF9485B8\n"   
588                "ADD     R3, R4, #0x10\n"   
589                "LDR     R2, [R3,LR]\n"     
590                "CMP     R2, R0\n"         
591                "SUBLE   R1, R1, #1\n"     
592                "BLE     loc_FF9485B0\n"   
593                "ADD     R3, R4, #0x20\n"   
594                "LDR     R2, [R3,LR]\n"     
595                "CMP     R2, R0\n"         
596                "SUBLE   R1, R1, #2\n"     
597                "SUBGT   R1, R1, #3\n"     
598"loc_FF9485B0:\n"                           
599                "CMP     R1, #0\n"         
600                "MOVLT   R1, #0\n"         
601"loc_FF9485B8:\n"                           
602                                       
603                "LDR     R0, =0x6F740\n"   
604                "LDR     R3, [R0]\n"       
605                "CMP     R1, R3\n"         
606                "LDRNE   R2, =0x6F744\n"   
607                "MOVNE   R3, #1\n"         
608                "STRNE   R1, [R0]\n"       
609                "STRNE   R3, [R2]\n"       
610"loc_FF9485D4:\n"                           
611                "LDR     R3, =0x6F740\n"   
612           //   "LDR     R1, =0x534C\n"   // -
613                "LDR     R1, =video_mode\n" //+
614                "LDR     R0, [R3]\n"       
615                "LDR     R2, =CompressionRateTable\n"
616                "LDR     R12, [R1]\n"
617                "LDR     R12, [R12]\n" //+       
618                "LDR     LR, [R2,R0,LSL#2]\n"
619                "LDR     R3, =0x6F738\n"   
620                "CMP     R12, #1\n"         
621                "STR     R7, [R3]\n"       
622                "STR     LR, [R6]\n"       
623           //   "MOVEQ   R3, #0xB\n"   // -
624
625                "LDREQ   R3, =video_quality\n"          // +
626                "LDREQ   R3, [R3]\n"                    // +
627                "LDREQ   R3, [R3]\n"                    // +
628
629                "STREQ   R3, [R6]\n"       
630                "LDMFD   SP!, {R4-R7,PC}\n"
631 );
632}
Note: See TracBrowser for help on using the repository browser.