Now tested. So the question was how come some demos (DSOTS) don't produce +2 lines on STE even though they switch back to 50Hz at cycle 40, being in 60Hz since the line before. Unfortunately my test did not support STE init behaviour different from STF and as Paulo has documented the switch to 60Hz can be just after the right border position. I just ran the following test suite tonight:troed wrote:Ah, there we are! The switch to 60Hz happens just before HSYNC. It's not the first time I suspect there's an init happening there - it really needs to be investigated and codified. I'm not really sure why that would affect the checks though so currently I can offer no help. Paulo's investigation (STF) says the 60Hz switch can be as early as 378 on the line before so whatever causes it could be STE specific (even preload-related .. hmm. Another thing to test).
60Hz/50Hz
Code: Select all
432/36 160
432/38 162
432/40 162
432/42 162
432/52 162
452/52 162
464/52 162
476/52 162
488/52 162
500/52 162
0/52 162
.. and so would still consider switches like the ones above to produce an NTSC-position 160-byte line (+2 left and -2 right) on STE. It's very strange if they don't on real hardware.Steven Seagal wrote: CODE: SELECT ALL
-30 - 456:S0000 512:T0100 512:#0000
-29 - 040:S0002 344:S0000 392:S0002 440:R0000 456:R0000 508:R0002 512:T2008 512:#0158
It's fully possible I've misunderstood posts on which type of modifications to BLANK start and HSYNC start/end cause long-duration lines without increasing HBL. I'll have to either test myself or re-read the old threadsSteven Seagal wrote: Is this correct? [edit: I ask because I suspect it's wrong]

Yeah, what happens is that the left border is opened (using the hires/71Hz position at cycle 0 to activate preload - which is finished and DE raised at cycle 4) and then by always being in 60Hz the check at cycle 56 will produce a 508 cycle line and the check at 372 for deactivating DE will be true.Steven Seagal wrote:Coming back to 184 bytes lines, running tests reminded me of this case:
CODE: SELECT ALL
Frame freq: 60 shift mode: 1 WU: 0
Disk A: HighResMode STE
-34 - 390:V000C 394:M0006 416:v0000
-33 - 120:j0006
000 - 452:w050C 456:w0706 468:w0948 504:R0002 508:TC000 508:#0160
001 - 012:R0001 432:R0002 444:R0001 504:R0002 508:T20000 508:#0184
002 - 012:R0001 432:R0002 444:R0001 504:R0002 508:T20000 508:#0184
003 - 012:R0001 432:R0002 444:R0001 504:R0002 508:T20000 508:#0184
004 - 012:R0001 432:R0002 444:R0001 504:R0002 508:T20000 508:#0184
...
In HighResMode, the frames stay at 60hz all the time, there's not a single sync switch.
Conceptually (nice word), those are 60hz lines without left border, hence, directly, 184 byte lines.
By the way the res switches are exclusively R2/R1.
(372-4)/2 = 184
/Troed