Merge git://github.com/ekeeke/Genesis-Plus-GX

This commit is contained in:
twinaphex 2012-10-23 15:16:53 +02:00
commit 38496fd5b2
2 changed files with 56 additions and 43 deletions

View File

@ -1069,7 +1069,7 @@ void scd_init(void)
} }
/* $200000-$3FFFFF (resp. $600000-$7FFFFF): Word-RAM in 2M mode (256KB mirrored) */ /* $200000-$3FFFFF (resp. $600000-$7FFFFF): Word-RAM in 2M mode (256KB mirrored) */
for (i=base+0x20; i<base+0x24; i++) for (i=base+0x20; i<base+0x40; i++)
{ {
m68k.memory_map[i].base = scd.word_ram_2M + ((i & 3) << 16); m68k.memory_map[i].base = scd.word_ram_2M + ((i & 3) << 16);
m68k.memory_map[i].read8 = NULL; m68k.memory_map[i].read8 = NULL;

View File

@ -246,7 +246,7 @@ int ParseDirectory(void)
****************************************************************************/ ****************************************************************************/
int LoadFile(int selection) int LoadFile(int selection)
{ {
int size = 0, filetype; int size = 0, reload, filetype;
char filename[MAXPATHLEN]; char filename[MAXPATHLEN];
/* file path */ /* file path */
@ -270,20 +270,29 @@ int LoadFile(int selection)
/* open message box */ /* open message box */
GUI_MsgBoxOpen("Information", "Loading game...", 1); GUI_MsgBoxOpen("Information", "Loading game...", 1);
/* by default, update loaded game informations */
reload = 1;
/* check if virtual CD tray was open */ /* check if virtual CD tray was open */
if ((system_hw == SYSTEM_MCD) && (cdd.status == CD_OPEN)) if ((system_hw == SYSTEM_MCD) && (cdd.status == CD_OPEN))
{ {
/* swap CD image file */ /* swap CD image file without changing region, system,... */
size = cdd_load(filename, (char *)(cdc.ram)); size = cdd_load(filename, (char *)(cdc.ram));
/* update CD header informations */ /* Mode 1 cartridge loaded ? */
if (!scd.cartridge.boot) if (scd.cartridge.boot)
{ {
/* loaded ROM file infos should not be modified */
reload = 0;
}
else
{
/* update CD header informations */
getrominfo((char *)(cdc.ram)); getrominfo((char *)(cdc.ram));
} }
} }
/* no CD image file loaded */ /* no CD image file swapped */
if (!size) if (!size)
{ {
/* close CD tray to force system reset */ /* close CD tray to force system reset */
@ -294,6 +303,9 @@ int LoadFile(int selection)
} }
if (size > 0) if (size > 0)
{
/* check if loaded game has changed */
if (reload)
{ {
/* auto-save previous game state */ /* auto-save previous game state */
slot_autosave(config.s_default,config.s_device); slot_autosave(config.s_default,config.s_device);
@ -334,6 +346,7 @@ int LoadFile(int selection)
int i = strlen(rom_filename) - 1; int i = strlen(rom_filename) - 1;
while ((i > 0) && (rom_filename[i] != '.')) i--; while ((i > 0) && (rom_filename[i] != '.')) i--;
if (i > 0) rom_filename[i] = 0; if (i > 0) rom_filename[i] = 0;
}
/* add/move the file to the top of the history. */ /* add/move the file to the top of the history. */
history_add_file(filepath, filelist[selection].filename, filetype); history_add_file(filepath, filelist[selection].filename, filetype);