Hi,
I post this here because I feel like the problem might be something very easy...
however, I'm currently initializing MMC1 emulation by setting reg0 to 0xf, other regs to 0 and finally refreshing NMT, PRG and CHR like I would during emulation.
the result is that at start I get bank 0 mapped in 0x8000-0xbfff and bank 0xf mapped in 0xc000-0xffff.
Most games work, but Snow Bros US and JP both refuse to start: they would need both regions to be set at bank 0, because they seem to only write registers to swith the lower bank once emulation is started and they require (at least in MESS) bank 0 in 0xc000-0xffff...
On the other hand, I have games which require high 16k bank to be initialized to 0xf (e.g. Rescue The Embassy Mission also only switches the lower bank but needs to start wit 0xf in the higher bank to work)
As a result, I am really puzzled!!
Where would you look for a bug? could a timing bug cause MMC1 to write in the wrong reg (or the wrong bankswitch value)?
Any other suggestion I might try?
I post this here because I feel like the problem might be something very easy...
however, I'm currently initializing MMC1 emulation by setting reg0 to 0xf, other regs to 0 and finally refreshing NMT, PRG and CHR like I would during emulation.
the result is that at start I get bank 0 mapped in 0x8000-0xbfff and bank 0xf mapped in 0xc000-0xffff.
Most games work, but Snow Bros US and JP both refuse to start: they would need both regions to be set at bank 0, because they seem to only write registers to swith the lower bank once emulation is started and they require (at least in MESS) bank 0 in 0xc000-0xffff...
On the other hand, I have games which require high 16k bank to be initialized to 0xf (e.g. Rescue The Embassy Mission also only switches the lower bank but needs to start wit 0xf in the higher bank to work)
As a result, I am really puzzled!!
Where would you look for a bug? could a timing bug cause MMC1 to write in the wrong reg (or the wrong bankswitch value)?
Any other suggestion I might try?