mirror of
https://github.com/Oibaf66/uae-wii.git
synced 2024-11-25 03:56:55 +01:00
Add better support for cloantos amiga forever roms
This commit is contained in:
parent
83efbaea30
commit
d3e837aab1
@ -145,7 +145,7 @@ static int find_index_by_val(int val, const int vec[], int vec_size, int default
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* From PSPUAE (implementation is different though!) */
|
/* From PSPUAE (implementation is different though!) */
|
||||||
static void maybe_load_kick_rom(const char *name)
|
static int maybe_load_kick_rom(const char *name)
|
||||||
{
|
{
|
||||||
const char *dir = prefs_get_attr("rom_path");
|
const char *dir = prefs_get_attr("rom_path");
|
||||||
char buf[255];
|
char buf[255];
|
||||||
@ -155,16 +155,34 @@ static void maybe_load_kick_rom(const char *name)
|
|||||||
dir="";
|
dir="";
|
||||||
snprintf(buf, 255, "%s/%s", dir, name);
|
snprintf(buf, 255, "%s/%s", dir, name);
|
||||||
if (stat(buf, &st) < 0)
|
if (stat(buf, &st) < 0)
|
||||||
return;
|
return 1;
|
||||||
|
|
||||||
/* Setup the new kickstart ROM */
|
/* Setup the new kickstart ROM */
|
||||||
if (!S_ISDIR(st.st_mode))
|
if (!S_ISDIR(st.st_mode))
|
||||||
strncpy(changed_prefs.romfile, buf, 255);
|
strncpy(changed_prefs.romfile, buf, 255);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int maybe_load_kick_rom_list(const char *roms[])
|
||||||
|
{
|
||||||
|
const char **p;
|
||||||
|
|
||||||
|
for (p = roms; p; p++)
|
||||||
|
{
|
||||||
|
printf("Trying to open %s\n", *p);
|
||||||
|
/* OK to open? */
|
||||||
|
if (maybe_load_kick_rom(*p) == 0)
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* All this is taken directly from PSPUAE */
|
/* All this is taken directly from PSPUAE */
|
||||||
static void A500_config(void)
|
static void A500_config(void)
|
||||||
{
|
{
|
||||||
|
const char *roms[] = {"amiga-os-130.rom", "kick13.rom", NULL};
|
||||||
default_config();
|
default_config();
|
||||||
|
|
||||||
changed_prefs.cpu_level = 0; //68000
|
changed_prefs.cpu_level = 0; //68000
|
||||||
@ -173,11 +191,12 @@ static void A500_config(void)
|
|||||||
changed_prefs.bogomem_size = 512 * 1024; //512
|
changed_prefs.bogomem_size = 512 * 1024; //512
|
||||||
changed_prefs.chipset_mask = CSMASK_ECS_AGNUS; // A500 are OCS/ECS
|
changed_prefs.chipset_mask = CSMASK_ECS_AGNUS; // A500 are OCS/ECS
|
||||||
|
|
||||||
maybe_load_kick_rom("kick13.rom");
|
maybe_load_kick_rom_list( roms );
|
||||||
}
|
}
|
||||||
|
|
||||||
static void A600_config(void)
|
static void A600_config(void)
|
||||||
{
|
{
|
||||||
|
const char *roms[] = {"amiga-os-205.rom", "kick205.rom", NULL};
|
||||||
default_config();
|
default_config();
|
||||||
|
|
||||||
changed_prefs.cpu_level = 1; //68010
|
changed_prefs.cpu_level = 1; //68010
|
||||||
@ -186,11 +205,12 @@ static void A600_config(void)
|
|||||||
changed_prefs.bogomem_size = 0; //OFF
|
changed_prefs.bogomem_size = 0; //OFF
|
||||||
changed_prefs.chipset_mask = CSMASK_ECS_AGNUS | CSMASK_ECS_DENISE; //ECS Agnus
|
changed_prefs.chipset_mask = CSMASK_ECS_AGNUS | CSMASK_ECS_DENISE; //ECS Agnus
|
||||||
|
|
||||||
maybe_load_kick_rom("kick205.rom");
|
maybe_load_kick_rom_list(roms);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void A1000_config(void)
|
static void A1000_config(void)
|
||||||
{
|
{
|
||||||
|
const char *roms[] = {"amiga-os-120.rom", "kick12.rom", NULL};
|
||||||
default_config();
|
default_config();
|
||||||
|
|
||||||
changed_prefs.cpu_level = 0; //68000
|
changed_prefs.cpu_level = 0; //68000
|
||||||
@ -199,11 +219,12 @@ static void A1000_config(void)
|
|||||||
changed_prefs.bogomem_size = 0; //OFF
|
changed_prefs.bogomem_size = 0; //OFF
|
||||||
changed_prefs.chipset_mask = 0; //OCS
|
changed_prefs.chipset_mask = 0; //OCS
|
||||||
|
|
||||||
maybe_load_kick_rom("kick12.rom");
|
maybe_load_kick_rom_list(roms);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void A1200_config(void)
|
static void A1200_config(void)
|
||||||
{
|
{
|
||||||
|
const char *roms[] = {"amiga-os-310.rom", "kick31.rom", NULL};
|
||||||
default_config();
|
default_config();
|
||||||
|
|
||||||
changed_prefs.cpu_level = 2; //68020
|
changed_prefs.cpu_level = 2; //68020
|
||||||
@ -212,7 +233,7 @@ static void A1200_config(void)
|
|||||||
changed_prefs.bogomem_size = 0;
|
changed_prefs.bogomem_size = 0;
|
||||||
changed_prefs.chipset_mask = CSMASK_ECS_AGNUS | CSMASK_ECS_DENISE | CSMASK_AGA; //AGA
|
changed_prefs.chipset_mask = CSMASK_ECS_AGNUS | CSMASK_ECS_DENISE | CSMASK_AGA; //AGA
|
||||||
|
|
||||||
maybe_load_kick_rom("kick31.rom");
|
maybe_load_kick_rom_list(roms);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void default_config(void)
|
static void default_config(void)
|
||||||
|
Loading…
Reference in New Issue
Block a user