bugfixes, r171 release
[fceu.git] / unif.c
diff --git a/unif.c b/unif.c
index dda5d7f..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
@@ -470,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
@@ -498,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
@@ -516,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