I'm trying to get CHR bank switching working in my CNROM game. Currently it works correctly in mesen, but not in fceux. I won't get a chance to try it on hardware until later this weekend, but regardless if it works on hardware, I'd like to know that it will work as expected on fceux. Is there anything obvious here that I'm doing that would make it not work right?
I've got 2 8k CHR banks, and my header is declared as:
To switch banks, I'm doing:
Both mesen and fceux report that it's mapper #3 with 2 8K CHR-ROM. But fceux doesn't seem to want to switch to the 2nd bank.
I'll test on my powerpak later tonight, but regardless, I'd like be able to figure out what I might be doing that makes them differ.
Any guesses?
I've got 2 8k CHR banks, and my header is declared as:
Code:
.segment "INESHDR"
.byt "NES",$1A ; magic signature
.byt 2 ; PRG ROM size in 16384 byte units
.byt 2 ; CHR ROM size in 8192 byte units
.byt $31 ; mirroring type and mapper number lower nibble
.byt $00 ; mapper number upper nibble
.byt "NES",$1A ; magic signature
.byt 2 ; PRG ROM size in 16384 byte units
.byt 2 ; CHR ROM size in 8192 byte units
.byt $31 ; mirroring type and mapper number lower nibble
.byt $00 ; mapper number upper nibble
To switch banks, I'm doing:
Code:
lda #01
sta $8000
sta $8000
Both mesen and fceux report that it's mapper #3 with 2 8K CHR-ROM. But fceux doesn't seem to want to switch to the 2nd bank.
I'll test on my powerpak later tonight, but regardless, I'd like be able to figure out what I might be doing that makes them differ.
Any guesses?