merge mapper code from FCEUX
[fceu.git] / mappers / 22.c
index a40e05f..eee5365 100644 (file)
@@ -1,7 +1,7 @@
 /* FCE Ultra - NES/Famicom Emulator
  *
  * Copyright notice for this file:
- *  Copyright (C) 2002 Ben Parnell
+ *  Copyright (C) 2002 Xodnizel
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -15,7 +15,8 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ * (VRC4 mapper)
  */
 
 #include "mapinc.h"
@@ -30,12 +31,10 @@ DECLFW(Mapper22_write)
          {
           switch(A&0xF000)
           {
-          case 0x8000:ROM_BANK8(0x8000,V);
-                      X6502_Rebase();break;
-          case 0xa000:ROM_BANK8(0xA000,V);
-                      X6502_Rebase();break;
+          case 0x8000:ROM_BANK8(0x8000,V);break;
+          case 0xa000:ROM_BANK8(0xA000,V);break;
           case 0x9000:switch(V&3)
-                     {
+                      {
                        case 0x00:MIRROR_SET2(1);break;
                        case 0x01:MIRROR_SET2(0);break;
                        case 0x02:onemir(0);break;
@@ -46,20 +45,20 @@ DECLFW(Mapper22_write)
          }
         else
         {
-         A&=0xF003;
-         if(A>=0xb000 && A<=0xe003)
-         {
-          int x=(A&1)|((A-0xB000)>>11);
+          A&=0xF003;
+          if(A>=0xb000 && A<=0xe003)
+          {
+           int x=(A&1)|((A-0xB000)>>11);
 
-          K4buf[x]&=(0xF0)>>((A&2)<<1);
-          K4buf[x]|=(V&0xF)<<((A&2)<<1);
-          VROM_BANK1(x<<10,K4buf[x]>>1);
-         }
+           K4buf[x]&=(0xF0)>>((A&2)<<1);
+           K4buf[x]|=(V&0xF)<<((A&2)<<1);
+           VROM_BANK1(x<<10,K4buf[x]>>1);
+          }
         }
 }
 
 
 void Mapper22_init(void)
 {
-       SetWriteHandler(0x8000,0xffff,Mapper22_write);
+        SetWriteHandler(0x8000,0xffff,Mapper22_write);
 }