32x: built-in BIOS; reset handling; 68k memhandler split
[libpicofe.git] / common / emu.c
index 627c3be..a8de902 100644 (file)
@@ -514,6 +514,9 @@ int emu_reload_rom(char *rom_fname)
 \r
        shutdown_MCD();\r
        PicoPatchUnload();\r
+       PicoCartUnload();\r
+       rom_loaded = 0;\r
+\r
        PicoAHW = 0;\r
 \r
        if (media_type == PM_CD)\r
@@ -558,9 +561,6 @@ int emu_reload_rom(char *rom_fname)
 \r
        menu_romload_prepare(used_rom_name); // also CD load\r
 \r
-       PicoCartUnload();\r
-       rom_loaded = 0;\r
-\r
        ret = PicoCartLoad(rom, &rom_data, &rom_size, (PicoAHW & PAHW_SMS) ? 1 : 0);\r
        pm_close(rom);\r
        if (ret != 0) {\r
@@ -1299,6 +1299,19 @@ void emu_init(void)
        char path[512];\r
        int pos;\r
 \r
+#if 0\r
+       // FIXME: handle through menu, etc\r
+       FILE *f;\r
+       f = fopen("32X_M_BIOS.BIN", "rb");\r
+       p32x_bios_m = malloc(2048);\r
+       fread(p32x_bios_m, 1, 2048, f);\r
+       fclose(f);\r
+       f = fopen("32X_S_BIOS.BIN", "rb");\r
+       p32x_bios_s = malloc(1024);\r
+       fread(p32x_bios_s, 1, 1024, f);\r
+       fclose(f);\r
+#endif\r
+\r
        /* make dirs for saves */\r
        pos = plat_get_root_dir(path, sizeof(path) - 4);\r
        mkdir_path(path, pos, "mds");\r
@@ -1373,6 +1386,7 @@ void emu_loop(void)
        // prepare CD buffer\r
        if (PicoAHW & PAHW_MCD)\r
                PicoCDBufferInit();\r
+       PicoLoopPrepare();\r
 \r
        pemu_loop_prep();\r
 \r