edit: wow, so you finally found the evcompensation switch. if i call this from my "fast ev switch", lcd will adjust brightness, so i dont have to either be in the menu (ev setting) or use canon live histogram - right?so can i integrate it? will you help with the adresses?
Hmm... For A710, EnterToCompensationEVF == RectifyExposureWithMeasure (byte-to-byte, except assertion line number ). I tried second function to adjust brightness in video. Sometimes it works, but:- it locks exposure,- it must be called at least once before video recording started, otherwise by second call (while video is recorded) it crashes camera,- sometimes it crashes camera in video even if previous condition is satisfied,- some other strange things So, I removed RectifyExposureWithMeasure from my personal build.
RectifyExposureWithMeasure is very similar to EnterToCompensationEVF on a570is as well, but not identical. After the fourth bl (to ffc0bc94), they load different values to r1.
NHSTUB(EnterToCompensationEVF, 0xFFEA4F84)NHSTUB(ExitFromCompensationEVF, 0xFFEA5008)
fudgey, may i ask how you found the adress ofQuoteNHSTUB(EnterToCompensationEVF, 0xFFEA4F84)NHSTUB(ExitFromCompensationEVF, 0xFFEA5008)i'm trying to do the same for s3is, but somehow i fail. in your tutorial you pop out the adress of EnterToCompensationEVF out of the blue, it is mentioned only once (in the NHSTUB declaring). can you please alaborate on that? thanks in advance
ff97488c: ff9765c8 undefined instruction 0xff9765c8ff974890: ff974ff0 undefined instruction 0xff974ff0 <--ff974894: ff9765ec undefined instruction 0xff9765ecff974898: ff974fd8 undefined instruction 0xff974fd8 <--ff97489c: ff9765fc undefined instruction 0xff9765fc
ff9765ec: e52de004 push {lr} ; (str lr, [sp, #-4]!)ff9765f0: eb000960 bl ff978b78 <_binary_______primaries_s3is_sub_100a_PRIMARY_BIN_start+0x168b78>ff9765f4: e3a00000 mov r0, #0 ; 0x0ff9765f8: e49df004 pop {pc} ; (ldr pc, [sp], #4)
ff978b78: e52de004 push {lr} ; (str lr, [sp, #-4]!)ff978b7c: e59f3048 ldr r3, [pc, #72] ; ff978bcc VALUE:<0000664c>ff978b80: e5932000 ldr r2, [r3]ff978b84: e3a01e76 mov r1, #1888 ; 0x760ff978b88: e3520000 cmp r2, #0 ; 0x0ff978b8c: e59f003c ldr r0, [pc, #60] ; ff978bd0 VALUE:<ff97736c> STRING:<ShootCtrl.c>ff978b90: e2811009 add r1, r1, #9 ; 0x9ff978b94: 1a000000 bne ff978b9c <_binary_______primaries_s3is_sub_100a_PRIMARY_BIN_start+0x168b9c>ff978b98: ebfa6bf8 bl ff813b80 <_binary_______primaries_s3is_sub_100a_PRIMARY_BIN_start+0x3b80>ff978b9c: e59f1030 ldr r1, [pc, #48] ; ff978bd4 VALUE:<00092e2c>ff978ba0: e3a0001a mov r0, #26 ; 0x1aff978ba4: e3a02002 mov r2, #2 ; 0x2ff978ba8: ebfaaf77 bl ff82498c <_binary_______primaries_s3is_sub_100a_PRIMARY_BIN_start+0x1498c>ff978bac: e3a01e76 mov r1, #1888 ; 0x760ff978bb0: e3100001 tst r0, #1 ; 0x1ff978bb4: e281100a add r1, r1, #10 ; 0xaff978bb8: e59f0010 ldr r0, [pc, #16] ; ff978bd0 VALUE:<ff97736c> STRING:<ShootCtrl.c>ff978bbc: 0a000000 beq ff978bc4 <_binary_______primaries_s3is_sub_100a_PRIMARY_BIN_start+0x168bc4>ff978bc0: ebfa6bee bl ff813b80 <_binary_______primaries_s3is_sub_100a_PRIMARY_BIN_start+0x3b80>ff978bc4: e49de004 pop {lr} ; (ldr lr, [sp], #4)ff978bc8: ea00061f b ff97a44c <_binary_______primaries_s3is_sub_100a_PRIMARY_BIN_start+0x16a44c>
ff9765fc: e52de004 push {lr} ; (str lr, [sp, #-4]!)ff976600: eb000974 bl ff978bd8 <_binary_______primaries_s3is_sub_100a_PRIMARY_BIN_start+0x168bd8>ff976604: e3a00000 mov r0, #0 ; 0x0ff976608: e49df004 pop {pc} ; (ldr pc, [sp], #4)
ff978bd8: e52de004 push {lr} ; (str lr, [sp, #-4]!)ff978bdc: e59f3020 ldr r3, [pc, #32] ; ff978c04 VALUE:<0000664c>ff978be0: e5932000 ldr r2, [r3]ff978be4: e3a01e77 mov r1, #1904 ; 0x770ff978be8: e3520000 cmp r2, #0 ; 0x0ff978bec: e59f0014 ldr r0, [pc, #20] ; ff978c08 VALUE:<ff97736c> STRING:<ShootCtrl.c>ff978bf0: e2811001 add r1, r1, #1 ; 0x1ff978bf4: 1a000000 bne ff978bfc <_binary_______primaries_s3is_sub_100a_PRIMARY_BIN_start+0x168bfc>ff978bf8: ebfa6be0 bl ff813b80 <_binary_______primaries_s3is_sub_100a_PRIMARY_BIN_start+0x3b80>ff978bfc: e49de004 pop {lr} ; (ldr lr, [sp], #4)ff978c00: ea00061d b ff97a47c <_binary_______primaries_s3is_sub_100a_PRIMARY_BIN_start+0x16a47c>
omg this actually works!thank you! now with my fast_ev switch in the collaborative build you can quickly increase or decrease ev and see the result instantly - without having to enter the menu. attached is a build for the s3is. you have to enable fast_ev switch in the photo overrides menu. then by pressing up/down you increase ev. preview screen gets instantly brighter or darker. actually i just used EnterToCompensationEVF() in this case, because exiting isnt needed (you can exit or reset it by switching mode dial or something).
alright, i guess this "magic" you do with asm cannot be put into a signature file or idc script to feed ida with it to then gain the adresses for the other cameras automatically?i guess i really have to understand your steps. right now its all gibberish to me thanks!