mcd, fix crash if no bios with msu
authorkub <derkub@gmail.com>
Fri, 27 Sep 2024 07:16:50 +0000 (09:16 +0200)
committerkub <derkub@gmail.com>
Fri, 27 Sep 2024 07:21:01 +0000 (09:21 +0200)
pico/cd/memory.c

index 7699df2..72a64e4 100644 (file)
@@ -1220,6 +1220,13 @@ static void m68k_mem_setup_cd(void);
 \r
 PICO_INTERNAL void PicoMemSetupCD(void)\r
 {\r
+  if (Pico_mcd == NULL) {\r
+    static u8 bios_id[4] = "SEGA";\r
+    PicoCreateMCD(NULL, 0);\r
+    // BIOS faking for MSU-MD, checks for "SEGA" at 0x400100 to detect CD drive\r
+    memcpy(Pico_mcd->bios+0x100, bios_id, 4);\r
+  }\r
+\r
   pcd_base_address = (Pico.romsize ? 0x400000 : 0x000000);\r
 \r
   // setup default main68k map\r