Thanks for adding comments to the asm instructions; very helpful to me. About the build, I've checked, re-checked and checked yet again. I just re-compiled again with no changes, to confirm.
**** Firmware creation completed successfully
-> sx530hs-100c-1.5.0-branch_4821-4879.zip
-> sx530hs-100c-1.5.0-branch_4821-4879-full.zip
The above -full.zip is what is reported on the camera using 'build info'. I can post a screenshot, if useful. But I'm confident that the build I'm testing with is the one that I compiled, and it's the same one that I hacked with MOVNE R0, #3.
About point 4); If I assume 'ignore_current_write' is not being set at that point - even though it seems to log when it passes through that section - what could cause that? Compiler optimizing it away? And how to explain the fact that remoteshoot works?
I don't know enough about what's supposed to happen.. Speculation on my part, possibly useless, but I want to point something out, just in case:
Debug logging is only in 3 spots;
spot# log tag purpose
-----------------------------------------------------------------
1st log_fwt_erly capture 0x107c0 just after "loc_A:\n"
2nd log_fwt_mid capture 0x107bc just after MOV R7,R0 and "loc_B:\n"
3rd log_fwt_late capture 0x107c4 four instructions past "loc_B:\n"
-----------------------------------------------------------------
I see debug log results from log_fwt_mid and log_fwt_late IN EVERY TEST CASE.
I see NO RESULTS, EVER, from log_fwt_erly.
I saw log_fwt_erly results way back when loc_A was "in the wrong place", eg
topic=12418.msg133693#msg133693 date=1498887788 but I have not seen any since.
I wonder if loc_A code path is not ever being taken? Which means 'skip creating directory' is not happening?
If no \DCIM exists on sdcard, and remoteshoot is run, is the expected behavior to NOT create dir on sdcard?
Because \DCIM directory *is created anyway*, along with \CANONMSC containing MO105.CTG
Does this mean the 'skip creating directory' jump code did not execute? If so, could the loc_B code path also be being skipped by the same mechanism?