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 @@
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+