mapper fixes for ncpu, debug is broken atm
[fceu.git] / mappers / 21.c
index bda50a5..ba20a86 100644 (file)
@@ -31,13 +31,17 @@ DECLFW(Mapper21_write)
        A|=((A>>5)&0xF);
 
        if((A&0xF000)==0xA000)
        A|=((A>>5)&0xF);
 
        if((A&0xF000)==0xA000)
+       {
          ROM_BANK8(0xA000,V);
          ROM_BANK8(0xA000,V);
+          X6502_Rebase();
+       }
        else if((A&0xF000)==0x8000)
        {
          if(K4sel&2)
           ROM_BANK8(0xC000,V);
          else
           ROM_BANK8(0x8000,V);
        else if((A&0xF000)==0x8000)
        {
          if(K4sel&2)
           ROM_BANK8(0xC000,V);
          else
           ROM_BANK8(0x8000,V);
+         X6502_Rebase();
        }
        else if(A>=0xb000 && A<=0xefff)
        {
        }
        else if(A>=0xb000 && A<=0xefff)
        {
@@ -49,7 +53,7 @@ DECLFW(Mapper21_write)
            K4buf[x]|=(V&0xF)<<((A&2)<<1);
            VROM_BANK1(x<<10,K4buf[x]);
           }
            K4buf[x]|=(V&0xF)<<((A&2)<<1);
            VROM_BANK1(x<<10,K4buf[x]);
           }
+
        }
        else switch(A&0xF006)
         {
        }
        else switch(A&0xF006)
         {
@@ -70,6 +74,7 @@ DECLFW(Mapper21_write)
                      swa=PRGBankList[0];
                      ROM_BANK8(0x8000,PRGBankList[2]);
                      ROM_BANK8(0xc000,swa);
                      swa=PRGBankList[0];
                      ROM_BANK8(0x8000,PRGBankList[2]);
                      ROM_BANK8(0xc000,swa);
+                     X6502_Rebase();
                     }
                     K4sel=V;
                     break;
                     }
                     K4sel=V;
                     break;