Mapper 225 has invalid mirroring.
How it should be: 0 - vertical mirroring, 1 - horizontal.
Documentation: http://wiki.nesdev.com/w/index.php/INES_Mapper_225
But in fceux (225.cpp):
static void Sync(void) {
if (mode) {
setprg16(0x8000, prg);
setprg16(0xC000, prg);
} else
setprg32(0x8000, prg >> 1);
setchr8(chr);
setmirror(mirr);
}
static DECLFW(M225Write) {
uint32 bank = (A >> 14) & 1;
mirr = (A >> 13) & 1;
mode = (A >> 12) & 1;
chr = (A & 0x3f) | (bank << 6);
prg = ((A >> 6) & 0x3f) | (bank << 6);
Sync();
}
While 0 is horizontal mirroring and 1 is vertical for setmirror() function. Need to change to "setmirror(mirr^1)" to fix bug.
Sorry, it's already fixed by cah4e3.