_Fandal_, on Sun Jan 3, 2010 11:17 AM, said:
MaPa, on Sun Jan 3, 2010 10:18 AM, said:
So this one is working correctly on real hw?
Yes, this one works fine!
Anyone else seeing glitching once the scrolling starts? I modified Altirra to emulate the vertical scrolling bug, and the demo is not working properly even in PAL mode, as there is glitching once the scroller starts. It looks like the mainline code is sometimes overrunning a frame, resulting in VSCROL not being hit in time:
(2752:264, 86) PC=22BA A=92 X=A5 Y=5F S=F7 P=B1 (N C) 22BA: 8D 05 D4 STA VSCROL [$D405] = $FF
CPU: Address write breakpoint hit: D405
(2753: 21,110) PC=23F1 A=0F X=00 Y=F0 S=F3 P=34 ( I ) 23F1: 8D 05 D4 STA VSCROL [$D405] = $FF
CPU: Address write breakpoint hit: D405
(2753:264, 55) PC=22BA A=94 X=A6 Y=6B S=F7 P=B1 (N C) 22BA: 8D 05 D4 STA VSCROL [$D405] = $FF
CPU: Address write breakpoint hit: D405
(2754: 19,110) PC=23F1 A=0F X=01 Y=80 S=F3 P=34 ( I ) 23F1: 8D 05 D4 STA VSCROL [$D405] = $FF
CPU: Address write breakpoint hit: D405
(2755: 10,109) PC=23F1 A=0F X=6C Y=77 S=F5 P=35 ( I C) 23F1: 8D 05 D4 STA VSCROL [$D405] = $FF
CPU: Address write breakpoint hit: D405
(2755:264, 60) PC=22BA A=98 X=A8 Y=77 S=F7 P=B1 (N C) 22BA: 8D 05 D4 STA VSCROL [$D405] = $FF
CPU: Address write breakpoint hit: D405
(2756: 15,111) PC=23F1 A=0F X=01 Y=0D S=F3 P=35 ( I C) 23F1: 8D 05 D4 STA VSCROL [$D405] = $FF
CPU: Address write breakpoint hit: D405
(2756:264, 92) PC=22BA A=9A X=A9 Y=83 S=F7 P=B1 (N C) 22BA: 8D 05 D4 STA VSCROL [$D405] = $FF
History for the bad frame shows the wait loop at $2298 starting after the VBI at scan line 262, causing it to wait an entire frame extra. Works fine if I hack out the P/M scroller, even on my NTSC Atari.