qbradq wrote:
MMC3 does not support this.
Mapper 4 doesn't, but a quick rewire turns it into mapper 118.
Quote:
If the cycle times for bank swapping are causing problems, you can always throw in some do-nothing instructions in the bank swapping routine to make the cycle counts match.
It appears switching an entire 4 KiB as a unit takes
longer on the MMC3 or FME-7 than on the MMC1.
Code:
mmc1_switch1000:
sta $E000
lsr a
sta $E000
lsr a
sta $E000
lsr a
sta $E000
lsr a
sta $E000
rts
Code:
; Clobbers X
mmc3_switch1000:
asl a
asl a
ldx #2
stx $8000
sta $8001
inx
eor #%0001
stx $8000
sta $8001
inx
eor #%0011
stx $8000
sta $8001
inx
eor #%0001
stx $8000
sta $8001
rts
I guess if the game uses mid-frame bankswitches on the $1000-$1FFF bank, it could be run with swapped $0000/$1000.
Code:
; Clobbers X
mmc3_switch1000alt:
asl a
asl a
ora #%10000000
ldx #0
stx $8000
sta $8001
inx
eor #%0010
stx $8000
sta $8001
rts
But in practice, I doubt that a dodgeball game uses such tightly timed bankswitching. It's more something that would be seen in a driving game.