--- uae/src/gtkui.c 2018/04/24 16:47:26 1.1.1.6 +++ uae/src/gtkui.c 2018/04/24 16:58:23 1.1.1.9 @@ -21,7 +21,6 @@ #include "uae.h" #include "memory.h" #include "custom.h" -#include "readcpu.h" #include "gui.h" #include "newcpu.h" #include "threaddep/penguin.h" @@ -51,11 +50,11 @@ static char *new_disk_string[4]; static GtkAdjustment *cpuspeed_adj; static GtkWidget *cpuspeed_widgets[4], *cpuspeed_scale; -static GtkWidget *cpu_widget[4], *a24m_widget, *ccpu_widget; -static GtkWidget *sound_widget[4], *sound_bits_widget[2], *sound_freq_widget[3], *sound_ch_widget[2]; +static GtkWidget *cpu_widget[5], *a24m_widget, *ccpu_widget; +static GtkWidget *sound_widget[4], *sound_bits_widget[2], *sound_freq_widget[3], *sound_ch_widget[3]; static GtkAdjustment *framerate_adj; -static GtkWidget *bimm_widget, *b32_widget; +static GtkWidget *bimm_widget, *b32_widget, *afscr_widget, *pfscr_widget; static GtkWidget *joy_widget[2][6]; @@ -108,7 +107,7 @@ static void enable_disk_buttons (int ena static void set_cpu_state (void) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (a24m_widget), changed_prefs.address_space_24 != 0); - gtk_widget_set_sensitive (a24m_widget, changed_prefs.cpu_level > 1); + gtk_widget_set_sensitive (a24m_widget, changed_prefs.cpu_level > 1 && changed_prefs.cpu_level < 4); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ccpu_widget), changed_prefs.cpu_compatible != 0); gtk_widget_set_sensitive (ccpu_widget, changed_prefs.cpu_level == 0); gtk_widget_set_sensitive (cpuspeed_scale, changed_prefs.m68k_speed > 0); @@ -126,12 +125,15 @@ static void set_gfx_state (void) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (bimm_widget), currprefs.immediate_blits != 0); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (b32_widget), currprefs.blits_32bit_enabled != 0); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (afscr_widget), currprefs.gfx_afullscreen != 0); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pfscr_widget), currprefs.gfx_pfullscreen != 0); } static void set_sound_state (void) { + int stereo = currprefs.stereo + currprefs.mixed_stereo; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sound_widget[currprefs.produce_sound]), 1); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sound_ch_widget[currprefs.stereo]), 1); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sound_ch_widget[stereo]), 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sound_bits_widget[currprefs.sound_bits == 16]), 1); } @@ -242,6 +244,8 @@ static void custom_changed (void) changed_prefs.gfx_framerate = framerate_adj->value; changed_prefs.blits_32bit_enabled = GTK_TOGGLE_BUTTON (b32_widget)->active; changed_prefs.immediate_blits = GTK_TOGGLE_BUTTON (bimm_widget)->active; + changed_prefs.gfx_afullscreen = GTK_TOGGLE_BUTTON (afscr_widget)->active; + changed_prefs.gfx_pfullscreen = GTK_TOGGLE_BUTTON (pfscr_widget)->active; } static void cpuspeed_changed (void) @@ -261,7 +265,7 @@ static void cputype_changed (void) oldcl = changed_prefs.cpu_level; - changed_prefs.cpu_level = find_current_toggle (cpu_widget, 4); + changed_prefs.cpu_level = find_current_toggle (cpu_widget, 5); changed_prefs.cpu_compatible = GTK_TOGGLE_BUTTON (ccpu_widget)->active; changed_prefs.address_space_24 = GTK_TOGGLE_BUTTON (a24m_widget)->active; @@ -273,14 +277,17 @@ static void cputype_changed (void) /* Changing from 68000/68010 to 68020 should set a sane default. */ else if (oldcl < 2) changed_prefs.address_space_24 = 0; - + set_cpu_state (); } static void sound_changed (void) { changed_prefs.produce_sound = find_current_toggle (sound_widget, 4); - changed_prefs.stereo = find_current_toggle (sound_ch_widget, 2); + changed_prefs.stereo = find_current_toggle (sound_ch_widget, 3); + changed_prefs.mixed_stereo = 0; + if (changed_prefs.stereo == 2) + changed_prefs.mixed_stereo = changed_prefs.stereo = 1; changed_prefs.sound_bits = (find_current_toggle (sound_bits_widget, 2) + 1) * 8; } @@ -589,7 +596,7 @@ static GtkWidget *make_cpu_speed_sel (vo gtk_container_add (GTK_CONTAINER (frame), newbox); make_radio_group (labels, newbox, cpuspeed_widgets, 0, 1, cpuspeed_changed); - cpuspeed_adj = GTK_ADJUSTMENT (gtk_adjustment_new (currprefs.m68k_speed, 1.0, 10.0, 1.0, 1.0, 1.0)); + cpuspeed_adj = GTK_ADJUSTMENT (gtk_adjustment_new (currprefs.m68k_speed, 1.0, 5120.0, 1.0, 1.0, 1.0)); gtk_signal_connect (GTK_OBJECT (cpuspeed_adj), "value_changed", GTK_SIGNAL_FUNC (cpuspeed_changed), NULL); @@ -608,7 +615,7 @@ static void make_cpu_widgets (GtkWidget GtkWidget *newbox, *hbox, *frame; GtkWidget *thing; static const char *radiolabels[] = { - "68000", "68010", "68020", "68020+68881", + "68000", "68010", "68020", "68020+68881", "68040", NULL }; @@ -643,7 +650,7 @@ static void make_cpu_widgets (GtkWidget ccpu_widget = gtk_check_button_new_with_label ("Slow but compatible"); add_centered_to_vbox (newbox, ccpu_widget); gtk_widget_show (ccpu_widget); - + add_empty_vbox (vbox); gtk_signal_connect (GTK_OBJECT (ccpu_widget), "clicked", @@ -670,18 +677,33 @@ static void make_gfx_widgets (GtkWidget b32_widget = gtk_check_button_new_with_label ("32 bit blitter"); add_centered_to_vbox (vbox, b32_widget); +#if 0 gtk_widget_show (b32_widget); - +#endif bimm_widget = gtk_check_button_new_with_label ("Immediate blits"); add_centered_to_vbox (vbox, bimm_widget); gtk_widget_show (bimm_widget); + afscr_widget = gtk_check_button_new_with_label ("Amiga modes fullscreen"); + add_centered_to_vbox (vbox, afscr_widget); +#if 0 + gtk_widget_show (afscr_widget); +#endif + pfscr_widget = gtk_check_button_new_with_label ("Picasso modes fullscreen"); + add_centered_to_vbox (vbox, pfscr_widget); +#if 0 + gtk_widget_show (pfscr_widget); +#endif add_empty_vbox (vbox); gtk_signal_connect (GTK_OBJECT (bimm_widget), "clicked", (GtkSignalFunc) custom_changed, NULL); gtk_signal_connect (GTK_OBJECT (b32_widget), "clicked", (GtkSignalFunc) custom_changed, NULL); + gtk_signal_connect (GTK_OBJECT (afscr_widget), "clicked", + (GtkSignalFunc) custom_changed, NULL); + gtk_signal_connect (GTK_OBJECT (pfscr_widget), "clicked", + (GtkSignalFunc) custom_changed, NULL); } static void make_sound_widgets (GtkWidget *vbox) @@ -696,7 +718,7 @@ static void make_sound_widgets (GtkWidge "8 bit", "16 bit", NULL }, *soundlabels3[] = { - "Mono", "Stereo", + "Mono", "Stereo", "Mixed", NULL }; @@ -965,3 +987,10 @@ void gui_handle_events(void) } } while (pause_uae); } + +void gui_update_gfx (void) +{ +#if 0 /* This doesn't work... */ + set_gfx_state (); +#endif +}