From 45c5781d09aca67e7b630a89e5d0a9fb18e2b458 Mon Sep 17 00:00:00 2001 From: xbzk Date: Sat, 23 May 2026 22:28:19 -0300 Subject: [PATCH] [android,settings] added homebrew args support --- .../yuzu_emu/features/settings/model/StringSetting.kt | 3 ++- .../yuzu_emu/features/settings/model/view/SettingsItem.kt | 7 +++++++ .../features/settings/ui/SettingsFragmentPresenter.kt | 1 + src/android/app/src/main/res/values/strings.xml | 3 +++ src/common/settings.h | 8 +++++++- src/qt_common/config/shared_translation.cpp | 2 ++ 6 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/StringSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/StringSetting.kt index 55ddd5950c..2215afb663 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/StringSetting.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/StringSetting.kt @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project // SPDX-License-Identifier: GPL-3.0-or-later // SPDX-FileCopyrightText: 2023 yuzu Emulator Project @@ -11,6 +11,7 @@ import org.yuzu.yuzu_emu.utils.NativeConfig enum class StringSetting(override val key: String) : AbstractStringSetting { DRIVER_PATH("driver_path"), DEVICE_NAME("device_name"), + PROGRAM_ARGS("program_args"), WEB_TOKEN("eden_token"), WEB_USERNAME("eden_username") diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt index f95c53720f..e3cd458a39 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt @@ -125,6 +125,13 @@ abstract class SettingsItem( // List of all general val settingsItems = HashMap().apply { put(StringInputSetting(StringSetting.DEVICE_NAME, titleId = R.string.device_name)) + put( + StringInputSetting( + StringSetting.PROGRAM_ARGS, + titleId = R.string.program_args, + descriptionId = R.string.program_args_description + ) + ) put( SwitchSetting( BooleanSetting.RENDERER_USE_SPEED_LIMIT, diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt index 161579927c..e2d70f1670 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt @@ -1286,6 +1286,7 @@ class SettingsFragmentPresenter( add(HeaderSetting(R.string.general)) add(ShortSetting.DEBUG_KNOBS.key) + add(StringSetting.PROGRAM_ARGS.key) add(HeaderSetting(R.string.gpu_logging_header)) add(BooleanSetting.GPU_LOGGING_ENABLED.key) diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index 77be250537..a425ce36ef 100644 --- a/src/android/app/src/main/res/values/strings.xml +++ b/src/android/app/src/main/res/values/strings.xml @@ -434,6 +434,9 @@ CPU accuracy %1$s%2$s + Homebrew Args + Command-line arguments passed to homebrew at launch (e.g. -noglsl). + Device name Docked Mode diff --git a/src/common/settings.h b/src/common/settings.h index f38e95d5a4..c229b86a48 100644 --- a/src/common/settings.h +++ b/src/common/settings.h @@ -779,7 +779,13 @@ struct Values { bool record_frame_times; Setting use_gdbstub{linkage, false, "use_gdbstub", Category::Debugging}; Setting gdbstub_port{linkage, 6543, "gdbstub_port", Category::Debugging}; - Setting program_args{linkage, std::string(), "program_args", Category::Debugging}; + SwitchableSetting program_args{linkage, + std::string(), + "program_args", + Category::System, + Specialization::Default, + true, // save_ — persist in config file + false}; // runtime_modifiable_ — startup-only Setting dump_exefs{linkage, false, "dump_exefs", Category::Debugging}; Setting dump_nso{linkage, false, "dump_nso", Category::Debugging}; Setting dump_shaders{ diff --git a/src/qt_common/config/shared_translation.cpp b/src/qt_common/config/shared_translation.cpp index 5c63732a3e..6778f37f7b 100644 --- a/src/qt_common/config/shared_translation.cpp +++ b/src/qt_common/config/shared_translation.cpp @@ -301,6 +301,8 @@ std::unique_ptr InitializeTranslations(QObject* parent) { tr("Controls the seed of the random number generator.\nMainly used for speedrunning.")); INSERT(Settings, rng_seed_enabled, QString(), QString()); INSERT(Settings, device_name, tr("Device Name"), tr("The name of the console.")); + INSERT(Settings, program_args, tr("Homebrew Args"), + tr("Command-line arguments passed to homebrew at launch (e.g. -noglsl).")); INSERT(Settings, custom_rtc, tr("Custom RTC Date:"), tr("This option allows to change the clock of the console.\n" "Can be used to manipulate time in games."));