diff --git a/app/src/main/java/emu/skyline/EmulationActivity.kt b/app/src/main/java/emu/skyline/EmulationActivity.kt index d3b796d7..4c6366f1 100644 --- a/app/src/main/java/emu/skyline/EmulationActivity.kt +++ b/app/src/main/java/emu/skyline/EmulationActivity.kt @@ -269,7 +269,7 @@ class EmulationActivity : AppCompatActivity(), SurfaceHolder.Callback, View.OnTo } ) - if (appSettings.perfStats) { + if (emulationSettings.perfStats) { if (emulationSettings.disableFrameThrottling) binding.perfStats.setTextColor(getColor(R.color.colorPerfStatsSecondary)) diff --git a/app/src/main/java/emu/skyline/preference/DocumentsProviderPreference.kt b/app/src/main/java/emu/skyline/preference/DocumentsProviderPreference.kt index 0e22cfb2..6bac132e 100644 --- a/app/src/main/java/emu/skyline/preference/DocumentsProviderPreference.kt +++ b/app/src/main/java/emu/skyline/preference/DocumentsProviderPreference.kt @@ -34,6 +34,6 @@ class DocumentsProviderPreference @JvmOverloads constructor(context : Context, a override fun onClick() { if (launchOpenIntent(Intent.ACTION_VIEW) or launchOpenIntent("android.provider.action.BROWSE")) return - Snackbar.make((context as SettingsActivity).binding.root, SkylineR.string.failed_open_directory, Snackbar.LENGTH_SHORT).show() + Snackbar.make((context as SettingsActivity).binding.root, SkylineR.string.open_data_directory_failed, Snackbar.LENGTH_SHORT).show() } } diff --git a/app/src/main/java/emu/skyline/settings/AppSettings.kt b/app/src/main/java/emu/skyline/settings/AppSettings.kt index 532b516e..33466ef1 100644 --- a/app/src/main/java/emu/skyline/settings/AppSettings.kt +++ b/app/src/main/java/emu/skyline/settings/AppSettings.kt @@ -16,15 +16,15 @@ import javax.inject.Singleton */ @Singleton class AppSettings @Inject constructor(@ApplicationContext private val context : Context) { - // Emulator + // Content var searchLocation by sharedPreferences(context, "") + + // Appearance var appTheme by sharedPreferences(context, 2) var layoutType by sharedPreferences(context, 1) - var groupByFormat by sharedPreferences(context, true) var sortAppsBy by sharedPreferences(context, 0) + var groupByFormat by sharedPreferences(context, true) var selectAction by sharedPreferences(context, false) - var perfStats by sharedPreferences(context, false) - var logLevel by sharedPreferences(context, 3) // Input var onScreenControl by sharedPreferences(context, true) @@ -34,4 +34,5 @@ class AppSettings @Inject constructor(@ApplicationContext private val context : // Other var romFormatFilter by sharedPreferences(context, 0) var refreshRequired by sharedPreferences(context, false) + var logLevel by sharedPreferences(context, 3) } diff --git a/app/src/main/java/emu/skyline/settings/EmulationSettings.kt b/app/src/main/java/emu/skyline/settings/EmulationSettings.kt index ac996e82..f2e855e0 100644 --- a/app/src/main/java/emu/skyline/settings/EmulationSettings.kt +++ b/app/src/main/java/emu/skyline/settings/EmulationSettings.kt @@ -28,30 +28,31 @@ class EmulationSettings private constructor(context : Context, prefName : String var systemLanguage by sharedPreferences(context, 1, prefName = prefName) var systemRegion by sharedPreferences(context, -1, prefName = prefName) + // Audio + var isAudioOutputDisabled by sharedPreferences(context, false, prefName = prefName) + // Display - var forceTripleBuffering by sharedPreferences(context, true, prefName = prefName) - var disableFrameThrottling by sharedPreferences(context, false, prefName = prefName) + var perfStats by sharedPreferences(context, false, prefName = prefName) var maxRefreshRate by sharedPreferences(context, false, prefName = prefName) - var aspectRatio by sharedPreferences(context, 0, prefName = prefName) var orientation by sharedPreferences(context, ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE, prefName = prefName) + var aspectRatio by sharedPreferences(context, 0, prefName = prefName) var respectDisplayCutout by sharedPreferences(context, false, prefName = prefName) - var disableShaderCache by sharedPreferences(context, false, prefName = prefName) // GPU var gpuDriver by sharedPreferences(context, SYSTEM_GPU_DRIVER, prefName = prefName) + var forceTripleBuffering by sharedPreferences(context, true, prefName = prefName) + var disableFrameThrottling by sharedPreferences(context, false, prefName = prefName) var executorSlotCountScale by sharedPreferences(context, 6, prefName = prefName) var executorFlushThreshold by sharedPreferences(context, 256, prefName = prefName) var useDirectMemoryImport by sharedPreferences(context, false, prefName = prefName) var forceMaxGpuClocks by sharedPreferences(context, false, prefName = prefName) + var disableShaderCache by sharedPreferences(context, false, prefName = prefName) // Hacks var enableFastGpuReadbackHack by sharedPreferences(context, false, prefName = prefName) var enableFastReadbackWrites by sharedPreferences(context, false, prefName = prefName) var disableSubgroupShuffle by sharedPreferences(context, false, prefName = prefName) - // Audio - var isAudioOutputDisabled by sharedPreferences(context, false, prefName = prefName) - // Debug var validationLayer by sharedPreferences(context, false, prefName = prefName) diff --git a/app/src/main/java/emu/skyline/settings/NativeSettings.kt b/app/src/main/java/emu/skyline/settings/NativeSettings.kt index 4b93788f..d28801e4 100644 --- a/app/src/main/java/emu/skyline/settings/NativeSettings.kt +++ b/app/src/main/java/emu/skyline/settings/NativeSettings.kt @@ -23,27 +23,25 @@ data class NativeSettings( var systemLanguage : Int, var systemRegion : Int, - // Display - var forceTripleBuffering : Boolean, - var disableFrameThrottling : Boolean, - var disableShaderCache : Boolean, + // Audio + var isAudioOutputDisabled : Boolean, // GPU var gpuDriver : String, var gpuDriverLibraryName : String, + var forceTripleBuffering : Boolean, + var disableFrameThrottling : Boolean, var executorSlotCountScale : Int, var executorFlushThreshold : Int, var useDirectMemoryImport : Boolean, var forceMaxGpuClocks : Boolean, + var disableShaderCache : Boolean, // Hacks var enableFastGpuReadbackHack : Boolean, var enableFastReadbackWrites : Boolean, var disableSubgroupShuffle : Boolean, - // Audio - var isAudioOutputDisabled : Boolean, - // Debug var validationLayer : Boolean ) { @@ -53,19 +51,19 @@ data class NativeSettings( pref.profilePictureValue, pref.systemLanguage, pref.systemRegion, - pref.forceTripleBuffering, - pref.disableFrameThrottling, - pref.disableShaderCache, + pref.isAudioOutputDisabled, if (pref.gpuDriver == EmulationSettings.SYSTEM_GPU_DRIVER) "" else pref.gpuDriver, if (pref.gpuDriver == EmulationSettings.SYSTEM_GPU_DRIVER) "" else GpuDriverHelper.getLibraryName(context, pref.gpuDriver), + pref.forceTripleBuffering, + pref.disableFrameThrottling, pref.executorSlotCountScale, pref.executorFlushThreshold, pref.useDirectMemoryImport, pref.forceMaxGpuClocks, + pref.disableShaderCache, pref.enableFastGpuReadbackHack, pref.enableFastReadbackWrites, pref.disableSubgroupShuffle, - pref.isAudioOutputDisabled, BuildConfig.BUILD_TYPE != "release" && pref.validationLayer ) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6054a790..0185e106 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -4,6 +4,7 @@ Search An error has occurred Copied to clipboard + Emulator Settings Share Logs @@ -22,24 +23,29 @@ Invalid file Missing title key Incomplete production keys - - Emulator + + Content View Internal Directory Opens Skyline\'s internal directory in a file manager - Cannot find an external file manager to open Skyline\'s internal directory - Theme - Show Performance Statistics - Performance Statistics will not be shown - Performance Statistics will be shown in the top-left corner - Log Level - - App List + Cannot find an external file manager to open Skyline\'s internal directory Search Location + + Keys + Production Keys + Title Keys + Successfully imported keys + The path to the provided keys is invalid + The keys you tried to import are invalid + Failed to delete the currently installed keys + Failed to move the keys to the internal directory + + Appearance + Theme Game Display Layout + Games Sorting Order Group Games By Format Games will be shown as a single list Games will be shown grouped by format - Games Sorting Order Always Show Game Information Game information will be shown on clicking a game Game information will only be shown on long-clicking a game @@ -61,36 +67,35 @@ Profile picture System language System region - - Keys - Production Keys - Title Keys - Successfully imported keys - The path to the provided keys is invalid - The keys you tried to import are invalid - Failed to delete the currently installed keys - Failed to move the keys to the internal directory Display + Show Performance Statistics + Performance Statistics will not be shown + Performance Statistics will be shown in the top-left corner + Use Maximum Display Refresh Rate + Sets the display refresh rate as high as possible (Will break most games) + Sets the display refresh rate to 60Hz Screen orientation + Aspect Ratio + Respect Display Cutout + Do not draw UI elements in the cutout area + Allow UI elements to be drawn in the cutout area + + Audio + Disable Audio Output + Audio output is disabled + Audio output is enabled + + GPU + GPU Driver Configuration + Active driver: %1$s + Your device doesn\'t support custom drivers Force Triple Buffering Utilize at least three swapchain buffers (Higher FPS but more input lag) Utilize at least two swapchain buffers (Lower FPS but less input lag) Disable Frame Throttling Game is allowed to submit frames as fast as possible (Only for benchmarking)\n\nNote: An alternative method is utilized to measure the FPS with this enabled, the figures must not be compared to throttled FPS figures Only allow the game to submit frames at the display refresh rate - Use Maximum Display Refresh Rate - Sets the display refresh rate as high as possible (Will break most games) - Sets the display refresh rate to 60Hz - Aspect Ratio - Respect Display Cutout - Do not draw UI elements in the cutout area - Allow UI elements to be drawn in the cutout area - - GPU - GPU Driver Configuration - Active driver: %1$s - Your device doesn\'t support custom drivers Executor Slot Count Scale Scale controlling the maximum number of simultaneous GPU executions (Higher may sometimes perform better but will use more RAM) Executor Flush Threshold @@ -114,13 +119,9 @@ Disable GPU subgroup shuffle Shader subgroup shuffle operations are disabled, may cause severe graphical issues Shader subgroup shuffle operations are enabled, ensures maximum accuracy - - Audio - Disable Audio Output - Audio output is disabled - Audio output is enabled Debug + Log Level Enable validation layer The Vulkan validation layer is enabled, major slowdowns are to be expected The Vulkan validation layer is disabled diff --git a/app/src/main/res/xml/app_preferences.xml b/app/src/main/res/xml/app_preferences.xml index 21942ac2..472a0862 100644 --- a/app/src/main/res/xml/app_preferences.xml +++ b/app/src/main/res/xml/app_preferences.xml @@ -1,38 +1,33 @@ + android:key="category_content" + android:title="@string/content"> + + + + + - - - - - - - - - diff --git a/app/src/main/res/xml/emulation_preferences.xml b/app/src/main/res/xml/emulation_preferences.xml index 0457fcb8..d2e54550 100644 --- a/app/src/main/res/xml/emulation_preferences.xml +++ b/app/src/main/res/xml/emulation_preferences.xml @@ -36,6 +36,18 @@ + + + + + + + + - - - - - - - +