merge mappers from FCEU-mm
[fceu.git] / boards / 23.c
index 8760d50..5e596fc 100644 (file)
  *\r
  * You should have received a copy of the GNU General Public License\r
  * along with this program; if not, write to the Free Software\r
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
+ *\r
+ * VRC-2/VRC-4 Konami\r
+ * VRC-4 Pirate\r
  */\r
 \r
 #include "mapinc.h"\r
@@ -33,13 +36,13 @@ static uint32 WRAMSIZE;
 \r
 static SFORMAT StateRegs[]=\r
 {\r
-  {prgreg, 2, "PRGREGS"},\r
-  {chrreg, 8, "CHRREGS"},\r
-  {&regcmd, 1, "REGCMD"},\r
-  {&irqcmd, 1, "IRQCMD"},\r
+  {prgreg, 2, "PREG"},\r
+  {chrreg, 8, "CREG"},\r
+  {&regcmd, 1, "CMDR"},\r
+  {&irqcmd, 1, "CMDI"},\r
   {&mirr, 1, "MIRR"},\r
   {&big_bank, 1, "BIGB"},\r
-  {&IRQCount, 2, "IRCN"},\r
+  {&IRQCount, 2, "IRQC"},\r
   {&IRQLatch, 1, "IRQL"},\r
   {&IRQa, 1, "IRQA"},\r
   {0}\r
@@ -87,7 +90,7 @@ static DECLFW(M23Write)
     if(UNIFchrrama)\r
       big_bank=(V&8)<<2;                    // my personally many-in-one feature ;) just for support pirate cart 2-in-1\r
     else\r
-    {    \r
+    {\r
       uint16 i=((A>>1)&1)|((A-0xB000)>>11);\r
       chrreg[i]&=(0xF0)>>((A&1)<<2);\r
       chrreg[i]|=(V&0xF)<<((A&1)<<2);\r
@@ -97,18 +100,18 @@ static DECLFW(M23Write)
   else\r
     switch(A&0xF003)\r
     {\r
-      case 0x8000: \r
-      case 0x8001: \r
-      case 0x8002: \r
-      case 0x8003: if(is23) \r
-                     prgreg[0]=V&0x1F; \r
-                   Sync(); \r
+      case 0x8000:\r
+      case 0x8001:\r
+      case 0x8002:\r
+      case 0x8003: if(is23)\r
+                     prgreg[0]=V&0x1F;\r
+                   Sync();\r
                    break;\r
-      case 0xA000: \r
-      case 0xA001: \r
-      case 0xA002: \r
-      case 0xA003: if(is23) \r
-                     prgreg[1]=V&0x1F; \r
+      case 0xA000:\r
+      case 0xA001:\r
+      case 0xA002:\r
+      case 0xA003: if(is23)\r
+                     prgreg[1]=V&0x1F;\r
                    else\r
                    {\r
                      prgreg[0]=(V<<1)&0x1F;\r
@@ -118,7 +121,7 @@ static DECLFW(M23Write)
                    break;\r
       case 0x9000:\r
       case 0x9001: if(V!=0xFF) mirr=V; Sync(); break;\r
-      case 0x9002: \r
+      case 0x9002:\r
       case 0x9003: regcmd=V; Sync(); break;\r
       case 0xF000: X6502_IRQEnd(FCEU_IQEXT); IRQLatch&=0xF0; IRQLatch|=V&0xF; break;\r
       case 0xF001: X6502_IRQEnd(FCEU_IQEXT); IRQLatch&=0x0F; IRQLatch|=V<<4; break;\r
@@ -129,7 +132,7 @@ static DECLFW(M23Write)
 \r
 static void M23Power(void)\r
 {\r
-  big_bank=0x20;  \r
+  big_bank=0x20;\r
   Sync();\r
   setprg8r(0x10,0x6000,0);              // another many-in-one code, WRAM actually contain only WaiWaiWorld game\r
   SetReadHandler(0x6000,0x7FFF,CartBR);\r
@@ -138,11 +141,7 @@ static void M23Power(void)
   SetWriteHandler(0x8000,0xFFFF,M23Write);\r
 }\r
 \r
-static void M23Reset(void)\r
-{\r
-}\r
-\r
-void M23IRQHook(int a)\r
+void FP_FASTAPASS(1) M23IRQHook(int a)\r
 {\r
   #define LCYCS 341\r
   if(IRQa)\r
@@ -154,7 +153,7 @@ void M23IRQHook(int a)
       {\r
         acount-=LCYCS;\r
         IRQCount++;\r
-        if(IRQCount&0x100) \r
+        if(IRQCount&0x100)\r
         {\r
           X6502_IRQBegin(FCEU_IQEXT);\r
           IRQCount=IRQLatch;\r