Thanks, if I'm reading it correctly the jr is
-7 -8 -9 -10 -11 -12 -13 -14 0 0 -1 -2 -3 -4 -5 -6
-8 -9 -10 -11 -12 -13 -14 -15 0 -1 -2 -3 -4 -5 -6 -7
for both 73 and 74 hmoves
Just to be sure: a cycle 73 HMOVE means that it should end on cycle 73 (not start on cycle 73). That might cause the issue you are seeing.
Correct, ends on 73. The issue only appears on my jr. On my ntsc 7800 and in stella the position matches the doc.
Here try this test rom built around cycle 74 HMOVE's.:
Use the joystick left & right to slow/speed up the cycling.
That rom only works on my 7800. It completely crashes on the jr. Probably the harmony firmware though, both the harmony and uno cart hate this system.
It does not appear viable to get correct the HMxx values for every system, because even if you get the position correct there will be shifting that can corrupt the graphics. This will be true on late model Atari Jr's and all PAL 7800's for any HMOVE's during the visible portion of the screen.
If I understand this correctly the 73/74 hmove should be fine for the 12 sprite kernel because all 3 copies of P0 and P1 will remain in the middle of the screen and should never overlap with the hmove clock pulses.
So based on everything covered above, the detection only needs to differentiate between those two possibilities. And using a normal hmove after wsync will be correct regardless of which system it is.