notaz.gp2x.de
/
picodrive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use PBTN_MOK instead of PBTN_MA3 to confirm loading/saving state
[picodrive.git]
/
platform
/
common
/
emu.c
diff --git
a/platform/common/emu.c
b/platform/common/emu.c
index
ebc7c77
..
88fefd5
100644
(file)
--- a/
platform/common/emu.c
+++ b/
platform/common/emu.c
@@
-151,13
+151,13
@@
void emu_status_msg(const char *format, ...)
}
\r
\r
static const char * const biosfiles_us[] = {
\r
}
\r
\r
static const char * const biosfiles_us[] = {
\r
- "us_scd
1_9210", "us_scd2_9306", "SegaCDBIOS9303
", "bios_CD_U"
\r
+ "us_scd
2_9306", "SegaCDBIOS9303", "us_scd1_9210
", "bios_CD_U"
\r
};
\r
static const char * const biosfiles_eu[] = {
\r
};
\r
static const char * const biosfiles_eu[] = {
\r
- "eu_mcd
1_9210", "eu_mcd2_9306", "eu_mcd2_9303
", "bios_CD_E"
\r
+ "eu_mcd
2_9306", "eu_mcd2_9303", "eu_mcd1_9210
", "bios_CD_E"
\r
};
\r
static const char * const biosfiles_jp[] = {
\r
};
\r
static const char * const biosfiles_jp[] = {
\r
- "jp_mcd1_9112", "jp_mcd1_9111", "bios_CD_J"
\r
+ "jp_mcd
2_921222", "jp_mcd
1_9112", "jp_mcd1_9111", "bios_CD_J"
\r
};
\r
\r
static const char *find_bios(int *region, const char *cd_fname)
\r
};
\r
\r
static const char *find_bios(int *region, const char *cd_fname)
\r
@@
-322,6
+322,10
@@
static void system_announce(void)
#endif
\r
} else if (PicoAHW & PAHW_PICO) {
\r
sys_name = "Pico";
\r
#endif
\r
} else if (PicoAHW & PAHW_PICO) {
\r
sys_name = "Pico";
\r
+ } else if ((PicoAHW & (PAHW_32X|PAHW_MCD)) == (PAHW_32X|PAHW_MCD)) {
\r
+ sys_name = "32X + Mega CD";
\r
+ if ((Pico.m.hardware & 0xc0) == 0x80)
\r
+ sys_name = "32X + Sega CD";
\r
} else if (PicoAHW & PAHW_MCD) {
\r
sys_name = "Mega CD";
\r
if ((Pico.m.hardware & 0xc0) == 0x80)
\r
} else if (PicoAHW & PAHW_MCD) {
\r
sys_name = "Mega CD";
\r
if ((Pico.m.hardware & 0xc0) == 0x80)
\r
@@
-348,6
+352,8
@@
static void do_region_override(const char *media_fname)
\r
int emu_reload_rom(const char *rom_fname_in)
\r
{
\r
\r
int emu_reload_rom(const char *rom_fname_in)
\r
{
\r
+ // use setting before rom config is loaded
\r
+ int autoload = g_autostateld_opt;
\r
char *rom_fname = NULL;
\r
char ext[5];
\r
enum media_type_e media_type;
\r
char *rom_fname = NULL;
\r
char ext[5];
\r
enum media_type_e media_type;
\r
@@
-491,7
+497,7
@@
int emu_reload_rom(const char *rom_fname_in)
emu_save_load_game(1, 1);
\r
\r
// state autoload?
\r
emu_save_load_game(1, 1);
\r
\r
// state autoload?
\r
- if (
g_autostateld_opt
) {
\r
+ if (
autoload
) {
\r
int time, newest = 0, newest_slot = -1;
\r
int slot;
\r
\r
int time, newest = 0, newest_slot = -1;
\r
int slot;
\r
\r
@@
-524,19
+530,20
@@
out:
\r
int emu_swap_cd(const char *fname)
\r
{
\r
\r
int emu_swap_cd(const char *fname)
\r
{
\r
- cd_img_type cd_type;
\r
+
enum
cd_img_type cd_type;
\r
int ret = -1;
\r
\r
cd_type = PicoCdCheck(fname, NULL);
\r
if (cd_type != CIT_NOT_CD)
\r
int ret = -1;
\r
\r
cd_type = PicoCdCheck(fname, NULL);
\r
if (cd_type != CIT_NOT_CD)
\r
- ret =
Insert_CD
(fname, cd_type);
\r
+ ret =
cdd_load
(fname, cd_type);
\r
if (ret != 0) {
\r
menu_update_msg("Load failed, invalid CD image?");
\r
return 0;
\r
}
\r
\r
strncpy(rom_fname_loaded, fname, sizeof(rom_fname_loaded)-1);
\r
if (ret != 0) {
\r
menu_update_msg("Load failed, invalid CD image?");
\r
return 0;
\r
}
\r
\r
strncpy(rom_fname_loaded, fname, sizeof(rom_fname_loaded)-1);
\r
- rom_fname_loaded[sizeof(rom_fname_loaded)-1] = 0;
\r
+ rom_fname_loaded[sizeof(rom_fname_loaded) - 1] = 0;
\r
+
\r
return 1;
\r
}
\r
\r
return 1;
\r
}
\r
\r
@@
-572,7
+579,7
@@
void emu_prep_defconfig(void)
defaultConfig.EmuOpt = 0x9d | EOPT_EN_CD_LEDS;
\r
defaultConfig.s_PicoOpt = POPT_EN_STEREO|POPT_EN_FM|POPT_EN_PSG|POPT_EN_Z80 |
\r
POPT_EN_MCD_PCM|POPT_EN_MCD_CDDA|POPT_EN_MCD_GFX |
\r
defaultConfig.EmuOpt = 0x9d | EOPT_EN_CD_LEDS;
\r
defaultConfig.s_PicoOpt = POPT_EN_STEREO|POPT_EN_FM|POPT_EN_PSG|POPT_EN_Z80 |
\r
POPT_EN_MCD_PCM|POPT_EN_MCD_CDDA|POPT_EN_MCD_GFX |
\r
- POPT_EN_
SVP_
DRC|POPT_ACC_SPRITES |
\r
+ POPT_EN_DRC|POPT_ACC_SPRITES |
\r
POPT_EN_32X|POPT_EN_PWM;
\r
defaultConfig.s_PsndRate = 44100;
\r
defaultConfig.s_PicoRegion = 0; // auto
\r
POPT_EN_32X|POPT_EN_PWM;
\r
defaultConfig.s_PsndRate = 44100;
\r
defaultConfig.s_PicoRegion = 0; // auto
\r
@@
-600,7
+607,6
@@
void emu_set_defconfig(void)
PsndRate = currentConfig.s_PsndRate;
\r
PicoRegionOverride = currentConfig.s_PicoRegion;
\r
PicoAutoRgnOrder = currentConfig.s_PicoAutoRgnOrder;
\r
PsndRate = currentConfig.s_PsndRate;
\r
PicoRegionOverride = currentConfig.s_PicoRegion;
\r
PicoAutoRgnOrder = currentConfig.s_PicoAutoRgnOrder;
\r
- PicoCDBuffers = currentConfig.s_PicoCDBuffers;
\r
}
\r
\r
int emu_read_config(const char *rom_fname, int no_defaults)
\r
}
\r
\r
int emu_read_config(const char *rom_fname, int no_defaults)
\r
@@
-1067,9
+1073,9
@@
static void run_events_ui(unsigned int which)
char tmp[64];
\r
int keys, len;
\r
\r
char tmp[64];
\r
int keys, len;
\r
\r
- strcpy(tmp, (which & PEV_STATE_LOAD) ? "LOAD STATE?
" : "OVERWRITE SAVE?
");
\r
+ strcpy(tmp, (which & PEV_STATE_LOAD) ? "LOAD STATE?
" : "OVERWRITE SAVE?
");
\r
len = strlen(tmp);
\r
len = strlen(tmp);
\r
- nm = in_get_key_name(-1, -PBTN_M
A3
);
\r
+ nm = in_get_key_name(-1, -PBTN_M
OK
);
\r
snprintf(tmp + len, sizeof(tmp) - len, "(%s=yes, ", nm);
\r
len = strlen(tmp);
\r
nm = in_get_key_name(-1, -PBTN_MBACK);
\r
snprintf(tmp + len, sizeof(tmp) - len, "(%s=yes, ", nm);
\r
len = strlen(tmp);
\r
nm = in_get_key_name(-1, -PBTN_MBACK);
\r
@@
-1078,13
+1084,13
@@
static void run_events_ui(unsigned int which)
plat_status_msg_busy_first(tmp);
\r
\r
in_set_config_int(0, IN_CFG_BLOCKING, 1);
\r
plat_status_msg_busy_first(tmp);
\r
\r
in_set_config_int(0, IN_CFG_BLOCKING, 1);
\r
- while (in_menu_wait_any(NULL, 50) & (PBTN_M
A3|
PBTN_MBACK))
\r
+ while (in_menu_wait_any(NULL, 50) & (PBTN_M
OK |
PBTN_MBACK))
\r
;
\r
;
\r
- while ( !((keys = in_menu_wait_any(NULL, 50)) & (PBTN_M
A3|PBTN_MBACK))
)
\r
+ while ( !((keys = in_menu_wait_any(NULL, 50)) & (PBTN_M
OK | PBTN_MBACK))
)
\r
;
\r
if (keys & PBTN_MBACK)
\r
do_it = 0;
\r
;
\r
if (keys & PBTN_MBACK)
\r
do_it = 0;
\r
- while (in_menu_wait_any(NULL, 50) & (PBTN_M
A3|
PBTN_MBACK))
\r
+ while (in_menu_wait_any(NULL, 50) & (PBTN_M
OK |
PBTN_MBACK))
\r
;
\r
in_set_config_int(0, IN_CFG_BLOCKING, 0);
\r
}
\r
;
\r
in_set_config_int(0, IN_CFG_BLOCKING, 0);
\r
}
\r
@@
-1306,7
+1312,6
@@
static void emu_loop_prep(void)
filter_old = currentConfig.filter;
\r
}
\r
\r
filter_old = currentConfig.filter;
\r
}
\r
\r
-printf("-- gamma %d\n", currentConfig.gamma);
\r
plat_target_gamma_set(currentConfig.gamma, 0);
\r
\r
pemu_loop_prep();
\r
plat_target_gamma_set(currentConfig.gamma, 0);
\r
\r
pemu_loop_prep();
\r
@@
-1331,10
+1336,6
@@
void emu_loop(void)
\r
PicoLoopPrepare();
\r
\r
\r
PicoLoopPrepare();
\r
\r
- // prepare CD buffer
\r
- if (PicoAHW & PAHW_MCD)
\r
- PicoCDBufferInit();
\r
-
\r
plat_video_loop_prepare();
\r
emu_loop_prep();
\r
pemu_sound_start();
\r
plat_video_loop_prepare();
\r
emu_loop_prep();
\r
pemu_sound_start();
\r
@@
-1378,6
+1379,8
@@
void emu_loop(void)
{
\r
notice_msg_time = 0;
\r
plat_status_msg_clear();
\r
{
\r
notice_msg_time = 0;
\r
plat_status_msg_clear();
\r
+ plat_video_flip();
\r
+ plat_status_msg_clear(); /* Do it again in case of double buffering */
\r
notice_msg = NULL;
\r
}
\r
else {
\r
notice_msg = NULL;
\r
}
\r
else {
\r
@@
-1496,10
+1499,4
@@
void emu_loop(void)
\r
pemu_loop_end();
\r
emu_sound_stop();
\r
\r
pemu_loop_end();
\r
emu_sound_stop();
\r
-
\r
- // pemu_loop_end() might want to do 1 frame for bg image,
\r
- // so free CD buffer here
\r
- if (PicoAHW & PAHW_MCD)
\r
- PicoCDBufferFree();
\r
}
\r
}
\r
-
\r