I discovered at STNICCC that my mega-distorter screen in the "We Were @" does not open the left border on the compo machine. It works on many STE but that one. Another people reported me the same trouble. As I know there is many fullscreen or ST hardware gurus here, I open the subject to try to enderstand that. Here is the details:
In the We Were I use the now famous STE 224 bytes line in all fullscreen code. It's slighty different from the DHS one, here is my version:
Code: Select all
; "We Were @" STE 224 bytes fullscreen line
;a6=$8260
;a5=$820a
;d6=$0
move.w a6,(a6) ; open left border
nop
move.b d6,(a6)
91 NOPs
move.b d6,(a5) ; open right border
move.w a6,(a5)
28 NOPS
the line seems to work pretty well on all STE (even on the strange compo machine

Now in the MegaDistorter I'm using the pixel horizontal scroll register ( $8265 ) every line. Please not that I never use the offset "0" ( only 1 to 15 ). My line becomes:
Code: Select all
move.w a6,(a6) ; open left border
nop
move.b d6,(a6)
move.b d7,5(a6) ; write to $8265 (horiz pixel scroll)
88 NOPs
move.b d6,(a5) ; open right border
move.w a6,(a5)
28 NOPS
( d7 is updated each line, but never contains "0", only 1 to 15 )
In that case, on some STE, everything appairs like the left border was not open. Fortunatly on the compo machine, the picture was still nice because I setup the video register each line too!
Reading the Troed presentation about shifter finite state machine, I guess there is something related to the new "preload" STE stuff. But the move.b d7,5(a6), running AFTER the left border removal code, seems to cancel it.
Anyone have a guess?