It turned out recently that several ports implement the startup mode check incorrectly. The result can be any of the following:
- camera always starts in playback mode, despite a long press on ON/OFF button
- camera always starts in rec (shooting) mode, even when it was started with the playback button
- camera starts in a random mode, regardless of which button was pressed/held
- ...
When implemented correctly, it should be like this:
The power up behavior depends on button used:
- Playback button pressed, camera should start in playback mode.
- Power button pressed for less than a second, camera should start in playback mode.
- Power button pressed for more than a second, camera should start in record mode.
@CaefixWhich of the following cameras do you have:
Ixus275_Elph350, Ixus285_Elph360, sx400, sx420, sx430, sx610, sx620
In all cases, the startup mode check GPIO address needs to be changed from 0xC022F484 to 0xC022F48C. No other changes are needed (except for the sx400 where the mask is also wrong, and for Ixus285).
For Ixus285, I would try this:
*(int*)(0x2dc8) = (*(int*)0xC022F48C)&0x80000 ? 0x80000 : 0x40000;
If you could test those that you have (apparently you are able to modify and re-compile the source), that would help.