diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt index 4c70d2b35b..5f64ff676e 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt @@ -69,7 +69,8 @@ enum class IntSetting(override val key: String) : AbstractIntSetting { MY_PAGE_APPLET("my_page_applet_mode"), INPUT_OVERLAY_AUTO_HIDE("input_overlay_auto_hide"), OVERLAY_GRID_SIZE("overlay_grid_size"), - GPU_LOG_RING_BUFFER_SIZE("gpu_log_ring_buffer_size") + GPU_LOG_RING_BUFFER_SIZE("gpu_log_ring_buffer_size"), + PRODUCT_MODEL("product_model") ; override fun getInt(needsGlobal: Boolean): Int = NativeConfig.getInt(key, needsGlobal) 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 6f25856cbf..1ef7608957 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 @@ -965,6 +965,16 @@ abstract class SettingsItem( max = 4096 ) ) + put( + SpinBoxSetting( + IntSetting.PRODUCT_MODEL, + titleId = R.string.product_model, + descriptionId = R.string.product_model_description, + valueHint = R.string.product_model, + min = 1, + max = 2 + ) + ) val fastmem = object : AbstractBooleanSetting { override fun getBoolean(needsGlobal: Boolean): Boolean = 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 060a6fe9ae..34445c43b3 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 @@ -1265,6 +1265,7 @@ class SettingsFragmentPresenter( add(BooleanSetting.GPU_LOG_MEMORY_TRACKING.key) add(BooleanSetting.GPU_LOG_DRIVER_DEBUG.key) add(IntSetting.GPU_LOG_RING_BUFFER_SIZE.key) + add(IntSetting.PRODUCT_MODEL.key) } } diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index 343cc4b21a..43f13f0ea2 100644 --- a/src/android/app/src/main/res/values/strings.xml +++ b/src/android/app/src/main/res/values/strings.xml @@ -586,6 +586,9 @@ Number of recent Vulkan calls to track (default: 512) 64 to 4096 entries + Product model + Reported product model by HLE firmware + General diff --git a/src/common/settings.h b/src/common/settings.h index 8cd55bcdd3..52d003c07c 100644 --- a/src/common/settings.h +++ b/src/common/settings.h @@ -640,6 +640,7 @@ struct Values { SwitchableSetting time_zone_index{linkage, TimeZone::Auto, "time_zone_index", Category::System}; Setting serial_battery{linkage, 0, "serial_battery", Category::System}; Setting serial_unit{linkage, 0, "serial_unit", Category::System}; + Setting product_model{linkage, 1, "product_model", Category::System}; // Measured in seconds since epoch SwitchableSetting custom_rtc_enabled{linkage, false, "custom_rtc_enabled", Category::System, Specialization::Paired, true, true}; SwitchableSetting custom_rtc{ diff --git a/src/core/hle/service/set/system_settings_server.cpp b/src/core/hle/service/set/system_settings_server.cpp index c7a83e69f4..d1c8b49438 100644 --- a/src/core/hle/service/set/system_settings_server.cpp +++ b/src/core/hle/service/set/system_settings_server.cpp @@ -1158,8 +1158,8 @@ Result ISystemSettingsServer::SetDeviceNickName( Result ISystemSettingsServer::GetProductModel(Out out_product_model) { // Most certainly should be 1 -- definitely should not be 2, but it's worth tinkering with anyways - u32 const product_model = 1; - LOG_WARNING(Service_SET, "(STUBBED) called, product_model={}", product_model); + auto const product_model = ::Settings::values.product_model.GetValue(); + LOG_INFO(Service_SET, "called, product_model={}", product_model); *out_product_model = product_model; R_SUCCEED(); } diff --git a/src/qt_common/config/shared_translation.cpp b/src/qt_common/config/shared_translation.cpp index a0c4779b73..7f0141badf 100644 --- a/src/qt_common/config/shared_translation.cpp +++ b/src/qt_common/config/shared_translation.cpp @@ -329,6 +329,7 @@ std::unique_ptr InitializeTranslations(QObject* parent) { INSERT(Settings, current_user, QString(), QString()); INSERT(Settings, serial_unit, tr("Unit Serial"), QString()); INSERT(Settings, serial_battery, tr("Battery Serial"), QString()); + INSERT(Settings, product_model, tr("Product Model"), QString()); INSERT(Settings, debug_knobs, tr("Debug knobs"), QString()); // Controls