fix underalloc
[picodrive.git] / pico / patch.c
index 42c6a4e..b961e80 100644 (file)
  * (of course, that's handled by a different source file :)
  */
 
-//#include <stdio.h>
-//#include <string.h>
-#include <ctype.h>
-
 #include "pico_int.h"
 #include "patch.h"
 
@@ -248,7 +244,8 @@ int PicoPatchLoad(const char *fname)
 
                llen = strlen(buff);
                for (clen = 0; clen < llen; clen++)
-                       if (isspace(buff[clen])) break;
+                       if (isspace_(buff[clen]))
+                               break;
                buff[clen] = 0;
 
                if (clen > 11 || clen < 8)
@@ -271,9 +268,11 @@ int PicoPatchLoad(const char *fname)
                strcpy(PicoPatches[PicoPatchCount].code, buff);
                /* strip */
                for (clen++; clen < llen; clen++)
-                       if (!isspace(buff[clen])) break;
+                       if (!isspace_(buff[clen]))
+                               break;
                for (llen--; llen > 0; llen--)
-                       if (!isspace(buff[llen])) break;
+                       if (!isspace_(buff[llen]))
+                               break;
                buff[llen+1] = 0;
                strncpy(PicoPatches[PicoPatchCount].name, buff + clen, 51);
                PicoPatches[PicoPatchCount].name[51] = 0;
@@ -298,7 +297,8 @@ void PicoPatchPrepare(void)
        for (i = 0; i < PicoPatchCount; i++)
        {
                PicoPatches[i].addr &= ~1;
-               PicoPatches[i].data_old = PicoRead16(PicoPatches[i].addr);
+               if (PicoPatches[i].addr < Pico.romsize)
+                       PicoPatches[i].data_old = *(unsigned short *)(Pico.rom + PicoPatches[i].addr);
                if (strstr(PicoPatches[i].name, "AUTO"))
                        PicoPatches[i].active = 1;
        }
@@ -328,9 +328,7 @@ void PicoPatchApply(void)
                }
                else
                {
-                       /* RAM or some other weird patch */
-                       if (PicoPatches[i].active)
-                               PicoWrite16(addr, PicoPatches[i].data);
+                       /* TODO? */
                }
        }
 }