-#include "mapinc.h"\r
-\r
-static uint8 mode;\r
-static uint8 DRegs[4];\r
-\r
-static SFORMAT StateRegs[]=\r
-{\r
- {DRegs, 4, "DREG"},\r
- {0}\r
-};\r
-\r
-static void Sync(void)\r
-{\r
- int base, bank;\r
- base = ((DRegs[0]^DRegs[1])&0x10)<<1;\r
- bank = (DRegs[2]^DRegs[3])&0x1f;\r
-\r
- if(DRegs[1]&0x08)\r
- {\r
- bank &= 0xfe;\r
- if(mode==0)\r
- {\r
- setprg16(0x8000,base+bank+1);\r
- setprg16(0xC000,base+bank+0);\r
- }\r
- else\r
- {\r
- setprg16(0x8000,base+bank+0);\r
- setprg16(0xC000,base+bank+1);\r
- }\r
- }\r
- else\r
- {\r
- if(DRegs[1]&0x04)\r
- {\r
- setprg16(0x8000,0x1f);\r
- setprg16(0xC000,base+bank);\r
- }\r
- else\r
- {\r
- setprg16(0x8000,base+bank);\r
- if(mode==0)\r
- setprg16(0xC000,0x20);\r
- else\r
- setprg16(0xC000,0x07);\r
- }\r
- }\r
-}\r
-\r
-static DECLFW(Mapper167_write)\r
-{\r
- DRegs[(A>>13)&0x03]=V;\r
- Sync();\r
-}\r
-\r
-static void StateRestore(int version)\r
-{\r
- Sync();\r
-}\r
-\r
-void Mapper166_init(void)\r
-{\r
- mode=1;\r
- DRegs[0]=DRegs[1]=DRegs[2]=DRegs[3]=0;\r
- Sync();\r
- SetWriteHandler(0x8000,0xFFFF,Mapper167_write);\r
- GameStateRestore=StateRestore;\r
- AddExState(&StateRegs, ~0, 0, 0);\r
-}\r
-\r
-void Mapper167_init(void)\r
-{\r
- mode=0;\r
- DRegs[0]=DRegs[1]=DRegs[2]=DRegs[3]=0;\r
- Sync();\r
- SetWriteHandler(0x8000,0xFFFF,Mapper167_write);\r
- GameStateRestore=StateRestore;\r
- AddExState(&StateRegs, ~0, 0, 0);\r
-}\r
+#include "mapinc.h"
+
+static uint8 mode;
+static uint8 DRegs[4];
+
+static SFORMAT StateRegs[]=
+{
+ {DRegs, 4, "DREG"},
+ {0}
+};
+
+static void Sync(void)
+{
+ int base, bank;
+ base = ((DRegs[0]^DRegs[1])&0x10)<<1;
+ bank = (DRegs[2]^DRegs[3])&0x1f;
+
+ if(DRegs[1]&0x08)
+ {
+ bank &= 0xfe;
+ if(mode==0)
+ {
+ setprg16(0x8000,base+bank+1);
+ setprg16(0xC000,base+bank+0);
+ }
+ else
+ {
+ setprg16(0x8000,base+bank+0);
+ setprg16(0xC000,base+bank+1);
+ }
+ }
+ else
+ {
+ if(DRegs[1]&0x04)
+ {
+ setprg16(0x8000,0x1f);
+ setprg16(0xC000,base+bank);
+ }
+ else
+ {
+ setprg16(0x8000,base+bank);
+ if(mode==0)
+ setprg16(0xC000,0x20);
+ else
+ setprg16(0xC000,0x07);
+ }
+ }
+}
+
+static DECLFW(Mapper167_write)
+{
+ DRegs[(A>>13)&0x03]=V;
+ Sync();
+}
+
+static void StateRestore(int version)
+{
+ Sync();
+}
+
+void Mapper166_init(void)
+{
+ mode=1;
+ DRegs[0]=DRegs[1]=DRegs[2]=DRegs[3]=0;
+ Sync();
+ SetWriteHandler(0x8000,0xFFFF,Mapper167_write);
+ GameStateRestore=StateRestore;
+ AddExState(&StateRegs, ~0, 0, 0);
+}
+
+void Mapper167_init(void)
+{
+ mode=0;
+ DRegs[0]=DRegs[1]=DRegs[2]=DRegs[3]=0;
+ Sync();
+ SetWriteHandler(0x8000,0xFFFF,Mapper167_write);
+ GameStateRestore=StateRestore;
+ AddExState(&StateRegs, ~0, 0, 0);
+}