Some success with overriding shutter speed (5D3 113).
In ./Param/AccumulateTime.c, it says something like:
if arg0 <= 160:
return *(0xFF9268B4 + 4*arg0)
From 0xFF9268B4 (that is, arg0=16), there starts an array with timer values, from 32320 down to 10, probably miliseconds.
16 and 160 are the shutter codes for 32" and 1/8000, so this array is indexed by lens_info.raw_shutter.
If you patch this table like this:
uint32_t a = 0xFF9268B4 + 4 * lens_info.raw_shutter;
uint32_t v = MEM(a);
cache_fake(a, v/2, TYPE_DCACHE);
then, for a 5-second exposure you will get a picture identical to a 2.5-second exposure. The shutter mechanism is still actuated for 5 seconds.
At 1 second patched, the picture is a little bit brighter than at 0.5s unpatched. At 1/10 patched, the brightness in the picture is no longer uniform.
If you patch with v*2 instead of v/2, for a 5s exposure, the brightness does not change, the shutter is still actuated for 5s, but the display says BUSY for another 5 seconds.
I hoped to get arbitrary shutter speed values (this would reduce bulb ramping flicker a lot).