#125786 - Dwedit - Tue Apr 17, 2007 12:47 am
Illustration: [Images not permitted - Click here to view it]
What's happening: At scanline #141, I'm updating DISPCNT and WIN0H.
Here are the register values:
WIN0H (before):0...0
WIN0H (after) :129...200
WIN1H: 40...200
WIN0V: 8...152
WIN1V: 8...152
WININ0: SFX O 3 _ 1 _
WININ1: SFX O 3 2 1 0
DISPCNT (before): W1 on, W0 off, Layer 3 off, layer 0,1,2 on
DISPCNT (after): W1 on, W0 on, Layer 0,1,2,3 on
So basically 'layer 3' changes from off to on, and 'window 0 enabled' changes from off to on. The window 1 stuff is probably irrelevant.
What's supposed to happen is that layer 3 gets enabled for Window 0, but instead, layer 3 stays disabled for 2 scanlines after the change! The effect varies across emulators, NO$GBA shows what ideally should happen (wrong), and VisualBoyAdvance shows the layer disabled for only one scanline.
Having layer 3 enabled in DISPCNT for all scanlines seems to fix the glitch.
_________________
"We are merely sprites that dance at the beck and call of our button pressing overlord."
What's happening: At scanline #141, I'm updating DISPCNT and WIN0H.
Here are the register values:
WIN0H (before):0...0
WIN0H (after) :129...200
WIN1H: 40...200
WIN0V: 8...152
WIN1V: 8...152
WININ0: SFX O 3 _ 1 _
WININ1: SFX O 3 2 1 0
DISPCNT (before): W1 on, W0 off, Layer 3 off, layer 0,1,2 on
DISPCNT (after): W1 on, W0 on, Layer 0,1,2,3 on
So basically 'layer 3' changes from off to on, and 'window 0 enabled' changes from off to on. The window 1 stuff is probably irrelevant.
What's supposed to happen is that layer 3 gets enabled for Window 0, but instead, layer 3 stays disabled for 2 scanlines after the change! The effect varies across emulators, NO$GBA shows what ideally should happen (wrong), and VisualBoyAdvance shows the layer disabled for only one scanline.
Having layer 3 enabled in DISPCNT for all scanlines seems to fix the glitch.
_________________
"We are merely sprites that dance at the beck and call of our button pressing overlord."