From 02bf35aaf6dd7b6211237fb19a8a19dbf4fc6dc2 Mon Sep 17 00:00:00 2001 From: David Griswold Date: Thu, 25 Sep 2025 13:17:21 +0300 Subject: [PATCH] enable for android --- .../citra_emu/features/settings/model/BooleanSetting.kt | 1 + .../features/settings/ui/SettingsFragmentPresenter.kt | 9 +++++++++ src/android/app/src/main/jni/config.cpp | 1 + src/android/app/src/main/jni/default_ini.h | 4 ++++ src/android/app/src/main/res/values/strings.xml | 2 ++ 5 files changed, 17 insertions(+) diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/BooleanSetting.kt b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/BooleanSetting.kt index 11f55d184..77d11c873 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/BooleanSetting.kt +++ b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/BooleanSetting.kt @@ -33,6 +33,7 @@ enum class BooleanSetting( LLE_APPLETS("lle_applets", Settings.SECTION_SYSTEM, false), NEW_3DS("is_new_3ds", Settings.SECTION_SYSTEM, true), LINEAR_FILTERING("filter_mode", Settings.SECTION_RENDERER, true), + USE_INTEGER_SCALING("use_integer_scaling",Settings.SECTION_RENDERER, false), SHADERS_ACCURATE_MUL("shaders_accurate_mul", Settings.SECTION_RENDERER, false), DISK_SHADER_CACHE("use_disk_shader_cache", Settings.SECTION_RENDERER, true), DUMP_TEXTURES("dump_textures", Settings.SECTION_UTILITY, false), diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsFragmentPresenter.kt b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsFragmentPresenter.kt index d4baf6166..c08423c2c 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsFragmentPresenter.kt +++ b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsFragmentPresenter.kt @@ -883,6 +883,15 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView) IntSetting.RESOLUTION_FACTOR.key, IntSetting.RESOLUTION_FACTOR.defaultValue ) + ) + add( + SwitchSetting( + BooleanSetting.USE_INTEGER_SCALING, + R.string.use_integer_scaling, + R.string.use_integer_scaling_description, + BooleanSetting.USE_INTEGER_SCALING.key, + BooleanSetting.USE_INTEGER_SCALING.defaultValue + ) ) add( SwitchSetting( diff --git a/src/android/app/src/main/jni/config.cpp b/src/android/app/src/main/jni/config.cpp index 9ac9f3737..753864bc3 100644 --- a/src/android/app/src/main/jni/config.cpp +++ b/src/android/app/src/main/jni/config.cpp @@ -168,6 +168,7 @@ void Config::ReadValues() { Settings::values.pp_shader_name = sdl2_config->GetString("Renderer", "pp_shader_name", default_shader); ReadSetting("Renderer", Settings::values.filter_mode); + ReadSetting("Renderer",Settings::values.use_integer_scaling); ReadSetting("Renderer", Settings::values.bg_red); ReadSetting("Renderer", Settings::values.bg_green); diff --git a/src/android/app/src/main/jni/default_ini.h b/src/android/app/src/main/jni/default_ini.h index 5bedfa319..ed5a46157 100644 --- a/src/android/app/src/main/jni/default_ini.h +++ b/src/android/app/src/main/jni/default_ini.h @@ -148,6 +148,10 @@ use_disk_shader_cache = # factor for the 3DS resolution resolution_factor = +# Use Integer Scaling when the layout allows +# 0: Off (default), 1: On +use_integer_scaling = + # Whether to enable V-Sync (caps the framerate at 60FPS) or not. # 0 (default): Off, 1: On vsync_enabled = diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index 078113f12..284c3af67 100644 --- a/src/android/app/src/main/res/values/strings.xml +++ b/src/android/app/src/main/res/values/strings.xml @@ -242,6 +242,8 @@ Compiles shaders in the background to reduce stuttering during gameplay. When enabled expect temporary graphical glitches Linear Filtering Enables linear filtering, which causes game visuals to appear smoother. + Integer Scaling + Scales the screens with an integer multiplier of the original 3DS screen. For layouts with two different screen sizes, the largest screen is integer-scaled. Texture Filter Enhances the visuals of applications by applying a filter to textures. The supported filters are Anime4K Ultrafast, Bicubic, ScaleForce, xBRZ freescale, and MMPX. Delay Game Render Thread