merge mappers from FCEU-mm
[fceu.git] / boards / 187.c
index 0f49748..0852cba 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
+ * A98402 board, A9711, A9746 similar\r
+ * King of Fighters 96, The (Unl), Street Fighter Zero 2 (Unl)\r
+ * \r
  */\r
 \r
 #include "mapinc.h"\r
@@ -35,7 +39,12 @@ static void M187PW(uint32 A, uint8 V)
   {\r
     uint8 bank=EXPREGS[0]&0x1F;\r
     if(EXPREGS[0]&0x20)\r
-      setprg32(0x8000,bank>>2);\r
+    {\r
+      if(EXPREGS[0]&0x40)\r
+        setprg32(0x8000,bank>>2);\r
+      else\r
+        setprg32(0x8000,bank>>1); // hacky hacky! two mappers in one! need real hw carts to test\r
+    }\r
     else\r
     {\r
       setprg16(0x8000,bank);\r
@@ -48,28 +57,19 @@ static void M187PW(uint32 A, uint8 V)
 \r
 static DECLFW(M187Write8000)\r
 {\r
-  EXPREGS[2]=1;\r
+  EXPREGS[1]=1;\r
   MMC3_CMDWrite(A,V);\r
 }\r
 \r
 static DECLFW(M187Write8001)\r
 {\r
-  if(EXPREGS[2])\r
+  if(EXPREGS[1])\r
     MMC3_CMDWrite(A,V);\r
 }\r
 \r
-static DECLFW(M187Write8003)\r
-{\r
-  EXPREGS[2]=0;\r
-  if(V==0x28)setprg8(0xC000,0x17);\r
-  else if(V==0x2A)setprg8(0xA000,0x0F);\r
-}\r
-\r
-\r
 static DECLFW(M187WriteLo)\r
 {\r
-  EXPREGS[1]=V;\r
-  if(A==0x5000)\r
+  if((A==0x5000)||(A==0x6000))\r
   {\r
     EXPREGS[0]=V;\r
     FixMMC3PRG(MMC3_cmd);\r
@@ -84,13 +84,12 @@ static DECLFR(M187Read)
 \r
 static void M187Power(void)\r
 {\r
-  EXPREGS[0]=EXPREGS[1]=EXPREGS[2]=0;\r
+  EXPREGS[0]=EXPREGS[1]=0;\r
   GenMMC3Power();\r
   SetReadHandler(0x5000,0x5FFF,M187Read);\r
-  SetWriteHandler(0x5000,0x5FFF,M187WriteLo);\r
+  SetWriteHandler(0x5000,0x6FFF,M187WriteLo);\r
   SetWriteHandler(0x8000,0x8000,M187Write8000);\r
   SetWriteHandler(0x8001,0x8001,M187Write8001);\r
-  SetWriteHandler(0x8003,0x8003,M187Write8003);\r
 }\r
 \r
 void Mapper187_Init(CartInfo *info)\r