mirror of
https://github.com/Oibaf66/uae-wii.git
synced 2024-11-25 20:16:54 +01:00
Determine current module and accuracy, allow three modes of accuracy
This commit is contained in:
parent
ec3f7e838f
commit
038ca87be5
@ -37,7 +37,7 @@ static const char *amiga_model_messages[] = {
|
|||||||
/*00*/ "Amiga model",
|
/*00*/ "Amiga model",
|
||||||
/*01*/ "^|A1000|A500|A600|A1200|Custom",
|
/*01*/ "^|A1000|A500|A600|A1200|Custom",
|
||||||
/*02*/ "Emulation accuracy",
|
/*02*/ "Emulation accuracy",
|
||||||
/*03*/ "^|Fast|Accurate",
|
/*03*/ "^|Fast|Compatible|Cycle-exact",
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -82,7 +82,6 @@ static void A500_config(void)
|
|||||||
changed_prefs.chipmem_size = 512 * 1024; //512
|
changed_prefs.chipmem_size = 512 * 1024; //512
|
||||||
changed_prefs.bogomem_size = 512 * 1024; //512
|
changed_prefs.bogomem_size = 512 * 1024; //512
|
||||||
changed_prefs.chipset_mask = 0; //OCS
|
changed_prefs.chipset_mask = 0; //OCS
|
||||||
changed_prefs.floppy_speed = 100; //Normal
|
|
||||||
changed_prefs.immediate_blits = 1; //ON
|
changed_prefs.immediate_blits = 1; //ON
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -252,13 +251,59 @@ static void general_options(void)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Helpers to determine the accuracy */
|
||||||
|
static int get_emulation_accuracy(void)
|
||||||
|
{
|
||||||
|
if (currprefs.cpu_compatible == 0 &&
|
||||||
|
currprefs.cpu_cycle_exact == 0)
|
||||||
|
return 0;
|
||||||
|
if (currprefs.cpu_compatible == 1 &&
|
||||||
|
currprefs.cpu_cycle_exact == 0)
|
||||||
|
return 1;
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void set_emulation_accuracy(int which)
|
||||||
|
{
|
||||||
|
switch (which)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
changed_prefs.cpu_compatible = 1;
|
||||||
|
changed_prefs.cpu_cycle_exact = 0;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
changed_prefs.cpu_compatible = 1;
|
||||||
|
changed_prefs.cpu_cycle_exact = 1;
|
||||||
|
break;
|
||||||
|
case 0:
|
||||||
|
default:
|
||||||
|
changed_prefs.cpu_compatible = 0;
|
||||||
|
changed_prefs.cpu_cycle_exact = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static int get_model(void)
|
||||||
|
{
|
||||||
|
if (currprefs.cpu_level == 1) /* 68010 - only on the A600 */
|
||||||
|
return 2;
|
||||||
|
if (currprefs.cpu_level == 2) /* 68020 - only on the A1200 */
|
||||||
|
return 3;
|
||||||
|
if (currprefs.bogomem_size == 0) /* A1000 */
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
/* A500 */
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
static void amiga_model_options(void)
|
static void amiga_model_options(void)
|
||||||
{
|
{
|
||||||
int submenus[2];
|
int submenus[2];
|
||||||
int opt;
|
int opt;
|
||||||
|
|
||||||
memset(submenus, 0, sizeof(submenus));
|
submenus[0] = get_model();
|
||||||
submenus[1] = currprefs.cpu_cycle_exact;
|
submenus[1] = get_emulation_accuracy();
|
||||||
|
|
||||||
opt = menu_select_title("Amiga model menu",
|
opt = menu_select_title("Amiga model menu",
|
||||||
amiga_model_messages, submenus);
|
amiga_model_messages, submenus);
|
||||||
if (opt < 0)
|
if (opt < 0)
|
||||||
@ -273,7 +318,7 @@ static void amiga_model_options(void)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
/* Cycle-exact or not? */
|
/* Cycle-exact or not? */
|
||||||
changed_prefs.cpu_cycle_exact = submenus[1];
|
set_emulation_accuracy(submenus[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void save_load_state(int which)
|
static void save_load_state(int which)
|
||||||
|
Loading…
Reference in New Issue
Block a user