bugfixes, r171 release
[fceu.git] / unif.c
diff --git a/unif.c b/unif.c
index e5bb8e1..03430f5 100644 (file)
--- a/unif.c
+++ b/unif.c
@@ -62,8 +62,8 @@ static CartInfo UNIFCart;
 \r
 static int vramo;\r
 static int mirrortodo;\r
-static uint8 *boardname;\r
-static uint8 *sboardname;\r
+static char *boardname;\r
+static char *sboardname;\r
 \r
 static uint32 CHRRAMSize;\r
 uint8 *UNIFchrrama=0;\r
@@ -274,7 +274,7 @@ static int LoadPRG(int fp)
 \r
 static int SetBoardName(int fp)\r
 {\r
- if(!(boardname=(uint8 *)FCEU_malloc(uchead.info+1)))\r
+ if(!(boardname=FCEU_malloc(uchead.info+1)))\r
   return(0);\r
  FCEU_fread(boardname,1,uchead.info,fp);\r
  boardname[uchead.info]=0;\r
@@ -333,15 +333,14 @@ static BMAPPING bmap[] = {
  { "SA-0037", SA0037_Init,0},\r
  { "SA-NROM", TCA01_Init,0},\r
 \r
- { "H2288", UNLH2288_Init,0},\r
- { "8237", UNL8237_Init,0},\r
-\r
 // /* AVE carts. */\r
 // { "MB-91", MB91_Init,0},  // DeathBots\r
 // { "NINA-06", NINA06_Init,0},  // F-15 City War\r
 // { "NINA-03", NINA03_Init,0},  // Tiles of Fate\r
 // { "NINA-001", NINA001_Init,0}, // Impossible Mission 2\r
 \r
+ { "ANROM", ANROM_Init,0},\r
+\r
  { "HKROM", HKROM_Init,0},\r
 \r
  { "EWROM", EWROM_Init,0},\r
@@ -376,25 +375,42 @@ static BMAPPING bmap[] = {
 \r
  { "CPROM", CPROM_Init,BMCFLAG_16KCHRR},\r
  { "CNROM", CNROM_Init,0},\r
- { "GNROM", GNROM_Init,0},\r
- { "NROM", NROM256_Init,0 },\r
- { "RROM", NROM128_Init,0 },\r
- { "RROM-128", NROM128_Init,0 },\r
- { "NROM-128", NROM128_Init,0 },\r
- { "NROM-256", NROM256_Init,0 },\r
+ { "NROM", NROM_Init,0 }, //NROM256_Init,0 },\r
+ { "NROM-128", NROM_Init,0 }, //NROM128_Init,0 },\r
+ { "NROM-256", NROM_Init,0 }, //NROM256_Init,0 },\r
+ { "RROM", NROM_Init,0 }, //NROM128_Init,0 },\r
+ { "RROM-128", NROM_Init,0 }, //NROM128_Init,0 },\r
  { "MHROM", MHROM_Init,0},\r
  { "UNROM", UNROM_Init,0},\r
+ { "SUNSOFT_UNROM", SUNSOFT_UNROM_Init,0},\r
  { "MARIO1-MALEE2", MALEE_Init,0},\r
 \r
  { "CC-21", UNLCC21_Init,0},\r
 \r
+ { "H2288", UNLH2288_Init,0},\r
+ { "KOF97", UNLKOF97_Init,0},\r
+ { "SL1632", UNLSL1632_Init,0},\r
+ { "SHERO", UNLSHeroes_Init,0},\r
+ { "8237", UNL8237_Init,0},\r
  { "8157", UNL8157_Init,0},\r
+ { "T-262", BMCT262_Init,0},\r
+ { "FK23C", BMCFK23C_Init,0},\r
  { "Supervision16in1", Supervision16_Init,0},\r
  { "NovelDiamond9999999in1", Novel_Init,0},\r
  { "Super24in1SC03", Super24_Init,0},\r
+ { "42in1ResetSwitch", BMC42in1r_Init, 0},\r
+ { "64in1NoRepeat", BMC64in1nr_Init, 0},\r
+ { "13in1JY110", BMC13in1JY110_Init, 0},\r
+ { "70in1", BMC70in1_Init, 0},\r
+ { "70in1B", BMC70in1B_Init, 0},\r
+ { "GK-192", Mapper58_Init, 0},\r
  { "SuperHIK8in1", Mapper45_Init,0},\r
+\r
  { "DREAMTECH01", DreamTech01_Init,0},\r
  { "KONAMI-QTAI", Mapper190_Init,0},\r
+\r
+ { "TEK90", Mapper90_Init,0},\r
+\r
  {0,0,0}\r
 };\r
 \r
@@ -454,7 +470,7 @@ static int InitializeBoard(void)
 \r
    while(bmap[x].name)\r
    {\r
-    if(!strcmp((char *)sboardname,(char *)bmap[x].name))\r
+    if(!strcmp(sboardname,(char *)bmap[x].name))\r
     {\r
      if(!malloced[16])\r
      {\r
@@ -482,7 +498,7 @@ static int InitializeBoard(void)
    return(0);\r
 }\r
 \r
-static void UNIFGI(int h)\r
+static void UNIFGI(int h, void *param)\r
 {\r
  switch(h)\r
  {\r
@@ -500,7 +516,16 @@ static void UNIFGI(int h)
                if(UNIFCart.Close)\r
                 UNIFCart.Close();\r
                 FreeUNIF();\r
+               ResetExState(0,0);\r
                 break;\r
+  case GI_INFOSTRING:\r
+               {\r
+                char board[24];\r
+                strncpy(board, sboardname, 20);\r
+                board[20] = 0;\r
+                sprintf(param, "UNIF, %s, %s%s", board, PAL?"PAL":"NTSC", UNIFCart.battery?", BB":"");\r
+               }\r
+               break;\r
  }\r
 }\r
 \r