I am curious about this MMC1_A12.nes test ROM. In the source code it clearly states I [my emulator] should have a problem:
I don't get stuck where it says "emulators will freeze here". However, I *do* get stuck on the bit/bvc a few lines above it. I pass all sprite test ROMs. I can see in my debuggers that sprite 0 is entering the multiplexer but it's never selected by the multiplexer [as the highest priority] and it's never rendered, thus it never "hits". I can see sprite 0 is an 8x8 block of "color 0 of palette 3F1C". SO, I'm confused as to how this sprite is supposed to be hit? Perhaps there's a sprite hit case that isn't tested by blargg's sprite hit test ROMs?
Code:
- bit $2002
bvs -
- bit $2002 ;Wait for sprite zero hit
bvc -
lda #$1f
sta $2001 ;Turn on grayscale mode
ldx Delay
_delayLoop
- lda $6000
cmp #TestConst ;Wait until PRG RAM is disabled (emulators will freeze here)
beq -
bvs -
- bit $2002 ;Wait for sprite zero hit
bvc -
lda #$1f
sta $2001 ;Turn on grayscale mode
ldx Delay
_delayLoop
- lda $6000
cmp #TestConst ;Wait until PRG RAM is disabled (emulators will freeze here)
beq -
I don't get stuck where it says "emulators will freeze here". However, I *do* get stuck on the bit/bvc a few lines above it. I pass all sprite test ROMs. I can see in my debuggers that sprite 0 is entering the multiplexer but it's never selected by the multiplexer [as the highest priority] and it's never rendered, thus it never "hits". I can see sprite 0 is an 8x8 block of "color 0 of palette 3F1C". SO, I'm confused as to how this sprite is supposed to be hit? Perhaps there's a sprite hit case that isn't tested by blargg's sprite hit test ROMs?