diff --git a/src/gui-sdl/gui-sdl.c b/src/gui-sdl/gui-sdl.c index c077a27..445eb4b 100644 --- a/src/gui-sdl/gui-sdl.c +++ b/src/gui-sdl/gui-sdl.c @@ -26,8 +26,8 @@ #define ID_AXIS_OFFSET 32 /* Uncomment for debugging output */ -//#define DEBUG -#ifdef DEBUG +//#define DEBUG_VK +#ifdef DEBUG_VK #define DEBUG_LOG write_log #else #define DEBUG_LOG(...) do ; while(0) @@ -173,16 +173,18 @@ static const char *other_messages[] = { /*00*/ "Floppy speed", /*01*/ "^|normal|turbo|400%|800%", - /*02*/ "Correct aspect ratio", - /*03*/ "^|off|100%|95%|93%|90%|custom", - /*04*/ "Scanlines", - /*05*/ "^|on|off", - /*06*/ "Leds", + /*02*/ "Number of floppies", + /*03*/ "^| 0 | 1 | 2 | 3 | 4 ", + /*04*/ "Correct aspect ratio", + /*05*/ "^|off|100%|95%|93%|90%|custom", + /*06*/ "Scanlines", /*07*/ "^|on|off", - /*08*/ "Port", - /*09*/ "^|DEFAULT|SD|USB|SMB", - /*10*/ "Rumble", - /*11*/ "^|on|off", + /*08*/ "Leds", + /*09*/ "^|on|off", + /*10*/ "Port", + /*11*/ "^|DEFAULT|SD|USB|SMB", + /*12*/ "Rumble", + /*13*/ "^|on|off", NULL }; @@ -280,7 +282,7 @@ void fix_options_menu_sdl (int printmsg) if ((changed_prefs.chipmem_size > 0x80000) && (!(changed_prefs.chipset_mask & CSMASK_ECS_AGNUS))) { changed_prefs.chipmem_size = 0x80000; - if (printmsg) msgInfo ("No more than 512KB chipmem OCS",3000, NULL); + if (printmsg) msgInfo ("No more than 512KB chipmem with OCS",3000, NULL); } if ((changed_prefs.bogomem_size > 0x100000) && ((changed_prefs.chipset_mask & CSMASK_AGA))) @@ -353,15 +355,6 @@ void fix_options_menu_sdl (int printmsg) } #endif - if (changed_prefs.nr_floppies < 0 || changed_prefs.nr_floppies > 4) { - if (printmsg) msgInfo ("Invalid number of floppies. Using 4.",3000, NULL); - changed_prefs.nr_floppies = 4; - changed_prefs.dfxtype[0] = 0; - changed_prefs.dfxtype[1] = 0; - changed_prefs.dfxtype[2] = 0; - changed_prefs.dfxtype[3] = 0; - } - if (changed_prefs.collision_level < 0 || changed_prefs.collision_level > 3) { if (printmsg) msgInfo ("Invalid collision support level. Using Sprite level.",3000, NULL); changed_prefs.collision_level = 1; @@ -641,6 +634,33 @@ static void set_floppy_speed(int which) changed_prefs.floppy_speed = floppy_table[which]; } +static int get_dfxclick(void); +static void set_dfxclick(int); + +static int get_floppy_number(void) +{ + int i; + + for (i=0; (changed_prefs.dfxtype[i]!=-1) && (i<4); i++); + + return i; + +} + +static void set_floppy_number(int which) +{ + int i; + + set_dfxclick (get_dfxclick()); //Trick to be sure that all floppies have sound on or off + + for (i=0; i<4; i++) + { + if (which == 0) changed_prefs.dfxtype[i] = -1; //disable all floppies + if (i=0)) sounddf_on =1; + sounddf_on = (changed_prefs.dfxclick[0]!=0)||(changed_prefs.dfxclick[1]!=0)|| + (changed_prefs.dfxclick[2]!=0)||(changed_prefs.dfxclick[3]!=0); return sounddf_on; } -void set_dfxclick(int sounddf_on) +static void set_dfxclick(int sounddf_on) { int i; for (i=0; i < 4; i++) - if ((changed_prefs.dfxtype[i]>=0)&&(changed_prefs.dfxclick[i]!=sounddf_on)) - changed_prefs.dfxclick[i] = sounddf_on; + changed_prefs.dfxclick[i] = sounddf_on; //Floppy sounds are all off or all on } static void emulation_options(void) @@ -927,17 +946,20 @@ static void audio_options(void) static void other_options(void) { - int submenus[6]; - int opt; + int submenus[7]; + int opt, floppy_n; memset(submenus, 0, sizeof(submenus)); + floppy_n=get_floppy_number(); + submenus[0] = get_floppy_speed(); - submenus[1] = get_gfx_aspect_ratio(); - submenus[2] = !(changed_prefs.gfx_linedbl == 2) ; - submenus[3] = !changed_prefs.leds_on_screen; - submenus[4] = changed_prefs.Port; - submenus[5] = !changed_prefs.rumble; + submenus[1] = floppy_n; + submenus[2] = get_gfx_aspect_ratio(); + submenus[3] = !(changed_prefs.gfx_linedbl == 2) ; + submenus[4] = !changed_prefs.leds_on_screen; + submenus[5] = changed_prefs.Port; + submenus[6] = !changed_prefs.rumble; opt = menu_select_title("Other options menu", other_messages, submenus); @@ -945,15 +967,18 @@ static void other_options(void) return; set_floppy_speed(submenus[0]); - set_gfx_aspect_ratio(submenus[1]); - changed_prefs.gfx_linedbl = submenus[2] ? 1 : 2; - changed_prefs.leds_on_screen = !submenus[3]; - set_Port(submenus[4]); - changed_prefs.rumble = !submenus[5]; + set_floppy_number(submenus[1]); + set_gfx_aspect_ratio(submenus[2]); + changed_prefs.gfx_linedbl = submenus[3] ? 1 : 2; + changed_prefs.leds_on_screen = !submenus[4]; + set_Port(submenus[5]); + changed_prefs.rumble = !submenus[6]; currprefs.leds_on_screen = changed_prefs.leds_on_screen; currprefs.rumble = changed_prefs.rumble; fix_options_menu_sdl(1); + + if (floppy_n != submenus[1]) uae_reset(1); } static void save_conf_file_menu(void) diff --git a/uaerc.wii b/uaerc.wii index b7bff96..0ba63d9 100644 --- a/uaerc.wii +++ b/uaerc.wii @@ -19,25 +19,12 @@ floppy0=/uae/floppies/ #filesystem2=rw,DH0:harddir:/uae/harddir,-127 -# Alters CPU speed (values are: real, max, 1 through 20) -# i.e. setting of 4 = 20% CHIPSET and 80% CPU -cpu_speed=max - # CPU Type (values are: 68000, 68010, 68020, 68020/68881, 68040 and 68060) cpu_type=68000 #68000 has 24 bit address space cpu_24bit_addressing=true -#Immediate blits helps with speed -immediate_blits=true - -collision_level=playfields - -# Emulation precision -cpu_compatible=true -cpu_cycle_exact=false - # Chipset type (values are: ocs, ecs_agnus, ecs_denise, ecs, aga) chipset=ecs_agnus @@ -52,17 +39,78 @@ z3mem_size=0 # Picasso96 Memory (Values are between 0 and 32 which are MB) gfxcard_size=0 +# Emulation precision +cpu_compatible=true +cpu_cycle_exact=false + +# Alters CPU speed (values are: real, max, 1 through 20) +# i.e. setting of 4 = 20% CHIPSET and 80% CPU +cpu_speed=max + +#Immediate blits helps with speed +immediate_blits=true + +collision_level=playfields + +# Enable 2 floppies +floppy0type=0 +floppy1type=0 +floppy2type=-1 +floppy3type=-1 + +# Enable floppy sound +floppy0sound=1 +floppy1sound=1 +floppy2sound=1 +floppy3sound=1 +floppy_volume=33 +floppy0soundext=/uae/wave/ +floppy1soundext=/uae/wave/ +floppy2soundext=/uae/wave/ +floppy3soundext=/uae/wave/ + # Floppy speed, can cause incompatbility with certain floppy loaders # (Values are: 0 = Turbo, 100 = Standard and 800 = 800% faster) floppy_speed=100 -show_leds=true + # Sound configuration sound_output=normal sound_frequency=32000 sound_latency=200 +# Graphic configuration + +# Necessary to get the relative coordinates from mouse emulated with wiimote IR pointer +gfx_fullscreen_amiga=true + +# Set the screen dimensions +gfx_width_windowed=640 +gfx_height_windowed=480 +gfx_width_fullscreen=640 +gfx_height_fullscreen=480 +gfx_center_horizontal=true +gfx_center_vertical=true + +# Vsync along with full screen enables double buffer and refresh rate setting +# Vsync false is a bit more fast +gfx_vsync=true + +# Set true to adapt the Amiga screen to Wii SDL screen (640X480) +gfx_correct_aspect=false + +# Set the screen correct % ratio when gfx_correct_aspect is true - possible values 80-100 +gfx_correct_ratio=93 + +# Set the framerate (Values are between 1 and 20) +gfx_framerate=2 + +# Enable the on-screen leds +show_leds=true + +# Set keyboard language. Possible values are de, dk, es, us, se, fr, it +kbd_lang=us # Keyboard setup input.config=1 @@ -157,46 +205,3 @@ input.1.joystick.5.axis.1=JOY1_VERT input.1.joystick.5.button.0=JOY1_FIRE_BUTTON input.1.joystick.5.button.7=SPC_ENTERGUI - -# Graphic configuration - -# Necessary to get the relative coordinates from mouse emulated with wiimote IR pointer -gfx_fullscreen_amiga=true - -# Set the screen dimensions -gfx_width_windowed=640 -gfx_height_windowed=480 -gfx_width_fullscreen=640 -gfx_height_fullscreen=480 -gfx_center_horizontal=true -gfx_center_vertical=true - -# This enables double buffer and refresh rate setting -gfx_vsync=true - -# Set true to adapt the Amiga screen to Wii SDL screen (640X480) -gfx_correct_aspect=false - -# Set the screen correct % ratio when gfx_correct_aspect is true - possible values 80-100 -gfx_correct_ratio=93 - -# Set the framerate (Values are between 1 and 20) -gfx_framerate=2 - -# Enable 2 floppies -#nr_floppies=2 -floppy0type=0 -floppy1type=0 -floppy2type=-1 -floppy3type=-1 - -# Enable floppy sound - set floppysound to -1 to load wave file - set to 0 to disable -floppy0sound=1 -floppy1sound=1 -floppy_volume=33 -floppy0soundext=/uae/wave/ -floppy1soundext=/uae/wave/ - - -# Set keyboard language. Possible values are de, dk, es, us, se, fr, it -kbd_lang=us