diff --git a/bin/launch-options.py b/bin/launch-options.py
index 9f1ae2c119045ebce003ed4c4e8036b5a003370b..da957b8c2c115402704e2382c9d02e56bf951ec6 100755
--- a/bin/launch-options.py
+++ b/bin/launch-options.py
@@ -626,6 +626,29 @@ class Gui:
 
         row += 1
 
+        label = Gtk.Label.new('SDL 2')
+        self.grid.attach(label, 0, row, 1, 1)
+
+        self.sdl2_dynapi_combo = Gtk.ComboBoxText.new()
+        self.sdl2_dynapi_combo.append(None, "Don't override")
+        self.sdl2_dynapi_combo.append('1', 'Use runtime copy')
+        self.sdl2_dynapi_combo.append('sdl2-compat', 'Use sdl2-compat')
+        self.sdl2_dynapi_combo.set_active(0)
+        self.grid.attach(self.sdl2_dynapi_combo, 1, row, 2, 1)
+
+        row += 1
+
+        label = Gtk.Label.new('SDL 3')
+        self.grid.attach(label, 0, row, 1, 1)
+
+        self.sdl3_dynapi_combo = Gtk.ComboBoxText.new()
+        self.sdl3_dynapi_combo.append(None, "Don't override")
+        self.sdl3_dynapi_combo.append('1', 'Use runtime copy')
+        self.sdl3_dynapi_combo.set_active(0)
+        self.grid.attach(self.sdl3_dynapi_combo, 1, row, 2, 1)
+
+        row += 1
+
         label = Gtk.Label.new('Graphics stack')
         self.grid.attach(label, 0, row, 1, 1)
 
@@ -1260,10 +1283,14 @@ class Gui:
 
         if self._changing_container_runtime:
             self._changing_container_runtime = False
+            # These widgets are features of pressure-vessel, and are
+            # applicable if and only if we are going to use it.
             widgets = [
                 self.graphics_provider_combo,
                 self.layered_runtime_combo,
                 self.remove_game_overlay_combo,
+                self.sdl2_dynapi_combo,
+                self.sdl3_dynapi_combo,
                 self.share_home_combo,
                 self.share_pid_combo,
                 self.vulkan_layers_combo,
@@ -1828,10 +1855,24 @@ class Gui:
 
         if value is not None:
             environ['SDL_VIDEODRIVER'] = value
+            environ['SDL_VIDEO_DRIVER'] = value
+
+        value = self.sdl2_dynapi_combo.get_active_id()
+
+        if value is not None:
+            environ.pop('SDL_DYNAMIC_API', None)
+            environ['STEAM_COMPAT_RUNTIME_SDL2'] = value
+
+        value = self.sdl3_dynapi_combo.get_active_id()
+
+        if value is not None:
+            environ.pop('SDL3_DYNAMIC_API', None)
+            environ['STEAM_COMPAT_RUNTIME_SDL3'] = value
 
         if self.debug_check.get_active():
-            environ['STEAM_LINUX_RUNTIME_VERBOSE'] = '1'
+            environ['DEBUG_INVOCATION'] = '1'
             environ['G_MESSAGES_DEBUG'] = 'all'
+            environ['STEAM_LINUX_RUNTIME_VERBOSE'] = '1'
 
         shell = self.shell_combo.get_active_id()
         terminal = self.terminal_combo.get_active_id()