Re: Setting inesprg to 2 makes game stop running
Posted: Mon Mar 25, 2019 1:51 pm
Change the mirroring.lidnariq wrote:What are you trying to get the MMC1 to do? The behavior you're seeing is correct for the value you're writing...
NES Development Forums
https://forums.nesdev.org/
Change the mirroring.lidnariq wrote:What are you trying to get the MMC1 to do? The behavior you're seeing is correct for the value you're writing...
Fix bank at $8000 (for now) in prg and switch 4 kb at a time in chrlidnariq wrote:And what value do you want for the other bits that are set at the same time?
At this point, I think you should reconsider your decision to make $8000-$BFFF fixed, since it's the switch from the more common setup (fixed bank at $C000-$FFFF) to the alternate one that might be causing you problems. The only real justification for making $C000-$FFFF switchable is if you need to bankswitch DPCM samples, which is not very common in actual games, considering you wouldn't be able to use bankswitching for other purposes.lidnariq wrote:When you boot up, you write $80 to $8000, resetting the MMC1. That sets the bank at $C000 to bank 15, and leaves the bank at $8000 undefined.
Shortly afterwards, you write %110MM (M=mirroring) to the MMC1 at $8000, which sets the bank at $8000 to bank 0, and leaves the bank at $C000 undefined.
Done it, and it's finally working!tokumaru wrote:At this point, I think you should reconsider your decision to make $8000-$BFFF fixed, since it's the switch from the more common setup (fixed bank at $C000-$FFFF) to the alternate one that might be causing you problems. The only real justification for making $C000-$FFFF switchable is if you need to bankswitch DPCM samples, which is not very common in actual games, considering you wouldn't be able to use bankswitching for other purposes.lidnariq wrote:When you boot up, you write $80 to $8000, resetting the MMC1. That sets the bank at $C000 to bank 15, and leaves the bank at $8000 undefined.
Shortly afterwards, you write %110MM (M=mirroring) to the MMC1 at $8000, which sets the bank at $8000 to bank 0, and leaves the bank at $C000 undefined.