I was going to write a comprehensive description of the Shifter stabilization concept. I need to tie a couple of things before.
One thing that I yet don't fully understand, is how and why GLUE-MMU wakestates affect the shifter. I need to redo some of my old research, because I did it based on two wakeup modes only. Somebody have the LA traces performed by DIO capturing the four wakestates? They don't seem to be here in the forum. He posted a few traces, but not the ones that show the different wakestates.
npomarede wrote:In his old article about overscan, Alien described a "shifter reset" sequence by doing med/low switches once per VBL in order to empty any possible IRx registers of the shifter (to avoid having the screen shifted by 1 word when exiting a fullscreen demo).
But do you think it could be possible to have a similar sequence, using hi/med/low switches at very specific points, to be sure shifter's counters are "re-aligned" with the correct places ?
I'm not really sure that there is one universal process to realign shifter counters that would work in every case, other than executing the CPU RESET instruction. The problem is that Shifter, except at hardware reset, never really resets the plane/words counter.
Before I starting researching this issue, I thought that stabilization produces some kind of internal reset on Shifter. But it really doesn't. What the stabilization switches do, is to provoke the "every other 16 pixels" bug, but for a good effect. The idea is that the bug makes Shifter to delay the Reload process one or two LOAD pulses (as with the bug). If Reload is delayed, the plane/word counter is delayed as well (because the counter is reset after a Reload).
Yeah, I will post simulation waveforms of this at some point.
On my STF for example, the demo "death of the left border" by TNT will always gives the "vertical 16 pixels black band every 32 pixels" when the STF is in the WS3 states (in other states, screen is correct). In WS3, others fullscreen demos are of course working without black bands effect. This reminds me a post by Troed who said he had a test program that gave reproducable defaults after several freq switches.
Specific code about this demo by TNT is that there's no right stabiliser, but the hi/lo switch to remove left border is a little longer :
- hi/lo switch at position 0/16
- 60/50 switch at position 376/388
I would need to check it, possibly to simulate it, to describe exactly what is going on. But i can tell you already that the exact timing of the right switch doesn't matter. 50/60 Hz switches don't affect Shifter, except, of course, indirectly as a consequence of altering the line length. So any switch that opens the right border (without changing rez) should be the same for this purpose. The different timing of the left switch that changes rez, is, of course, very relevant.