From 448a4c8a6a065219daac80d8e4a1a56facde1b01 Mon Sep 17 00:00:00 2001 From: nmzik Date: Sun, 11 Oct 2026 01:44:04 +0200 Subject: [PATCH] launcher: reorganize panels --- .../forms/configuration_edit_dialog.ui | 797 +++++++++--------- src/launcher/src/configurationEditDialog.cpp | 8 + 2 files changed, 421 insertions(+), 384 deletions(-) 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;