An unexpected bonus is that AF point zoom works (not sure if correctly centered, but it's there). If I remember right, no PowerShot ever supported this feature on displays other than the LCD. We can now see that there is no technical limitation behind that.
ASSERT!! LivePathParamCommon.c Line 320Occured Time 2020:04:26 12:47:30Task ID: 7077901Task name: _imageSensor8
Could we get a compilation error when CAM_UNLOCK_ANALOG_AV_IN_REC is defined but ANALOG_AV_FLAG isn't?
Checked in initial implementation in trunk 5488.
I didn't fix the AF point zoom crash. This is a niche enough feature that I'm not too worried about it, though obviously fixing would be nice. I'll try to test the ixus150 fix at some point, if I can figure out the right values.
#define B_INSTR(pc,dest) \ ( 0xEA000000 \ | ((( ((uint32_t)dest) - ((uint32_t)pc) - 8 ) >> 2) & 0x00FFFFFF) \ )
I might enable it on ixus150, but that hack is a bit more invasive than I like (no ports hook DebugAssert at the moment).
Attached one of my (dirty) research patches - I logged the function's input struct members and compared the logs later.
Did you confirm if the crash on ixus150 happens without AF point zoom enabled?
A bit off topic, but something I've wanted to add for a long time is hooks to optionally include CHDK information in the romlogs: platform, version, canon firmware version, module info.
Quote from: reyalp on 13 / May / 2020, 21:55:45Did you confirm if the crash on ixus150 happens without AF point zoom enabled?Yes (just now).The other bad news is that the current CAM_UNLOCK_ANALOG_AV_IN_REC code still does not cover this camera, despite the LivePathParamCommon hack.Apparently, changing to video out causes a crash if the display is on:ASSERT!! DispCon.c Line 1827Task name: SpyTaskAssert comes from inside SetVideoOutType, checking a fw variable. I was using the short Lua script during my experiments.
Do you mean adding more text before it is saved to ROM, or via the camera log? In my S1IS port, I saved stuff to card in my replacement assert handler.
Could try addingTurnOffDisplay / TurnOnDisplay around the SetVideoOutType calls.
Index: platform/generic/wrappers.c===================================================================--- platform/generic/wrappers.c (revision 5493)+++ platform/generic/wrappers.c (working copy)@@ -1996,7 +1996,9 @@ #ifdef CAM_UNLOCK_ANALOG_AV_IN_REC void SetVideoOutType(int x) { extern void _SetVideoOutType(int);+ _TurnOffDisplay(); _SetVideoOutType(x);+ _TurnOnDisplay(); } int GetVideoOutType(void) { extern int _GetVideoOutType(void);
My preference would be in the romlog. Reasons: - Writing to the card seems complicated, might fail if things go bad, or not be possible from the exception handlers- Keep everything together, so users just have to post the one fileDon't really care if it's in the camera log or elsewhere.OTOH, if writing to the card is usually reliable, we could send everything to the card, and avoid the current situation where romlogs leave traces of CHDK. Optionally writing a memory dump could also be quite useful.
Quote from: reyalp on 15 / May / 2020, 21:21:48Could try addingTurnOffDisplay / TurnOnDisplay around the SetVideoOutType calls.That worked, I guess it won't hurt the other cameras that don't need it.