diff -urN snes9x-1.53-src-orig/gtk/src/gtk_config.h snes9x-1.53-src/gtk/src/gtk_config.h
--- snes9x-1.53-src-orig/gtk/src/gtk_config.h	2011-04-24 22:38:10 +0900
+++ snes9x-1.53-src/gtk/src/gtk_config.h	2015-07-06 10:21:53 +0900
@@ -118,6 +118,7 @@
 
         /* Operational */
         int           sound_driver;
+        char          sound_device[1000];
         int           mute_sound;
         int           sound_buffer_size;
         int           sound_playback_rate;
diff -urN snes9x-1.53-src-orig/gtk/src/gtk_preferences.cpp snes9x-1.53-src/gtk/src/gtk_preferences.cpp
--- snes9x-1.53-src-orig/gtk/src/gtk_preferences.cpp	2011-04-24 22:38:10 +0900
+++ snes9x-1.53-src/gtk/src/gtk_preferences.cpp	2015-07-06 10:32:54 +0900
@@ -685,6 +685,7 @@
         config->sound_driver = 0;
 
     set_combo ("sound_driver",              config->sound_driver);
+    set_entry_text ("sound_device",         config->sound_device);
 
     if (config->scale_method == FILTER_NTSC)
     {
@@ -746,6 +747,7 @@
     int gfx_needs_restart = 0;
 
     if ((config->sound_driver       != get_combo ("sound_driver"))          ||
+        strcmp (config->sound_device, get_entry_text ("sound_device")) != 0 ||
         (config->mute_sound         != get_check ("mute_sound_check"))      ||
         (config->sound_buffer_size  != (int) get_spin ("sound_buffer_size"))||
         (Settings.Stereo            != get_check ("stereo_check"))          ||
@@ -809,6 +811,7 @@
     Settings.BlockInvalidVRAMAccessMaster   = get_check ("block_invalid_vram_access");
     Settings.UpAndDown                = get_check ("upanddown");
     config->sound_driver              = get_combo ("sound_driver");
+    strncpy (config->sound_device, get_entry_text ("sound_device"), 1000);
     Settings.Stereo                   = get_check ("stereo_check");
     config->sound_playback_rate       = 7 - (get_combo ("playback_combo"));
     config->sound_buffer_size         = get_spin ("sound_buffer_size");
diff -urN snes9x-1.53-src-orig/gtk/src/gtk_sound_driver_alsa.cpp snes9x-1.53-src/gtk/src/gtk_sound_driver_alsa.cpp
--- snes9x-1.53-src-orig/gtk/src/gtk_sound_driver_alsa.cpp	2011-04-24 22:38:10 +0900
+++ snes9x-1.53-src/gtk/src/gtk_sound_driver_alsa.cpp	2015-07-06 10:23:14 +0900
@@ -64,15 +64,17 @@
 bool8
 S9xAlsaSoundDriver::open_device (void)
 {
+    const char *device =
+        *gui_config->sound_device ? gui_config->sound_device : "default";
     int err;
     snd_pcm_sw_params_t *sw_params;
     snd_pcm_uframes_t alsa_buffer_size, alsa_period_size;
 
     printf ("ALSA sound driver initializing...\n");
-    printf ("    --> (Device: default)...");
+    printf ("    --> (Device: %s)...", device);
 
     if ((err = snd_pcm_open (&pcm,
-                             "default",
+                             device,
                              SND_PCM_STREAM_PLAYBACK,
                              SND_PCM_NONBLOCK) < 0))
     {
diff -urN snes9x-1.53-src-orig/gtk/src/snes9x.ui snes9x-1.53-src/gtk/src/snes9x.ui
--- snes9x-1.53-src-orig/gtk/src/snes9x.ui	2011-04-24 22:38:10 +0900
+++ snes9x-1.53-src/gtk/src/snes9x.ui	2015-07-06 10:19:08 +0900
@@ -2046,6 +2046,45 @@
                                       </packing>
                                     </child>
                                     <child>
+                                      <object class="GtkHBox" id="hbox26">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
+                                        <child>
+                                          <object class="GtkLabel" id="label151">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="label" translatable="yes">Sound device: </property>
+                                          </object>
+                                          <packing>
+                                            <property name="expand">False</property>
+                                            <property name="fill">False</property>
+                                            <property name="position">0</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkEntry" id="sound_device">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">True</property>
+                                            <property name="invisible_char">●</property>
+                                            <property name="primary_icon_activatable">False</property>
+                                            <property name="secondary_icon_activatable">False</property>
+                                            <property name="primary_icon_sensitive">True</property>
+                                            <property name="secondary_icon_sensitive">True</property>
+                                          </object>
+                                          <packing>
+                                            <property name="expand">True</property>
+                                            <property name="fill">True</property>
+                                            <property name="position">1</property>
+                                          </packing>
+                                        </child>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">1</property>
+                                      </packing>
+                                    </child>
+                                    <child>
                                       <object class="GtkCheckButton" id="sync_sound">
                                         <property name="label" translatable="yes">Synchronize with sound</property>
                                         <property name="visible">True</property>
@@ -2057,7 +2096,7 @@
                                       <packing>
                                         <property name="expand">False</property>
                                         <property name="fill">False</property>
-                                        <property name="position">1</property>
+                                        <property name="position">2</property>
                                       </packing>
                                     </child>
                                     <child>
@@ -2073,7 +2112,7 @@
                                       <packing>
                                         <property name="expand">False</property>
                                         <property name="fill">False</property>
-                                        <property name="position">2</property>
+                                        <property name="position">3</property>
                                       </packing>
                                     </child>
                                     <child>
@@ -2089,7 +2128,7 @@
                                       <packing>
                                         <property name="expand">False</property>
                                         <property name="fill">False</property>
-                                        <property name="position">3</property>
+                                        <property name="position">4</property>
                                       </packing>
                                     </child>
                                     <child>
@@ -2243,7 +2282,7 @@
                                       </object>
                                       <packing>
                                         <property name="expand">False</property>
-                                        <property name="position">4</property>
+                                        <property name="position">5</property>
                                       </packing>
                                     </child>
                                   </object>
