Menu ▾ ▴

#695 Mapper 225 - invalid mirroring

ROM Compatibility
closed:fixed
nobody
7
2015-03-26
2015-03-15
Cluster
No

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.

Discussion

  • Cluster

    Cluster - 2015-03-15

    Sorry, it's already fixed by cah4e3.

     
  • zeromus

    zeromus - 2015-03-26
    • status: open --> closed:fixed
     

Log in to post a comment.