32x and sms savestates. Core-independent z80 state. SS bugfixing/refactoring.
[picodrive.git] / pico / cart.c
index 42d0817..8ac330a 100644 (file)
@@ -439,6 +439,9 @@ static unsigned char *PicoCartAlloc(int filesize, int is_sms)
     if (filesize > (1 << s))\r
       s++;\r
     rom_alloc_size = 1 << s;\r
+    // be sure we can cover all address space\r
+    if (rom_alloc_size < 0x10000)\r
+      rom_alloc_size = 0x10000;\r
   }\r
   else {\r
     // make alloc size at least sizeof(mcd_state),\r
@@ -592,6 +595,17 @@ int PicoCartInsert(unsigned char *rom, unsigned int romsize, const char *carthw_
   return 0;\r
 }\r
 \r
+int PicoCartResize(int newsize)\r
+{\r
+  void *tmp = plat_mremap(Pico.rom, rom_alloc_size, newsize);\r
+  if (tmp == NULL)\r
+    return -1;\r
+\r
+  Pico.rom = tmp;\r
+  rom_alloc_size = newsize;\r
+  return 0;\r
+}\r
+\r
 void PicoCartUnload(void)\r
 {\r
   if (PicoCartUnloadHook != NULL) {\r