Changeset 1108


Ignore:
Timestamp:
03/27/11 02:40:18 (2 years ago)
Author:
reyalP
Message:

G12 & SX30 to fix overrides not working if shutter pressed quickly - from philmoz in http://chdk.setepontos.com/index.php?topic=650.msg63483#msg63483

Location:
trunk/platform
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/platform/g12/sub/100c/capt_seq.c

    r1106 r1108  
    125125 
    126126"               BL      sub_FF87FF5C \n" 
    127 "               LDR     R0, [R4,#0x24] \n" 
    128 "               CMP     R0, #0 \n" 
    129  
    130 //"             BLNE    sub_FF98C694 \n" 
    131 "               BLNE    sub_FF98C694_my \n"                                     // patched 
     127 
     128"               MOV     R0, #0\n"                                                       // added 
     129"               STR     R0, [R4,#0x24]\n"                                       // added, fixes overrides  behavior at short shutter press (from S95) 
     130 
     131//"             LDR     R0, [R4,#0x24] \n"                                              // above two lines make this code redundant 
     132//"             CMP     R0, #0 \n"                                                              // above two lines make this code redundant 
     133 
     134//"             BLNE    sub_FF98C694 \n"                                        // above two lines make this code redundant 
     135//"             BLNE    sub_FF98C694_my \n"                                     // patched (above two lines make this patch redundant) 
    132136 
    133137"               B       loc_FF8828D0 \n" 
     
    525529} 
    526530 
    527 void __attribute__((naked,noinline)) sub_FF98C694_my(){ 
    528  asm volatile( 
    529 "               STMFD   SP!, {R4-R6,LR} \n" 
    530 "               BL      sub_FF881D8C \n" 
    531 "               MOV     R4, R0 \n" 
    532 "               LDR     R0, =0x3BB24 \n" 
    533 "               LDR     R5, =0x7694 \n" 
    534 "               LDR     R0, [R0,#0x24] \n" 
    535 "               MOV     R6, #1 \n" 
    536 "               CMP     R0, #0 \n" 
    537 "               BEQ     loc_FF98C6D8 \n" 
    538 "               MOV     R0, #0xC \n" 
    539 "               BL      sub_FF888028 \n" 
    540 "               TST     R0, #1 \n" 
    541 "               STRNE   R6, [R5] \n" 
    542 "               LDRNE   R0, [R4,#8] \n" 
    543 "               ORRNE   R0, R0, #0x40000000 \n" 
    544 "               STRNE   R0, [R4,#8] \n" 
    545 "               LDMNEFD SP!, {R4-R6,PC} \n" 
    546 "loc_FF98C6D8: \n" 
    547 "               MOV     R0, R4 \n" 
    548 "               BL      sub_FF98C298 \n" 
    549 "               MOV     R0, R4 \n" 
    550 "               BL      sub_FFB06E2C \n" 
    551 "               MOV     R0, R4 \n" 
    552  
    553 //"             BL      sub_FFB077C0 \n" 
    554 "               BL      sub_FFB077C0_my \n"                                     // patched 
    555  
    556 "               TST     R0, #1 \n" 
    557 "               STRNE   R6, [R5] \n" 
    558 "               LDMFD   SP!, {R4-R6,PC} \n" 
    559  ); 
    560 } 
     531//void __attribute__((naked,noinline)) sub_FF98C694_my(){ 
     532// asm volatile( 
     533//"             STMFD   SP!, {R4-R6,LR} \n" 
     534//"             BL      sub_FF881D8C \n" 
     535//"             MOV     R4, R0 \n" 
     536//"             LDR     R0, =0x3BB24 \n" 
     537//"             LDR     R5, =0x7694 \n" 
     538//"             LDR     R0, [R0,#0x24] \n" 
     539//"             MOV     R6, #1 \n" 
     540//"             CMP     R0, #0 \n" 
     541//"             BEQ     loc_FF98C6D8 \n" 
     542//"             MOV     R0, #0xC \n" 
     543//"             BL      sub_FF888028 \n" 
     544//"             TST     R0, #1 \n" 
     545//"             STRNE   R6, [R5] \n" 
     546//"             LDRNE   R0, [R4,#8] \n" 
     547//"             ORRNE   R0, R0, #0x40000000 \n" 
     548//"             STRNE   R0, [R4,#8] \n" 
     549//"             LDMNEFD SP!, {R4-R6,PC} \n" 
     550//"loc_FF98C6D8: \n" 
     551//"             MOV     R0, R4 \n" 
     552//"             BL      sub_FF98C298 \n" 
     553//"             MOV     R0, R4 \n" 
     554//"             BL      sub_FFB06E2C \n" 
     555//"             MOV     R0, R4 \n" 
     556// 
     557////"           BL      sub_FFB077C0 \n" 
     558//"             BL      sub_FFB077C0_my \n"                                     // patched 
     559// 
     560//"             TST     R0, #1 \n" 
     561//"             STRNE   R6, [R5] \n" 
     562//"             LDMFD   SP!, {R4-R6,PC} \n" 
     563// ); 
     564//} 
    561565 
    562566// TODO - can this be shrunk by jumping to firmware locations after patches ??? 
  • trunk/platform/g12/sub/100e/capt_seq.c

    r1106 r1108  
    125125 
    126126"               BL      sub_FF87FF5C \n" 
    127 "               LDR     R0, [R4,#0x24] \n" 
    128 "               CMP     R0, #0 \n" 
    129  
    130 //"             BLNE    sub_FF98C6A0 \n" 
    131 "               BLNE    sub_FF98C6A0_my \n"                                     // patched 
     127 
     128"               MOV     R0, #0\n"                                                       // added 
     129"               STR     R0, [R4,#0x24]\n"                                       // added, fixes overrides  behavior at short shutter press (from S95) 
     130 
     131//"             LDR     R0, [R4,#0x24] \n"                                              // above two lines make this code redundant 
     132//"             CMP     R0, #0 \n"                                                              // above two lines make this code redundant 
     133 
     134//"             BLNE    sub_FF98C6A0 \n"                                        // above two lines make this code redundant 
     135//"             BLNE    sub_FF98C6A0_my \n"                                     // patched (above two lines make this patch redundant) 
    132136 
    133137"               B       loc_FF8828D0 \n" 
     
    525529} 
    526530 
    527 void __attribute__((naked,noinline)) sub_FF98C6A0_my(){ 
    528  asm volatile( 
    529 "               STMFD   SP!, {R4-R6,LR} \n" 
    530 "               BL      sub_FF881D8C \n" 
    531 "               MOV     R4, R0 \n" 
    532 "               LDR     R0, =0x3BB24 \n" 
    533 "               LDR     R5, =0x7694 \n" 
    534 "               LDR     R0, [R0,#0x24] \n" 
    535 "               MOV     R6, #1 \n" 
    536 "               CMP     R0, #0 \n" 
    537 "               BEQ     loc_FF98C6E4 \n" 
    538 "               MOV     R0, #0xC \n" 
    539 "               BL      sub_FF888028 \n" 
    540 "               TST     R0, #1 \n" 
    541 "               STRNE   R6, [R5] \n" 
    542 "               LDRNE   R0, [R4,#8] \n" 
    543 "               ORRNE   R0, R0, #0x40000000 \n" 
    544 "               STRNE   R0, [R4,#8] \n" 
    545 "               LDMNEFD SP!, {R4-R6,PC} \n" 
    546 "loc_FF98C6E4: \n" 
    547 "               MOV     R0, R4 \n" 
    548 "               BL      sub_FF98C2A4 \n" 
    549 "               MOV     R0, R4 \n" 
    550 "               BL      sub_FFB06FDC \n" 
    551 "               MOV     R0, R4 \n" 
    552  
    553 //"             BL      sub_FFB07970 \n" 
    554 "               BL      sub_FFB07970_my \n"                                     // patched 
    555  
    556 "               TST     R0, #1 \n" 
    557 "               STRNE   R6, [R5] \n" 
    558 "               LDMFD   SP!, {R4-R6,PC} \n" 
    559  ); 
    560 } 
     531//void __attribute__((naked,noinline)) sub_FF98C6A0_my(){ 
     532// asm volatile( 
     533//"             STMFD   SP!, {R4-R6,LR} \n" 
     534//"             BL      sub_FF881D8C \n" 
     535//"             MOV     R4, R0 \n" 
     536//"             LDR     R0, =0x3BB24 \n" 
     537//"             LDR     R5, =0x7694 \n" 
     538//"             LDR     R0, [R0,#0x24] \n" 
     539//"             MOV     R6, #1 \n" 
     540//"             CMP     R0, #0 \n" 
     541//"             BEQ     loc_FF98C6E4 \n" 
     542//"             MOV     R0, #0xC \n" 
     543//"             BL      sub_FF888028 \n" 
     544//"             TST     R0, #1 \n" 
     545//"             STRNE   R6, [R5] \n" 
     546//"             LDRNE   R0, [R4,#8] \n" 
     547//"             ORRNE   R0, R0, #0x40000000 \n" 
     548//"             STRNE   R0, [R4,#8] \n" 
     549//"             LDMNEFD SP!, {R4-R6,PC} \n" 
     550//"loc_FF98C6E4: \n" 
     551//"             MOV     R0, R4 \n" 
     552//"             BL      sub_FF98C2A4 \n" 
     553//"             MOV     R0, R4 \n" 
     554//"             BL      sub_FFB06FDC \n" 
     555//"             MOV     R0, R4 \n" 
     556// 
     557////"           BL      sub_FFB07970 \n" 
     558//"             BL      sub_FFB07970_my \n"                                     // patched 
     559// 
     560//"             TST     R0, #1 \n" 
     561//"             STRNE   R6, [R5] \n" 
     562//"             LDMFD   SP!, {R4-R6,PC} \n" 
     563// ); 
     564//} 
    561565 
    562566// TODO - can this be shrunk by jumping to firmware locations after patches ??? 
  • trunk/platform/sx30/sub/100e/capt_seq.c

    r1106 r1108  
    8686 
    8787"               BL      sub_FF8840BC \n" 
    88 "               LDR     R0, [R4,#0x24] \n" 
    89 "               CMP     R0, #0 \n" 
    90  
    91 //"             BLNE    sub_FF992D20 \n" 
    92 "               BLNE    sub_FF992D20_my \n"             // patched 
     88 
     89"               MOV     R0, #0\n"                                                       // added 
     90"               STR     R0, [R4,#0x24]\n"                                       // added, fixes overrides  behavior at short shutter press (from S95) 
     91 
     92//"             LDR     R0, [R4,#0x24] \n"                                              // above two lines make this code redundant 
     93//"             CMP     R0, #0 \n"                                                              // above two lines make this code redundant 
     94 
     95//"             BLNE    sub_FF992D20 \n"                                        // above two lines make this code redundant 
     96//"             BLNE    sub_FF992D20_my \n"                                     // patched (above two lines make this patch redundant) 
    9397 
    9498"               B       loc_FF886B5C \n" 
     
    442446} 
    443447 
    444 void __attribute__((naked,noinline)) sub_FF992D20_my(){ 
    445  asm volatile( 
    446 "               STMFD   SP!, {R4-R6,LR} \n" 
    447 "               BL      sub_FF886080 \n" 
    448 "               MOV     R4, R0 \n" 
    449 "               LDR     R0, =0x3BC24 \n" 
    450 "               LDR     R5, =0x85AC \n" 
    451 "               LDR     R0, [R0,#0x24] \n" 
    452 "               MOV     R6, #1 \n" 
    453 "               CMP     R0, #0 \n" 
    454 "               BEQ     loc_FF992D64 \n" 
    455 "               MOV     R0, #0xC \n" 
    456 "               BL      sub_FF88C648 \n" 
    457 "               TST     R0, #1 \n" 
    458 "               STRNE   R6, [R5] \n" 
    459 "               LDRNE   R0, [R4,#8] \n" 
    460 "               ORRNE   R0, R0, #0x40000000 \n" 
    461 "               STRNE   R0, [R4,#8] \n" 
    462 "               LDMNEFD SP!, {R4-R6,PC} \n" 
    463 "loc_FF992D64: \n" 
    464 "               MOV     R0, R4 \n" 
    465 "               BL      sub_FF992924 \n" 
    466 "               MOV     R0, R4 \n" 
    467 "               BL      sub_FFAEC0B4 \n" 
    468 "               MOV     R0, R4 \n" 
    469  
    470 //"             BL      sub_FFAECA3C \n" 
    471 "               BL      sub_FFAECA3C_my \n"                                     // patched 
    472  
    473 "               TST     R0, #1 \n" 
    474 "               STRNE   R6, [R5] \n" 
    475 "               LDMFD   SP!, {R4-R6,PC} \n" 
    476  ); 
    477 } 
     448//void __attribute__((naked,noinline)) sub_FF992D20_my(){ 
     449// asm volatile( 
     450//"             STMFD   SP!, {R4-R6,LR} \n" 
     451//"             BL      sub_FF886080 \n" 
     452//"             MOV     R4, R0 \n" 
     453//"             LDR     R0, =0x3BC24 \n" 
     454//"             LDR     R5, =0x85AC \n" 
     455//"             LDR     R0, [R0,#0x24] \n" 
     456//"             MOV     R6, #1 \n" 
     457//"             CMP     R0, #0 \n" 
     458//"             BEQ     loc_FF992D64 \n" 
     459//"             MOV     R0, #0xC \n" 
     460//"             BL      sub_FF88C648 \n" 
     461//"             TST     R0, #1 \n" 
     462//"             STRNE   R6, [R5] \n" 
     463//"             LDRNE   R0, [R4,#8] \n" 
     464//"             ORRNE   R0, R0, #0x40000000 \n" 
     465//"             STRNE   R0, [R4,#8] \n" 
     466//"             LDMNEFD SP!, {R4-R6,PC} \n" 
     467//"loc_FF992D64: \n" 
     468//"             MOV     R0, R4 \n" 
     469//"             BL      sub_FF992924 \n" 
     470//"             MOV     R0, R4 \n" 
     471//"             BL      sub_FFAEC0B4 \n" 
     472//"             MOV     R0, R4 \n" 
     473// 
     474////"           BL      sub_FFAECA3C \n" 
     475//"             BL      sub_FFAECA3C_my \n"                                     // patched 
     476// 
     477//"             TST     R0, #1 \n" 
     478//"             STRNE   R6, [R5] \n" 
     479//"             LDMFD   SP!, {R4-R6,PC} \n" 
     480// ); 
     481//} 
    478482 
    479483void __attribute__((naked,noinline)) sub_FFAECA3C_my(){ 
  • trunk/platform/sx30/sub/100h/capt_seq.c

    r1106 r1108  
    8686 
    8787"               BL      sub_FF8840BC \n" 
    88 "               LDR     R0, [R4,#0x24] \n" 
    89 "               CMP     R0, #0 \n" 
    90  
    91 //"             BLNE    sub_FF992DAC \n" 
    92 "               BLNE    sub_FF992DAC_my \n"                                     // patched 
     88 
     89"               MOV     R0, #0\n"                                                       // added 
     90"               STR     R0, [R4,#0x24]\n"                                       // added, fixes overrides  behavior at short shutter press (from S95) 
     91 
     92//"             LDR     R0, [R4,#0x24] \n"                                              // above two lines make this code redundant 
     93//"             CMP     R0, #0 \n"                                                              // above two lines make this code redundant 
     94 
     95//"             BLNE    sub_FF992DAC \n"                                        // above two lines make this code redundant 
     96//"             BLNE    sub_FF992DAC_my \n"                                     // patched (above two lines make this patch redundant) 
    9397 
    9498"               B       loc_FF886B5C \n" 
     
    442446} 
    443447 
    444 void __attribute__((naked,noinline)) sub_FF992DAC_my(){ 
    445  asm volatile( 
    446 "               STMFD   SP!, {R4-R6,LR} \n" 
    447 "               BL      sub_FF886080 \n" 
    448 "               MOV     R4, R0 \n" 
    449 "               LDR     R0, =0x3BC24 \n" 
    450 "               LDR     R5, =0x85AC \n" 
    451 "               LDR     R0, [R0,#0x24] \n" 
    452 "               MOV     R6, #1 \n" 
    453 "               CMP     R0, #0 \n" 
    454 "               BEQ     loc_FF992DF0 \n" 
    455 "               MOV     R0, #0xC \n" 
    456 "               BL      sub_FF88C648 \n" 
    457 "               TST     R0, #1 \n" 
    458 "               STRNE   R6, [R5] \n" 
    459 "               LDRNE   R0, [R4,#8] \n" 
    460 "               ORRNE   R0, R0, #0x40000000 \n" 
    461 "               STRNE   R0, [R4,#8] \n" 
    462 "               LDMNEFD SP!, {R4-R6,PC} \n" 
    463 "loc_FF992DF0: \n" 
    464 "               MOV     R0, R4 \n" 
    465 "               BL      sub_FF9929B0 \n" 
    466 "               MOV     R0, R4 \n" 
    467 "               BL      sub_FFAEC170 \n" 
    468 "               MOV     R0, R4 \n" 
    469  
    470 //"             BL      sub_FFAECAF8 \n" 
    471 "               BL      sub_FFAECAF8_my \n"                                     // patched 
    472  
    473 "               TST     R0, #1 \n" 
    474 "               STRNE   R6, [R5] \n" 
    475 "               LDMFD   SP!, {R4-R6,PC} \n" 
    476  ); 
    477 } 
     448//void __attribute__((naked,noinline)) sub_FF992DAC_my(){ 
     449// asm volatile( 
     450//"             STMFD   SP!, {R4-R6,LR} \n" 
     451//"             BL      sub_FF886080 \n" 
     452//"             MOV     R4, R0 \n" 
     453//"             LDR     R0, =0x3BC24 \n" 
     454//"             LDR     R5, =0x85AC \n" 
     455//"             LDR     R0, [R0,#0x24] \n" 
     456//"             MOV     R6, #1 \n" 
     457//"             CMP     R0, #0 \n" 
     458//"             BEQ     loc_FF992DF0 \n" 
     459//"             MOV     R0, #0xC \n" 
     460//"             BL      sub_FF88C648 \n" 
     461//"             TST     R0, #1 \n" 
     462//"             STRNE   R6, [R5] \n" 
     463//"             LDRNE   R0, [R4,#8] \n" 
     464//"             ORRNE   R0, R0, #0x40000000 \n" 
     465//"             STRNE   R0, [R4,#8] \n" 
     466//"             LDMNEFD SP!, {R4-R6,PC} \n" 
     467//"loc_FF992DF0: \n" 
     468//"             MOV     R0, R4 \n" 
     469//"             BL      sub_FF9929B0 \n" 
     470//"             MOV     R0, R4 \n" 
     471//"             BL      sub_FFAEC170 \n" 
     472//"             MOV     R0, R4 \n" 
     473// 
     474////"           BL      sub_FFAECAF8 \n" 
     475//"             BL      sub_FFAECAF8_my \n"                                     // patched 
     476// 
     477//"             TST     R0, #1 \n" 
     478//"             STRNE   R6, [R5] \n" 
     479//"             LDMFD   SP!, {R4-R6,PC} \n" 
     480// ); 
     481//} 
    478482 
    479483void __attribute__((naked,noinline)) sub_FFAECAF8_my(){ 
  • trunk/platform/sx30/sub/100l/capt_seq.c

    r1106 r1108  
    8686 
    8787"               BL      sub_FF8840C0 \n" 
    88 "               LDR     R0, [R4,#0x24] \n" 
    89 "               CMP     R0, #0 \n" 
    90  
    91 //"             BLNE    sub_FF992F54 \n" 
    92 "               BLNE    sub_FF992F54_my \n" 
     88 
     89"               MOV     R0, #0\n"                                                       // added 
     90"               STR     R0, [R4,#0x24]\n"                                       // added, fixes overrides  behavior at short shutter press (from S95) 
     91 
     92//"             LDR     R0, [R4,#0x24] \n"                                              // above two lines make this code redundant 
     93//"             CMP     R0, #0 \n"                                                              // above two lines make this code redundant 
     94 
     95//"             BLNE    sub_FF992F54 \n"                                        // above two lines make this code redundant 
     96//"             BLNE    sub_FF992F54_my \n"                                     // patched (above two lines make this patch redundant) 
    9397 
    9498"               B       loc_FF886B60 \n" 
     
    442446} 
    443447 
    444 void __attribute__((naked,noinline)) sub_FF992F54_my(){ 
    445  asm volatile( 
    446 "               STMFD   SP!, {R4-R6,LR} \n" 
    447 "               BL      sub_FF886084 \n" 
    448 "               MOV     R4, R0 \n" 
    449 "               LDR     R0, =0x3BC24 \n" 
    450 "               LDR     R5, =0x85AC \n" 
    451 "               LDR     R0, [R0,#0x24] \n" 
    452 "               MOV     R6, #1 \n" 
    453 "               CMP     R0, #0 \n" 
    454 "               BEQ     loc_FF992F98 \n" 
    455 "               MOV     R0, #0xC \n" 
    456 "               BL      sub_FF88C64C \n" 
    457 "               TST     R0, #1 \n" 
    458 "               STRNE   R6, [R5] \n" 
    459 "               LDRNE   R0, [R4,#8] \n" 
    460 "               ORRNE   R0, R0, #0x40000000 \n" 
    461 "               STRNE   R0, [R4,#8] \n" 
    462 "               LDMNEFD SP!, {R4-R6,PC} \n" 
    463 "loc_FF992F98: \n" 
    464 "               MOV     R0, R4 \n" 
    465 "               BL      sub_FF992B58 \n" 
    466 "               MOV     R0, R4 \n" 
    467 "               BL      sub_FFAEC318 \n" 
    468 "               MOV     R0, R4 \n" 
    469  
    470 //"             BL      sub_FFAECCA0 \n" 
    471 "               BL      sub_FFAECCA0_my \n" 
    472  
    473 "               TST     R0, #1 \n" 
    474 "               STRNE   R6, [R5] \n" 
    475 "               LDMFD   SP!, {R4-R6,PC} \n" 
    476  ); 
    477 } 
     448//void __attribute__((naked,noinline)) sub_FF992F54_my(){ 
     449// asm volatile( 
     450//"             STMFD   SP!, {R4-R6,LR} \n" 
     451//"             BL      sub_FF886084 \n" 
     452//"             MOV     R4, R0 \n" 
     453//"             LDR     R0, =0x3BC24 \n" 
     454//"             LDR     R5, =0x85AC \n" 
     455//"             LDR     R0, [R0,#0x24] \n" 
     456//"             MOV     R6, #1 \n" 
     457//"             CMP     R0, #0 \n" 
     458//"             BEQ     loc_FF992F98 \n" 
     459//"             MOV     R0, #0xC \n" 
     460//"             BL      sub_FF88C64C \n" 
     461//"             TST     R0, #1 \n" 
     462//"             STRNE   R6, [R5] \n" 
     463//"             LDRNE   R0, [R4,#8] \n" 
     464//"             ORRNE   R0, R0, #0x40000000 \n" 
     465//"             STRNE   R0, [R4,#8] \n" 
     466//"             LDMNEFD SP!, {R4-R6,PC} \n" 
     467//"loc_FF992F98: \n" 
     468//"             MOV     R0, R4 \n" 
     469//"             BL      sub_FF992B58 \n" 
     470//"             MOV     R0, R4 \n" 
     471//"             BL      sub_FFAEC318 \n" 
     472//"             MOV     R0, R4 \n" 
     473// 
     474////"           BL      sub_FFAECCA0 \n" 
     475//"             BL      sub_FFAECCA0_my \n" 
     476// 
     477//"             TST     R0, #1 \n" 
     478//"             STRNE   R6, [R5] \n" 
     479//"             LDMFD   SP!, {R4-R6,PC} \n" 
     480// ); 
     481//} 
    478482 
    479483void __attribute__((naked,noinline)) sub_FFAECCA0_my(){ 
Note: See TracChangeset for help on using the changeset viewer.