diff --git a/src/launcher/forms/configuration_edit_dialog.ui b/src/launcher/forms/configuration_edit_dialog.ui
index fd7bc896d..177111789 100644
--- a/src/launcher/forms/configuration_edit_dialog.ui
+++ b/src/launcher/forms/configuration_edit_dialog.ui
@@ -16,394 +16,423 @@
-
-
- 8
-
-
- 8
-
- -
-
-
- 8
-
-
- 8
-
-
-
-
-
- User profile
+
+ 8
+
-
+
+ 0
+
+ General
+
+
+ 8
-
-
- QFormLayout::AllNonFixedFieldsGrow
-
-
-
-
- User name:
-
-
- -
-
- Local user name exposed to games
- true
-
-
- -
-
- User ID:
-
-
- -
-
- Local user ID exposed to games
- 2147483647
-
-
- -
-
- Console language:
-
-
- -
-
- Language
-
-
-
-
-
- -
-
- Audio
-
-
- QFormLayout::AllNonFixedFieldsGrow
-
-
-
-
- Microphone:
-
-
- -
-
-
-
-
-
- -
-
-
- Graphics && display
+
+ 8
-
-
- QFormLayout::AllNonFixedFieldsGrow
-
-
-
-
- Screen resolution:
-
-
- -
-
- Window resolution
-
-
- -
-
- Present mode:
-
-
- -
-
- Vulkan swapchain presentation mode
-
-
- -
-
- Vblank frequency:
-
-
- -
-
- Virtual display refresh rate used for frame pacing
- 30
- 360
- 60
-
-
- -
-
- Shader optimization:
-
-
- -
-
- Optimize shaders for code size or performance
-
-
- -
-
- GPU:
-
-
- -
-
- Graphics device used by the emulator
-
-
- -
-
- Run in borderless desktop fullscreen
- Fullscreen
-
-
- -
-
- Read back writable linear images
- Enable readback
-
-
- -
-
- Draw tessellated geometry. Disabled by default; unsupported tessellation may cause crashes.
- Enable tessellation support (experimental)
-
-
- -
-
- Hide the host cursor after 2 seconds without mouse activity
- Auto-hide cursor
-
-
- -
-
- Skip startup logos and notices in supported games.
- Skip boot logos
-
-
- -
-
- Can fix missing textures and incorrect transparency in some games. May reduce performance.
- Accurate texture synchronization
-
-
-
-
-
- -
-
- Notifications
-
-
-
-
- Show trophy unlock notifications and play their sound.
-To use your own sound, replace the emulator's assets/sounds/trophy-unlock.wav with a WAV file and restart the game.
- Enable trophy notifications
- true
-
-
-
-
-
- -
-
-
- Debugging && logs
-
-
- 8
- 6
-
-
-
- Enable Vulkan validation layers
- Vulkan validation
- true
-
-
- -
-
- Validate SPIR-V binary
- Shader validation
- true
-
-
- -
-
- Enable RenderDoc capture
- RenderDoc capture
-
-
- -
-
- Dump command buffers
- Command buffer dump
-
-
- -
-
- Shader logging:
-
-
- -
-
- Dump shaders to file or console window. If enabled may decrease emulator performance
-
-
- -
-
- Shader log folder:
-
-
- -
-
- Specify directory to dump shaders
- true
-
-
- -
-
- Printf output:
-
-
- -
-
- Print logs to file or console window. If enabled may decrease emulator performance
-
-
- -
-
- Printf output file:
-
-
- -
-
- Specify file to dump logs
- true
-
-
- -
-
- Enable the Tracy profiler. Profiling may decrease emulator performance
- Tracy profiler
-
-
- -
-
- Command buffer folder:
-
-
- -
-
- Specify directory to dump command buffers
- true
-
-
-
-
-
- -
-
-
- Compatibility
-
-
-
-
-
- Patch CPU instructions that differ between AMD and the host CPU.
- AMD CPU patch (experimental)
-
-
- -
-
- Helps prevent crashes in some games on Windows
- Windows SysV red zone crash protection (experimental)
-
-
-
-
-
-
-
- -
-
- Controller
-
- QFormLayout::AllNonFixedFieldsGrow
-
-
-
- DualSense lightbar:
-
-
- -
-
-
-
-
- Choose and preview a fixed LED color. Bluetooth DualSense may take several seconds to update.
- Custom
-
-
- -
-
- Let the game control the lightbar
- Default
-
-
-
-
- -
-
- Vibration intensity:
-
-
- -
-
-
-
-
- Scale DualSense vibration over USB and Bluetooth
- 100
- 100
- Qt::Horizontal
-
-
- -
-
- 400
- 100%
-
-
-
-
- -
-
- Speaker volume:
-
-
- -
-
-
-
-
- Scale the DualSense speaker over USB and Bluetooth. 50% is the previous default; 100% adds 6 dB of gain.
- 100
- 50
- Qt::Horizontal
-
-
- -
-
- 400
- 50%
-
-
-
-
-
+ -
+
+
+ 8
+
+
+ 8
+
+
-
+
+
+ User profile
+
+
+
+ QFormLayout::AllNonFixedFieldsGrow
+
+
-
+
+ User name:
+
+
+ -
+
+ Local user name exposed to games
+ true
+
+
+ -
+
+ User ID:
+
+
+ -
+
+ Local user ID exposed to games
+ 2147483647
+
+
+ -
+
+ Console language:
+
+
+ -
+
+ Language
+
+
+
+
+
+ -
+
+ Audio
+
+
+ QFormLayout::AllNonFixedFieldsGrow
+
+
-
+
+ Microphone:
+
+
+ -
+
+
+
+
+
+ -
+
+
+ Graphics && display
+
+
+
+ QFormLayout::AllNonFixedFieldsGrow
+
+
-
+
+ Screen resolution:
+
+
+ -
+
+ Window resolution
+
+
+ -
+
+ Present mode:
+
+
+ -
+
+ Vulkan swapchain presentation mode
+
+
+ -
+
+ Vblank frequency:
+
+
+ -
+
+ Virtual display refresh rate used for frame pacing
+ 30
+ 360
+ 60
+
+
+ -
+
+ Shader optimization:
+
+
+ -
+
+ Optimize shaders for code size or performance
+
+
+ -
+
+ GPU:
+
+
+ -
+
+ Graphics device used by the emulator
+
+
+ -
+
+ Read back writable linear images
+ Enable readback
+
+
+ -
+
+ Draw tessellated geometry. Disabled by default; unsupported tessellation may cause crashes.
+ Enable tessellation support (experimental)
+
+
+ -
+
+ Can fix missing textures and incorrect transparency in some games. May reduce performance.
+ Accurate texture synchronization
+
+
+
+
+
+ -
+
+ Notifications
+
+
-
+
+ Show trophy unlock notifications and play their sound.
+ To use your own sound, replace the emulator's assets/sounds/trophy-unlock.wav with a WAV file and restart the game.
+ Enable trophy notifications
+ true
+
+
+
+
+
+ -
+
+ General
+
+
-
+
+ Run in borderless desktop fullscreen
+ Run in fullscreen
+
+
+ -
+
+ Hide the host cursor after 2 seconds without mouse activity
+ Auto-hide cursor
+
+
+ -
+
+ Skip startup logos and notices in supported games.
+ Skip boot logos
+
+
+
+
+
+ -
+
+
+ Compatibility
+
+
+
-
+
+ Patch CPU instructions that differ between AMD and the host CPU.
+ AMD CPU patch (experimental)
+
+
+ -
+
+ Helps prevent crashes in some games on Windows
+ Windows SysV red zone crash protection (experimental)
+
+
+
+
+
+
+
+ -
+
+ Controller
+
+ QFormLayout::AllNonFixedFieldsGrow
+
-
+
+ DualSense lightbar:
+
+
+ -
+
+
-
+
+ Choose and preview a fixed LED color. Bluetooth DualSense may take several seconds to update.
+ Custom
+
+
+ -
+
+ Let the game control the lightbar
+ Default
+
+
+
+
+ -
+
+ Vibration intensity:
+
+
+ -
+
+
-
+
+ Scale DualSense vibration over USB and Bluetooth
+ 100
+ 100
+ Qt::Horizontal
+
+
+ -
+
+ 400
+ 100%
+
+
+
+
+ -
+
+ Speaker volume:
+
+
+ -
+
+
-
+
+ Scale the DualSense speaker over USB and Bluetooth. 50% is the previous default; 100% adds 6 dB of gain.
+ 100
+ 50
+ Qt::Horizontal
+
+
+ -
+
+ 400
+ 50%
+
+
+
+
+
+
+
+
+
+
+ Debug
+
+ -
+
+
+ Debugging && logs
+
+
+ 8
+ 6
+
-
+
+ Enable Vulkan validation layers
+ Vulkan validation
+ true
+
+
+ -
+
+ Validate SPIR-V binary
+ Shader validation
+ true
+
+
+ -
+
+ Enable RenderDoc capture
+ RenderDoc capture
+
+
+ -
+
+ Dump command buffers
+ Command buffer dump
+
+
+ -
+
+ Shader logging:
+
+
+ -
+
+ Dump shaders to file or console window. If enabled may decrease emulator performance
+
+
+ -
+
+ Shader log folder:
+
+
+ -
+
+ Specify directory to dump shaders
+ true
+
+
+ -
+
+ Printf output:
+
+
+ -
+
+ Print logs to file or console window. If enabled may decrease emulator performance
+
+
+ -
+
+ Printf output file:
+
+
+ -
+
+ Specify file to dump logs
+ true
+
+
+ -
+
+ Enable the Tracy profiler. Profiling may decrease emulator performance
+ Tracy profiler
+
+
+ -
+
+ Command buffer folder:
+
+
+ -
+
+ Specify directory to dump command buffers
+ true
+
+
+
+
+
+ -
+
+ Qt::Vertical
+ 2040
+
+
+
+
- -
+
-
-
diff --git a/src/launcher/src/configurationEditDialog.cpp b/src/launcher/src/configurationEditDialog.cpp
index 76e5ff13c..657d7a9de 100644
--- a/src/launcher/src/configurationEditDialog.cpp
+++ b/src/launcher/src/configurationEditDialog.cpp
@@ -463,6 +463,14 @@ static void UpdateInfo(Configuration& info, Ui::ConfigurationEditDialog& ui, boo
}
void ConfigurationEditDialog::save() {
+ for (auto* field: {m_ui->lineEdit_shader_log_folder, m_ui->lineEdit_printf_file,
+ m_ui->lineEdit_cmd_dump_folder}) {
+ if (field->isEnabled() && field->text().isEmpty()) {
+ m_ui->settings_tabs->setCurrentWidget(m_ui->debug_tab);
+ field->setFocus();
+ break;
+ }
+ }
if (MandatoryLineEdit::FindEmpty(this)) {
QMessageBox::critical(this, tr("Save failed"), tr("Please fill all mandatory fields"));
return;