Why is it that no matter what I write to $2125 it does nothing (ie: $2125 stays zero in no$sns debugger), but writing to $210E sends whatever was previously written to $210E into $2125 (as well as into the low byte of BG1VOFS, like it's supposed to)?
$2123 and $2124 store their values properly, as do $2126-$2129...
More generally, nothing I try seems to have any effect on the actual screen output. Is there some obscure, easy-to-miss trick that you have to do to get windowing working?
You can mask off parts of sprites this way, right?
...
[much later] I haven't solved the above yet, but... here's a fun addendum: on real hardware, this program shows a regular periodic flicker on some of the sprites, a sort of winking in several spots on the screen at the same time, about twice per second or so. This doesn't happen in higan v094 accuracy core.
That's right, I broke higan with a title screen. Either that or the hardware is starting to go (which might actually be more likely)...
$2123 and $2124 store their values properly, as do $2126-$2129...
More generally, nothing I try seems to have any effect on the actual screen output. Is there some obscure, easy-to-miss trick that you have to do to get windowing working?
You can mask off parts of sprites this way, right?
Code:
; window mask setup
stz $2123 ; turn off both windows for BG1/2
lda #$0A ; turn on both windows for OBJ, no inversion
sta $2125
lda #$5F ; set left side of window 1 to 95
sta $2126
lda #$A4 ; set right side of window 1 to 164
sta $2127
lda #$B5 ; set left side of window 2 to 181
sta $2128
lda #$FF ; set right side of window 2 to 255
sta $2129
stz $212B ; set window combination logic to OR
lda $1F ; turn on windowing
sta $212E
stz $2123 ; turn off both windows for BG1/2
lda #$0A ; turn on both windows for OBJ, no inversion
sta $2125
lda #$5F ; set left side of window 1 to 95
sta $2126
lda #$A4 ; set right side of window 1 to 164
sta $2127
lda #$B5 ; set left side of window 2 to 181
sta $2128
lda #$FF ; set right side of window 2 to 255
sta $2129
stz $212B ; set window combination logic to OR
lda $1F ; turn on windowing
sta $212E
...
[much later] I haven't solved the above yet, but... here's a fun addendum: on real hardware, this program shows a regular periodic flicker on some of the sprites, a sort of winking in several spots on the screen at the same time, about twice per second or so. This doesn't happen in higan v094 accuracy core.
That's right, I broke higan with a title screen. Either that or the hardware is starting to go (which might actually be more likely)...