core, fix loading and mapping for images > 4MB
authorkub <derkub@gmail.com>
Thu, 30 Sep 2021 19:57:22 +0000 (21:57 +0200)
committerkub <derkub@gmail.com>
Thu, 30 Sep 2021 19:57:22 +0000 (21:57 +0200)
pico/cart.c
pico/memory.c

index 44b1707..61682bc 100644 (file)
@@ -772,7 +772,7 @@ int PicoCartLoad(pm_file *f,unsigned char **prom,unsigned int *psize,int is_sms)
       ret = pm_read(p,todo,f);\r
       bytes_read += ret;\r
       p += ret;\r
-      PicoCartLoadProgressCB(bytes_read * 100 / size);\r
+      PicoCartLoadProgressCB(bytes_read * 100LL / size);\r
     }\r
     while (ret > 0);\r
   }\r
index 46c335c..25e7831 100644 (file)
@@ -772,6 +772,7 @@ PICO_INTERNAL void PicoMemSetup(void)
   // align to bank size. We know ROM loader allocated enough for this\r
   mask = (1 << M68K_MEM_SHIFT) - 1;\r
   rs = (Pico.romsize + mask) & ~mask;\r
+  if (rs > 0x400000) rs = 0x400000; // max cartridge area\r
   cpu68k_map_set(m68k_read8_map,  0x000000, rs - 1, Pico.rom, 0);\r
   cpu68k_map_set(m68k_read16_map, 0x000000, rs - 1, Pico.rom, 0);\r
 \r