mirror of
https://github.com/Oibaf66/uae-wii.git
synced 2024-11-15 07:15:09 +01:00
Path of last selected file remembered, A600 with 68000 cpu, getmodel function based on chipset and cpu
This commit is contained in:
parent
123760dac3
commit
e70dacb5f2
@ -698,6 +698,19 @@ static int cfgfile_path (const char *option, const char *value, const char *key)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int cfgfile_path_noexpand (const char *option, const char *value, const char *key)
|
||||||
|
{
|
||||||
|
if (strcmp (option, key) == 0) {
|
||||||
|
const char *path = strdup (value);
|
||||||
|
|
||||||
|
if (path)
|
||||||
|
prefs_set_attr (key, path);
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int getintval (char **p, int *result, int delim)
|
static int getintval (char **p, int *result, int delim)
|
||||||
{
|
{
|
||||||
char *value = *p;
|
char *value = *p;
|
||||||
@ -784,8 +797,13 @@ static int cfgfile_parse_host (struct uae_prefs *p, char *option, char *value)
|
|||||||
/* We special case the various path options here. */
|
/* We special case the various path options here. */
|
||||||
if (cfgfile_path (option, value, "rom_path"))
|
if (cfgfile_path (option, value, "rom_path"))
|
||||||
return 1;
|
return 1;
|
||||||
if (cfgfile_path (option, value, "floppy_path"))
|
#ifdef GEKKO
|
||||||
|
if (cfgfile_path_noexpand (option, value, "floppy_path"))
|
||||||
return 1;
|
return 1;
|
||||||
|
#else
|
||||||
|
if (cfgfile_path (option, value, "floppy_path"))
|
||||||
|
return 1;
|
||||||
|
#endif
|
||||||
if (cfgfile_path (option, value, "hardfile_path"))
|
if (cfgfile_path (option, value, "hardfile_path"))
|
||||||
return 1;
|
return 1;
|
||||||
#ifdef SAVESTATE
|
#ifdef SAVESTATE
|
||||||
@ -2444,7 +2462,11 @@ void default_prefs (struct uae_prefs *p, int type)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
prefs_set_attr ("rom_path", strdup_path_expand (TARGET_ROM_PATH));
|
prefs_set_attr ("rom_path", strdup_path_expand (TARGET_ROM_PATH));
|
||||||
prefs_set_attr ("floppy_path", strdup_path_expand (TARGET_FLOPPY_PATH));
|
#ifdef GEKKO
|
||||||
|
prefs_set_attr ("floppy_path", strdup(TARGET_FLOPPY_PATH)); //We don't want / at the end of path
|
||||||
|
#else
|
||||||
|
prefs_set_attr ("floppy_path", strdup_path_expand (TARGET_FLOPPY_PATH));
|
||||||
|
#endif
|
||||||
prefs_set_attr ("hardfile_path", strdup_path_expand (TARGET_HARDFILE_PATH));
|
prefs_set_attr ("hardfile_path", strdup_path_expand (TARGET_HARDFILE_PATH));
|
||||||
#ifdef SAVESTATE
|
#ifdef SAVESTATE
|
||||||
prefs_set_attr ("savestate_path", strdup_path_expand (TARGET_SAVESTATE_PATH));
|
prefs_set_attr ("savestate_path", strdup_path_expand (TARGET_SAVESTATE_PATH));
|
||||||
|
@ -34,8 +34,6 @@
|
|||||||
|
|
||||||
extern int usbismount, smbismount, sdismount;
|
extern int usbismount, smbismount, sdismount;
|
||||||
|
|
||||||
extern const char *strdup_path_expand (const char *src);
|
|
||||||
|
|
||||||
int gui_is_active;
|
int gui_is_active;
|
||||||
|
|
||||||
static void default_config(void);
|
static void default_config(void);
|
||||||
@ -139,7 +137,7 @@ static const char *emulation_messages[] = {
|
|||||||
/*08*/ "Sound interpolation",
|
/*08*/ "Sound interpolation",
|
||||||
/*09*/ "^|none|rh|crux|sinc",
|
/*09*/ "^|none|rh|crux|sinc",
|
||||||
/*10*/ "Collision level",
|
/*10*/ "Collision level",
|
||||||
/*11*/ "^|none|sprites|playfileds|full",
|
/*11*/ "^|none|sprites|playfields|full",
|
||||||
/*12*/ "Immediate blits",
|
/*12*/ "Immediate blits",
|
||||||
/*13*/ "^|on|off",
|
/*13*/ "^|on|off",
|
||||||
NULL
|
NULL
|
||||||
@ -256,7 +254,7 @@ static void A600_config(void)
|
|||||||
const char *roms[] = {"amiga-os-205.rom", "kick205.rom", NULL};
|
const char *roms[] = {"amiga-os-205.rom", "kick205.rom", NULL};
|
||||||
default_config();
|
default_config();
|
||||||
|
|
||||||
changed_prefs.cpu_level = 1; //68010
|
changed_prefs.cpu_level = 0; //68000
|
||||||
changed_prefs.fastmem_size = 0; //OFF
|
changed_prefs.fastmem_size = 0; //OFF
|
||||||
changed_prefs.chipmem_size = 1024 * 1024; //1024
|
changed_prefs.chipmem_size = 1024 * 1024; //1024
|
||||||
changed_prefs.bogomem_size = 0; //OFF
|
changed_prefs.bogomem_size = 0; //OFF
|
||||||
@ -303,14 +301,27 @@ static void default_config(void)
|
|||||||
static void insert_floppy(int which)
|
static void insert_floppy(int which)
|
||||||
{
|
{
|
||||||
const char *selected_file=changed_prefs.df[which];
|
const char *selected_file=changed_prefs.df[which];
|
||||||
const char *name = menu_select_file(prefs_get_attr("floppy_path"), selected_file, which);
|
char *name;
|
||||||
|
char *ptr_file_name;
|
||||||
|
char dir[255];
|
||||||
|
strncpy(dir,prefs_get_attr("floppy_path"),255);
|
||||||
|
name = (char *) menu_select_file(dir, selected_file, which);
|
||||||
|
|
||||||
if (name != NULL)
|
if (name != NULL)
|
||||||
{
|
{
|
||||||
if (strcmp(name, "None") == 0)
|
ptr_file_name = strrchr(name,'/');
|
||||||
|
if (ptr_file_name) ptr_file_name++; else ptr_file_name = name;
|
||||||
|
if (strcmp(ptr_file_name, "None") == 0)
|
||||||
changed_prefs.df[which][0] = '\0';
|
changed_prefs.df[which][0] = '\0';
|
||||||
else
|
else strcpy(changed_prefs.df[which], name);
|
||||||
strcpy (changed_prefs.df[which], name);
|
|
||||||
|
ptr_file_name = strrchr(name,'/');
|
||||||
|
if (ptr_file_name)
|
||||||
|
{
|
||||||
|
*ptr_file_name=0; //extract the dir from the path
|
||||||
|
if (strrchr(name,'/')==NULL) {*ptr_file_name='/'; *(ptr_file_name+1)=0;} //check if it was root
|
||||||
|
}
|
||||||
|
prefs_set_attr("floppy_path", strdup(name));
|
||||||
free((void*)name);
|
free((void*)name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -466,18 +477,15 @@ static void set_emulation_accuracy(int which)
|
|||||||
|
|
||||||
static int get_model(void)
|
static int get_model(void)
|
||||||
{
|
{
|
||||||
if (changed_prefs.cpu_level == 1) /* 68010 - only on the A600 */
|
|
||||||
return 2;
|
|
||||||
if (changed_prefs.cpu_level == 2) /* 68020 - only on the A1200 */
|
|
||||||
return 3;
|
|
||||||
if (changed_prefs.cpu_level == 0) /* 68000 - A1000/A500 */
|
|
||||||
{
|
|
||||||
if (changed_prefs.chipmem_size == 256 * 1024) /* A1000 */
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
/* A500 */
|
if ((changed_prefs.chipset_mask&CSMASK_AGA)&&(changed_prefs.cpu_level == 2)) /* A1200 */
|
||||||
|
return 3;
|
||||||
|
if ((changed_prefs.chipset_mask&CSMASK_ECS_DENISE)&&(changed_prefs.cpu_level == 0)) /* A600 */
|
||||||
|
return 2;
|
||||||
|
if ((changed_prefs.chipset_mask&CSMASK_ECS_AGNUS)&&(changed_prefs.cpu_level == 0)) /* A500 */
|
||||||
return 1;
|
return 1;
|
||||||
}
|
if ((changed_prefs.chipset_mask == 0)&&(changed_prefs.cpu_level == 0)) /* A1000 */
|
||||||
|
return 0;
|
||||||
|
|
||||||
/* Custom */
|
/* Custom */
|
||||||
return 4;
|
return 4;
|
||||||
@ -489,13 +497,13 @@ static void set_Port(int which)
|
|||||||
switch (which)
|
switch (which)
|
||||||
{
|
{
|
||||||
case PORT_DEFAULT:
|
case PORT_DEFAULT:
|
||||||
prefs_set_attr ("floppy_path", strdup_path_expand (TARGET_FLOPPY_PATH));
|
prefs_set_attr ("floppy_path", strdup(TARGET_FLOPPY_PATH));
|
||||||
changed_prefs.Port = which;
|
changed_prefs.Port = which;
|
||||||
currprefs.Port = changed_prefs.Port;
|
currprefs.Port = changed_prefs.Port;
|
||||||
break;
|
break;
|
||||||
case PORT_SD:
|
case PORT_SD:
|
||||||
if (sdismount) {
|
if (sdismount) {
|
||||||
prefs_set_attr ("floppy_path", strdup_path_expand (TARGET_SD_PATH));
|
prefs_set_attr ("floppy_path", strdup(TARGET_SD_PATH));
|
||||||
changed_prefs.Port = which;
|
changed_prefs.Port = which;
|
||||||
currprefs.Port = changed_prefs.Port;}
|
currprefs.Port = changed_prefs.Port;}
|
||||||
else
|
else
|
||||||
@ -503,7 +511,7 @@ static void set_Port(int which)
|
|||||||
break;
|
break;
|
||||||
case PORT_USB:
|
case PORT_USB:
|
||||||
if (usbismount) {
|
if (usbismount) {
|
||||||
prefs_set_attr ("floppy_path", strdup_path_expand (TARGET_USB_PATH));
|
prefs_set_attr ("floppy_path", strdup(TARGET_USB_PATH));
|
||||||
changed_prefs.Port = which;
|
changed_prefs.Port = which;
|
||||||
currprefs.Port = changed_prefs.Port;}
|
currprefs.Port = changed_prefs.Port;}
|
||||||
else
|
else
|
||||||
@ -511,7 +519,7 @@ static void set_Port(int which)
|
|||||||
break;
|
break;
|
||||||
case PORT_SMB:
|
case PORT_SMB:
|
||||||
if (smbismount) {
|
if (smbismount) {
|
||||||
prefs_set_attr ("floppy_path", strdup_path_expand (TARGET_SMB_PATH));
|
prefs_set_attr ("floppy_path", strdup(TARGET_SMB_PATH));
|
||||||
changed_prefs.Port = which;
|
changed_prefs.Port = which;
|
||||||
currprefs.Port = changed_prefs.Port;}
|
currprefs.Port = changed_prefs.Port;}
|
||||||
else
|
else
|
||||||
|
@ -916,6 +916,7 @@ static const char *menu_select_file_internal(const char *dir_path,
|
|||||||
char *sel;
|
char *sel;
|
||||||
char *out;
|
char *out;
|
||||||
const char *ptr_selected_file;
|
const char *ptr_selected_file;
|
||||||
|
char *updir;
|
||||||
int opt;
|
int opt;
|
||||||
int i;
|
int i;
|
||||||
char buf[64];
|
char buf[64];
|
||||||
@ -944,6 +945,21 @@ static const char *menu_select_file_internal(const char *dir_path,
|
|||||||
|
|
||||||
if (!sel)
|
if (!sel)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
if (!strcmp(sel,"[..]")) //selected "[..]"
|
||||||
|
{
|
||||||
|
free((void*)sel);
|
||||||
|
updir=strrchr(dir_path,'/');
|
||||||
|
if (updir!=NULL) // found "/"
|
||||||
|
{
|
||||||
|
*updir=0; //trunk dir_path at last /
|
||||||
|
if (strrchr(dir_path,'/')==NULL) {*updir='/'; *(updir+1)=0;} //check if it was root
|
||||||
|
}
|
||||||
|
|
||||||
|
return menu_select_file(dir_path, selected_file, which);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* If this is a folder, enter it recursively */
|
/* If this is a folder, enter it recursively */
|
||||||
if (sel[0] == '[')
|
if (sel[0] == '[')
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user