--- uae/src/cfgfile.c 2018/04/24 17:00:14 1.1.1.9 +++ uae/src/cfgfile.c 2018/04/24 17:07:24 1.1.1.12 @@ -14,7 +14,7 @@ #include "config.h" #include "options.h" -#include "threaddep/penguin.h" +#include "threaddep/thread.h" #include "uae.h" #include "autoconf.h" #include "events.h" @@ -72,6 +72,7 @@ static struct cfg_lines opttable[] = {"joyport0", "" }, {"joyport1", "" }, {"kickstart_rom_file", "Kickstart ROM image, (C) Copyright Amiga, Inc." }, + {"kickstart_ext_rom_file", "Extended Kickstart ROM image, (C) Copyright Amiga, Inc." }, {"kickstart_key_file", "Key-file for encrypted ROM images (from Cloanto's Amiga Forever)" }, {"floppy0", "Diskfile for drive 0" }, {"floppy1", "Diskfile for drive 1" }, @@ -81,7 +82,10 @@ static struct cfg_lines opttable[] = {"filesystem", "access,'Amiga volume-name':'host directory path' - where 'access' can be 'read-only' or 'read-write'" } }; -static const char *csmode[] = { "ocs", "ecs_agnus", "ecs_denise", "ecs", "aga" }; +static const char *guimode1[] = { "no", "yes", "nowait", 0 }; +static const char *guimode2[] = { "false", "true", "nowait", 0 }; +static const char *guimode3[] = { "0", "1", "nowait", 0 }; +static const char *csmode[] = { "ocs", "ecs_agnus", "ecs_denise", "ecs", "aga", 0 }; static const char *linemode1[] = { "none", "double", "scanlines", 0 }; static const char *linemode2[] = { "n", "d", "s", 0 }; static const char *speedmode[] = { "max", "real", 0 }; @@ -148,14 +152,18 @@ void save_options (FILE *f, struct uae_p target_save_options (f, p); - fprintf (f, "use_gui=%s\n", p->start_gui ? "true" : "false"); + fprintf (f, "use_gui=%s\n", guimode1[p->start_gui]); fprintf (f, "use_debugger=%s\n", p->start_debugger ? "true" : "false"); str = cfgfile_subst_path (p->path_rom, UNEXPANDED, p->romfile); fprintf (f, "kickstart_rom_file=%s\n", str); free (str); + str = cfgfile_subst_path (p->path_rom, UNEXPANDED, p->romextfile); + fprintf (f, "kickstart_ext_rom_file=%s\n", str); + free (str); str = cfgfile_subst_path (p->path_rom, UNEXPANDED, p->keyfile); fprintf (f, "kickstart_key_file=%s\n", str); free (str); + fprintf (f, "kickshifter=%s\n", p->kickshifter ? "true" : "false"); for (i = 0; i < 4; i++) { str = cfgfile_subst_path (p->path_floppy, UNEXPANDED, p->df[i]); @@ -194,7 +202,6 @@ void save_options (FILE *f, struct uae_p fprintf (f, "gfx_center_vertical=%s\n", centermode1[p->gfx_ycenter]); fprintf (f, "gfx_colour_mode=%s\n", colormode1[p->color_mode]); - fprintf (f, "32bit_blits=%s\n", p->blits_32bit_enabled ? "true" : "false"); fprintf (f, "immediate_blits=%s\n", p->immediate_blits ? "true" : "false"); fprintf (f, "ntsc=%s\n", p->ntscmode ? "true" : "false"); if (p->chipset_mask & CSMASK_AGA) @@ -219,7 +226,7 @@ void save_options (FILE *f, struct uae_p if (p->m68k_speed > 0) fprintf (f, "finegrain_cpu_speed=%d\n", p->m68k_speed); else - fprintf (f, "finegrain_cpu_speed=%s\n", p->m68k_speed == -1 ? "max" : "real"); + fprintf (f, "cpu_speed=%s\n", p->m68k_speed == -1 ? "max" : "real"); fprintf (f, "cpu_type=%s\n", cpumode[p->cpu_level * 2 + !p->address_space_24]); fprintf (f, "cpu_compatible=%s\n", p->cpu_compatible ? "true" : "false"); @@ -356,10 +363,9 @@ int cfgfile_parse_option (struct uae_pre return 0; } if (cfgfile_yesno (option, value, "use_debugger", &p->start_debugger) - || cfgfile_yesno (option, value, "use_gui", &p->start_gui) || cfgfile_yesno (option, value, "bsdsocket_emu", &p->socket_emu) || cfgfile_yesno (option, value, "immediate_blits", &p->immediate_blits) - || cfgfile_yesno (option, value, "32bit_blits", &p->blits_32bit_enabled) + || cfgfile_yesno (option, value, "kickshifter", &p->kickshifter) || cfgfile_yesno (option, value, "gfx_lores", &p->gfx_lores) || cfgfile_yesno (option, value, "gfx_correct_aspect", &p->gfx_correct_aspect) || cfgfile_yesno (option, value, "gfx_fullscreen_amiga", &p->gfx_afullscreen) @@ -395,6 +401,9 @@ int cfgfile_parse_option (struct uae_pre || cfgfile_strval (option, value, "sound_interpol", &p->sound_interpol, interpolmode, 0) || cfgfile_strval (option, value, "joyport0", &p->jport0, portmode, 0) || cfgfile_strval (option, value, "joyport1", &p->jport1, portmode, 0) + || cfgfile_strval (option, value, "use_gui", &p->start_gui, guimode1, 1) + || cfgfile_strval (option, value, "use_gui", &p->start_gui, guimode2, 1) + || cfgfile_strval (option, value, "use_gui", &p->start_gui, guimode3, 0) || cfgfile_strval (option, value, "collision_level", &p->collision_level, collmode, 0) || cfgfile_strval (option, value, "gfx_linemode", &p->gfx_linedbl, linemode1, 1) || cfgfile_strval (option, value, "gfx_linemode", &p->gfx_linedbl, linemode2, 0) @@ -412,6 +421,7 @@ int cfgfile_parse_option (struct uae_pre || cfgfile_string (option, value, "floppy2", p->df[2], 256) || cfgfile_string (option, value, "floppy3", p->df[3], 256) || cfgfile_string (option, value, "kickstart_rom_file", p->romfile, 256) + || cfgfile_string (option, value, "kickstart_ext_rom_file", p->romextfile, 256) || cfgfile_string (option, value, "kickstart_key_file", p->keyfile, 256) || cfgfile_string (option, value, "config_description", p->description, 256)) return 1; @@ -438,7 +448,10 @@ int cfgfile_parse_option (struct uae_pre p->cpu_level >>= 1; return 1; } - if (cfgfile_strval (option, value, "cpu_speed", &p->m68k_speed, speedmode, 1)) { + if (cfgfile_strval (option, value, "cpu_speed", &p->m68k_speed, speedmode, 1) + /* Broken earlier versions used to write this out as a string. */ + || cfgfile_strval (option, value, "finegraincpu_speed", &p->m68k_speed, speedmode, 1)) + { p->m68k_speed--; return 1; } @@ -571,7 +584,6 @@ static void subst (char *p, char *f, int int cfgfile_load (struct uae_prefs *p, const char *filename) { - char *str; int i; FILE *fh; @@ -591,6 +603,7 @@ int cfgfile_load (struct uae_prefs *p, c for (i = 0; i < 4; i++) subst (p->path_floppy, p->df[i], sizeof p->df[i]); subst (p->path_rom, p->romfile, sizeof p->romfile); + subst (p->path_rom, p->romextfile, sizeof p->romextfile); subst (p->path_rom, p->keyfile, sizeof p->keyfile); return 1; @@ -613,7 +626,7 @@ int cfgfile_get_description (const char struct uae_prefs p; default_prefs (&p); strcpy (p.description, ""); - if (cfgfile_load (&p, filename) && strlen (p.description) != 0) { + if (cfgfile_load (&p, filename)) { result = 1; strcpy (description, p.description); }