I'm translating a game, which is on mapper 70 and I believe it cannot be expanded, cause this mapper has only 3 bits to select prg rom and this game already has 8 prg banks.
So that's why I changed mapper to mmc1, changing all bankswitching commands like 'sta $C000,x' to jump on bankswitch procedure.
The problem is the game uses mid frame chr bankswitching during dialogs - to display four chr pages on the screen (and I believe it is done with 0 sprite hit). As mmc1 has huge bankswitching procedure (thanks to it's shifting register), it takes much time to switch bank and, I suppose, ppu renders scanline before I change chr bank. That's why I get constant flickering during dialogs even in PPU viewer for example an scanline 200.
So... Can I get rid of this timing problem?
Here are two roms - on mmc1 and 67 (it's bankswitching code is shorter, but still screen flickers)
So that's why I changed mapper to mmc1, changing all bankswitching commands like 'sta $C000,x' to jump on bankswitch procedure.
The problem is the game uses mid frame chr bankswitching during dialogs - to display four chr pages on the screen (and I believe it is done with 0 sprite hit). As mmc1 has huge bankswitching procedure (thanks to it's shifting register), it takes much time to switch bank and, I suppose, ppu renders scanline before I change chr bank. That's why I get constant flickering during dialogs even in PPU viewer for example an scanline 200.
So... Can I get rid of this timing problem?
Here are two roms - on mmc1 and 67 (it's bankswitching code is shorter, but still screen flickers)