X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=platform%2Fcommon%2Femu.c;h=18f63f2c2800fa72471d7002d1e4cde2fd15242e;hb=274fcc35aa20e9777a8e09630a94088757384329;hp=ebc7c773ea5918baa8e9fb4bb026c6f27d11cb86;hpb=9a1f192a146e9b9752ec1a760745b1261fe9bdec;p=picodrive.git diff --git a/platform/common/emu.c b/platform/common/emu.c index ebc7c77..18f63f2 100644 --- a/platform/common/emu.c +++ b/platform/common/emu.c @@ -151,13 +151,13 @@ void emu_status_msg(const char *format, ...) } static const char * const biosfiles_us[] = { - "us_scd1_9210", "us_scd2_9306", "SegaCDBIOS9303", "bios_CD_U" + "us_scd2_9306", "SegaCDBIOS9303", "us_scd1_9210", "bios_CD_U" }; static const char * const biosfiles_eu[] = { - "eu_mcd1_9210", "eu_mcd2_9306", "eu_mcd2_9303", "bios_CD_E" + "eu_mcd2_9306", "eu_mcd2_9303", "eu_mcd1_9210", "bios_CD_E" }; static const char * const biosfiles_jp[] = { - "jp_mcd1_9112", "jp_mcd1_9111", "bios_CD_J" + "jp_mcd2_921222", "jp_mcd1_9112", "jp_mcd1_9111", "bios_CD_J" }; static const char *find_bios(int *region, const char *cd_fname) @@ -322,6 +322,10 @@ static void system_announce(void) #endif } else if (PicoAHW & PAHW_PICO) { sys_name = "Pico"; + } else if ((PicoAHW & (PAHW_32X|PAHW_MCD)) == (PAHW_32X|PAHW_MCD)) { + sys_name = "32X + Mega CD"; + if ((Pico.m.hardware & 0xc0) == 0x80) + sys_name = "32X + Sega CD"; } else if (PicoAHW & PAHW_MCD) { sys_name = "Mega CD"; if ((Pico.m.hardware & 0xc0) == 0x80) @@ -348,6 +352,8 @@ static void do_region_override(const char *media_fname) int emu_reload_rom(const char *rom_fname_in) { + // use setting before rom config is loaded + int autoload = g_autostateld_opt; char *rom_fname = NULL; char ext[5]; enum media_type_e media_type; @@ -491,7 +497,7 @@ int emu_reload_rom(const char *rom_fname_in) emu_save_load_game(1, 1); // state autoload? - if (g_autostateld_opt) { + if (autoload) { int time, newest = 0, newest_slot = -1; int slot; @@ -524,19 +530,20 @@ out: int emu_swap_cd(const char *fname) { - cd_img_type cd_type; + enum cd_img_type cd_type; int ret = -1; cd_type = PicoCdCheck(fname, NULL); if (cd_type != CIT_NOT_CD) - ret = Insert_CD(fname, cd_type); + ret = cdd_load(fname, cd_type); if (ret != 0) { menu_update_msg("Load failed, invalid CD image?"); return 0; } strncpy(rom_fname_loaded, fname, sizeof(rom_fname_loaded)-1); - rom_fname_loaded[sizeof(rom_fname_loaded)-1] = 0; + rom_fname_loaded[sizeof(rom_fname_loaded) - 1] = 0; + return 1; } @@ -572,7 +579,7 @@ void emu_prep_defconfig(void) defaultConfig.EmuOpt = 0x9d | EOPT_EN_CD_LEDS; defaultConfig.s_PicoOpt = POPT_EN_STEREO|POPT_EN_FM|POPT_EN_PSG|POPT_EN_Z80 | POPT_EN_MCD_PCM|POPT_EN_MCD_CDDA|POPT_EN_MCD_GFX | - POPT_EN_SVP_DRC|POPT_ACC_SPRITES | + POPT_EN_DRC|POPT_ACC_SPRITES | POPT_EN_32X|POPT_EN_PWM; defaultConfig.s_PsndRate = 44100; defaultConfig.s_PicoRegion = 0; // auto @@ -600,7 +607,6 @@ void emu_set_defconfig(void) PsndRate = currentConfig.s_PsndRate; PicoRegionOverride = currentConfig.s_PicoRegion; PicoAutoRgnOrder = currentConfig.s_PicoAutoRgnOrder; - PicoCDBuffers = currentConfig.s_PicoCDBuffers; } int emu_read_config(const char *rom_fname, int no_defaults) @@ -1306,7 +1312,6 @@ static void emu_loop_prep(void) filter_old = currentConfig.filter; } -printf("-- gamma %d\n", currentConfig.gamma); plat_target_gamma_set(currentConfig.gamma, 0); pemu_loop_prep(); @@ -1331,10 +1336,6 @@ void emu_loop(void) PicoLoopPrepare(); - // prepare CD buffer - if (PicoAHW & PAHW_MCD) - PicoCDBufferInit(); - plat_video_loop_prepare(); emu_loop_prep(); pemu_sound_start(); @@ -1496,10 +1497,4 @@ void emu_loop(void) pemu_loop_end(); emu_sound_stop(); - - // pemu_loop_end() might want to do 1 frame for bg image, - // so free CD buffer here - if (PicoAHW & PAHW_MCD) - PicoCDBufferFree(); } -