mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2025-07-20 12:55:45 +00:00
added settings to android (#118)
Signed-off-by: Aleksandr Popovich <alekpopo@pm.me> Signed-off-by: swurl <swurl@swurl.xyz> Reviewed-on: #118 Co-authored-by: Aleksandr Popovich <alekpopo@pm.me> Co-authored-by: swurl <swurl@swurl.xyz> Co-committed-by: Aleksandr Popovich <alekpopo@pm.me>
This commit is contained in:
parent
b1b6e0064f
commit
c79b7f82c8
38 changed files with 243 additions and 104 deletions
|
@ -166,6 +166,11 @@ object NativeLibrary {
|
||||||
*/
|
*/
|
||||||
external fun getPerfStats(): DoubleArray
|
external fun getPerfStats(): DoubleArray
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of shaders being built
|
||||||
|
*/
|
||||||
|
external fun getShadersBuilding(): Int
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the current CPU backend.
|
* Returns the current CPU backend.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -33,16 +33,18 @@ enum class BooleanSetting(override val key: String) : AbstractBooleanSetting {
|
||||||
TOUCHSCREEN("touchscreen"),
|
TOUCHSCREEN("touchscreen"),
|
||||||
SHOW_THERMAL_OVERLAY("show_thermal_overlay"),
|
SHOW_THERMAL_OVERLAY("show_thermal_overlay"),
|
||||||
FRAME_INTERPOLATION("frame_interpolation"),
|
FRAME_INTERPOLATION("frame_interpolation"),
|
||||||
FRAME_SKIPPING("frame_skipping"),
|
// FRAME_SKIPPING("frame_skipping"),
|
||||||
SHOW_FPS("show_fps"),
|
SHOW_FPS("show_fps"),
|
||||||
SHOW_FRAMETIME("show_frame_time"),
|
SHOW_FRAMETIME("show_frame_time"),
|
||||||
SHOW_SPEED("show_speed"),
|
|
||||||
SHOW_APP_RAM_USAGE("show_app_ram_usage"),
|
SHOW_APP_RAM_USAGE("show_app_ram_usage"),
|
||||||
SHOW_SYSTEM_RAM_USAGE("show_system_ram_usage"),
|
SHOW_SYSTEM_RAM_USAGE("show_system_ram_usage"),
|
||||||
SHOW_BAT_TEMPERATURE("show_bat_temperature"),
|
SHOW_BAT_TEMPERATURE("show_bat_temperature"),
|
||||||
|
SHOW_SHADERS_BUILDING("show_shaders_building"),
|
||||||
OVERLAY_BACKGROUND("overlay_background"),
|
OVERLAY_BACKGROUND("overlay_background"),
|
||||||
|
DONT_SHOW_EDEN_VEIL_WARNING("dont_show_eden_veil_warning"),
|
||||||
|
DEBUG_FLUSH_BY_LINE("flush_lines"),
|
||||||
USE_LRU_CACHE("use_lru_cache"),;
|
USE_LRU_CACHE("use_lru_cache"),;
|
||||||
external fun isFrameSkippingEnabled(): Boolean
|
// external fun isFrameSkippingEnabled(): Boolean
|
||||||
external fun isFrameInterpolationEnabled(): Boolean
|
external fun isFrameInterpolationEnabled(): Boolean
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -33,6 +33,7 @@ enum class IntSetting(override val key: String) : AbstractIntSetting {
|
||||||
LOCK_DRAWER("lock_drawer"),
|
LOCK_DRAWER("lock_drawer"),
|
||||||
VERTICAL_ALIGNMENT("vertical_alignment"),
|
VERTICAL_ALIGNMENT("vertical_alignment"),
|
||||||
PERF_OVERLAY_POSITION("perf_overlay_position"),
|
PERF_OVERLAY_POSITION("perf_overlay_position"),
|
||||||
|
MEMORY_LAYOUT("memory_layout_mode"),
|
||||||
FSR_SHARPENING_SLIDER("fsr_sharpening_slider"),
|
FSR_SHARPENING_SLIDER("fsr_sharpening_slider"),
|
||||||
CABINET_APPLET("cabinet_applet_mode"),
|
CABINET_APPLET("cabinet_applet_mode"),
|
||||||
CONTROLLER_APPLET("controller_applet_mode"),
|
CONTROLLER_APPLET("controller_applet_mode"),
|
||||||
|
|
|
@ -34,6 +34,7 @@ object Settings {
|
||||||
|
|
||||||
const val PREF_FIRST_APP_LAUNCH = "FirstApplicationLaunch"
|
const val PREF_FIRST_APP_LAUNCH = "FirstApplicationLaunch"
|
||||||
const val PREF_SHOULD_SHOW_PRE_ALPHA_WARNING = "ShouldShowPreAlphaWarning"
|
const val PREF_SHOULD_SHOW_PRE_ALPHA_WARNING = "ShouldShowPreAlphaWarning"
|
||||||
|
const val PREF_SHOULD_SHOW_PRE_ALPHA_BANNER = "ShouldShowPreAlphaBanner"
|
||||||
const val PREF_MEMORY_WARNING_SHOWN = "MemoryWarningShown"
|
const val PREF_MEMORY_WARNING_SHOWN = "MemoryWarningShown"
|
||||||
const val SECTION_STATS_OVERLAY = "Stats Overlay"
|
const val SECTION_STATS_OVERLAY = "Stats Overlay"
|
||||||
|
|
||||||
|
|
|
@ -52,10 +52,6 @@ abstract class SettingsItem(
|
||||||
|
|
||||||
val isEditable: Boolean
|
val isEditable: Boolean
|
||||||
get() {
|
get() {
|
||||||
if (setting.key == BooleanSetting.FRAME_SKIPPING.key) {
|
|
||||||
// disabled for now
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
// Can't change docked mode toggle when using handheld mode
|
// Can't change docked mode toggle when using handheld mode
|
||||||
if (setting.key == BooleanSetting.USE_DOCKED_MODE.key) {
|
if (setting.key == BooleanSetting.USE_DOCKED_MODE.key) {
|
||||||
return NativeInput.getStyleIndex(0) != NpadStyleIndex.Handheld
|
return NativeInput.getStyleIndex(0) != NpadStyleIndex.Handheld
|
||||||
|
@ -136,7 +132,7 @@ abstract class SettingsItem(
|
||||||
titleId = R.string.dyna_state,
|
titleId = R.string.dyna_state,
|
||||||
descriptionId = R.string.dyna_state_description,
|
descriptionId = R.string.dyna_state_description,
|
||||||
min = 0,
|
min = 0,
|
||||||
max = 2,
|
max = 3,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
put(
|
put(
|
||||||
|
@ -186,6 +182,13 @@ abstract class SettingsItem(
|
||||||
descriptionId = R.string.picture_in_picture_description
|
descriptionId = R.string.picture_in_picture_description
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
put(
|
||||||
|
SwitchSetting(
|
||||||
|
BooleanSetting.DEBUG_FLUSH_BY_LINE,
|
||||||
|
titleId = R.string.flush_by_line,
|
||||||
|
descriptionId = R.string.flush_by_line_description
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
val dockedModeSetting = object : AbstractBooleanSetting {
|
val dockedModeSetting = object : AbstractBooleanSetting {
|
||||||
override val key = BooleanSetting.USE_DOCKED_MODE.key
|
override val key = BooleanSetting.USE_DOCKED_MODE.key
|
||||||
|
@ -216,13 +219,13 @@ abstract class SettingsItem(
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
put(
|
// put(
|
||||||
SwitchSetting(
|
// SwitchSetting(
|
||||||
BooleanSetting.FRAME_SKIPPING,
|
// BooleanSetting.FRAME_SKIPPING,
|
||||||
titleId = R.string.frame_skipping,
|
// titleId = R.string.frame_skipping,
|
||||||
descriptionId = R.string.frame_skipping_description
|
// descriptionId = R.string.frame_skipping_description
|
||||||
)
|
// )
|
||||||
)
|
// )
|
||||||
|
|
||||||
put(
|
put(
|
||||||
SwitchSetting(
|
SwitchSetting(
|
||||||
|
@ -231,6 +234,15 @@ abstract class SettingsItem(
|
||||||
descriptionId = R.string.use_docked_mode_description
|
descriptionId = R.string.use_docked_mode_description
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
put(
|
||||||
|
SingleChoiceSetting(
|
||||||
|
IntSetting.MEMORY_LAYOUT,
|
||||||
|
titleId = R.string.memory_layout,
|
||||||
|
descriptionId = R.string.memory_layout_description,
|
||||||
|
choicesId = R.array.memoryNames,
|
||||||
|
valuesId = R.array.memoryValues
|
||||||
|
)
|
||||||
|
)
|
||||||
put(
|
put(
|
||||||
SwitchSetting(
|
SwitchSetting(
|
||||||
BooleanSetting.CORE_SYNC_CORE_SPEED,
|
BooleanSetting.CORE_SYNC_CORE_SPEED,
|
||||||
|
@ -362,13 +374,6 @@ abstract class SettingsItem(
|
||||||
descriptionId = R.string.show_frametime_description
|
descriptionId = R.string.show_frametime_description
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
put(
|
|
||||||
SwitchSetting(
|
|
||||||
BooleanSetting.SHOW_SPEED,
|
|
||||||
R.string.show_speed,
|
|
||||||
descriptionId = R.string.show_speed_description
|
|
||||||
)
|
|
||||||
)
|
|
||||||
put(
|
put(
|
||||||
SwitchSetting(
|
SwitchSetting(
|
||||||
BooleanSetting.SHOW_APP_RAM_USAGE,
|
BooleanSetting.SHOW_APP_RAM_USAGE,
|
||||||
|
@ -390,6 +395,13 @@ abstract class SettingsItem(
|
||||||
descriptionId = R.string.show_bat_temperature_description
|
descriptionId = R.string.show_bat_temperature_description
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
put(
|
||||||
|
SwitchSetting(
|
||||||
|
BooleanSetting.SHOW_SHADERS_BUILDING,
|
||||||
|
R.string.show_shaders_building,
|
||||||
|
descriptionId = R.string.show_shaders_building_description
|
||||||
|
)
|
||||||
|
)
|
||||||
put(
|
put(
|
||||||
SingleChoiceSetting(
|
SingleChoiceSetting(
|
||||||
IntSetting.RENDERER_VSYNC,
|
IntSetting.RENDERER_VSYNC,
|
||||||
|
|
|
@ -8,6 +8,7 @@ import android.os.Bundle
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
|
import androidx.core.content.edit
|
||||||
import androidx.core.view.ViewCompat
|
import androidx.core.view.ViewCompat
|
||||||
import androidx.core.view.WindowInsetsCompat
|
import androidx.core.view.WindowInsetsCompat
|
||||||
import androidx.core.view.updatePadding
|
import androidx.core.view.updatePadding
|
||||||
|
@ -15,15 +16,17 @@ import androidx.fragment.app.Fragment
|
||||||
import androidx.fragment.app.activityViewModels
|
import androidx.fragment.app.activityViewModels
|
||||||
import androidx.navigation.findNavController
|
import androidx.navigation.findNavController
|
||||||
import androidx.navigation.fragment.navArgs
|
import androidx.navigation.fragment.navArgs
|
||||||
|
import androidx.preference.PreferenceManager
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import com.google.android.material.transition.MaterialSharedAxis
|
import com.google.android.material.transition.MaterialSharedAxis
|
||||||
import org.yuzu.yuzu_emu.R
|
import org.yuzu.yuzu_emu.R
|
||||||
import org.yuzu.yuzu_emu.databinding.FragmentSettingsBinding
|
import org.yuzu.yuzu_emu.databinding.FragmentSettingsBinding
|
||||||
import org.yuzu.yuzu_emu.features.input.NativeInput
|
import org.yuzu.yuzu_emu.features.input.NativeInput
|
||||||
|
import org.yuzu.yuzu_emu.features.settings.model.BooleanSetting
|
||||||
import org.yuzu.yuzu_emu.features.settings.model.Settings
|
import org.yuzu.yuzu_emu.features.settings.model.Settings
|
||||||
import org.yuzu.yuzu_emu.fragments.MessageDialogFragment
|
import org.yuzu.yuzu_emu.fragments.MessageDialogFragment
|
||||||
import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins
|
import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins
|
||||||
import org.yuzu.yuzu_emu.utils.collect
|
import org.yuzu.yuzu_emu.utils.*
|
||||||
|
|
||||||
class SettingsFragment : Fragment() {
|
class SettingsFragment : Fragment() {
|
||||||
private lateinit var presenter: SettingsFragmentPresenter
|
private lateinit var presenter: SettingsFragmentPresenter
|
||||||
|
@ -66,7 +69,8 @@ class SettingsFragment : Fragment() {
|
||||||
presenter = SettingsFragmentPresenter(
|
presenter = SettingsFragmentPresenter(
|
||||||
settingsViewModel,
|
settingsViewModel,
|
||||||
settingsAdapter!!,
|
settingsAdapter!!,
|
||||||
args.menuTag
|
args.menuTag,
|
||||||
|
activity
|
||||||
)
|
)
|
||||||
|
|
||||||
binding.toolbarSettingsLayout.title = if (args.menuTag == Settings.MenuTag.SECTION_ROOT &&
|
binding.toolbarSettingsLayout.title = if (args.menuTag == Settings.MenuTag.SECTION_ROOT &&
|
||||||
|
@ -86,6 +90,7 @@ class SettingsFragment : Fragment() {
|
||||||
else -> getString(args.menuTag.titleId)
|
else -> getString(args.menuTag.titleId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.listSettings.apply {
|
binding.listSettings.apply {
|
||||||
adapter = settingsAdapter
|
adapter = settingsAdapter
|
||||||
layoutManager = LinearLayoutManager(requireContext())
|
layoutManager = LinearLayoutManager(requireContext())
|
||||||
|
|
|
@ -4,6 +4,8 @@
|
||||||
package org.yuzu.yuzu_emu.features.settings.ui
|
package org.yuzu.yuzu_emu.features.settings.ui
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
|
import android.app.Activity
|
||||||
|
import android.app.AlertDialog
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
|
@ -29,11 +31,14 @@ import org.yuzu.yuzu_emu.features.settings.model.view.*
|
||||||
import org.yuzu.yuzu_emu.utils.InputHandler
|
import org.yuzu.yuzu_emu.utils.InputHandler
|
||||||
import org.yuzu.yuzu_emu.utils.NativeConfig
|
import org.yuzu.yuzu_emu.utils.NativeConfig
|
||||||
import androidx.core.content.edit
|
import androidx.core.content.edit
|
||||||
|
import androidx.fragment.app.FragmentActivity
|
||||||
|
import org.yuzu.yuzu_emu.fragments.MessageDialogFragment
|
||||||
|
|
||||||
class SettingsFragmentPresenter(
|
class SettingsFragmentPresenter(
|
||||||
private val settingsViewModel: SettingsViewModel,
|
private val settingsViewModel: SettingsViewModel,
|
||||||
private val adapter: SettingsAdapter,
|
private val adapter: SettingsAdapter,
|
||||||
private var menuTag: MenuTag
|
private var menuTag: MenuTag,
|
||||||
|
private var activity: FragmentActivity?
|
||||||
) {
|
) {
|
||||||
private var settingsList = ArrayList<SettingsItem>()
|
private var settingsList = ArrayList<SettingsItem>()
|
||||||
|
|
||||||
|
@ -66,7 +71,7 @@ class SettingsFragmentPresenter(
|
||||||
}
|
}
|
||||||
|
|
||||||
// Allows you to show/hide abstract settings based on the paired setting key
|
// Allows you to show/hide abstract settings based on the paired setting key
|
||||||
fun ArrayList<SettingsItem>.addAbstract(item: SettingsItem) {
|
private fun ArrayList<SettingsItem>.addAbstract(item: SettingsItem) {
|
||||||
val pairedSettingKey = item.setting.pairedSettingKey
|
val pairedSettingKey = item.setting.pairedSettingKey
|
||||||
if (pairedSettingKey.isNotEmpty()) {
|
if (pairedSettingKey.isNotEmpty()) {
|
||||||
val pairedSettingsItem =
|
val pairedSettingsItem =
|
||||||
|
@ -78,6 +83,9 @@ class SettingsFragmentPresenter(
|
||||||
}
|
}
|
||||||
|
|
||||||
fun onViewCreated() {
|
fun onViewCreated() {
|
||||||
|
if (menuTag == MenuTag.SECTION_EDEN_VEIL) {
|
||||||
|
showEdenVeilWarningDialog()
|
||||||
|
}
|
||||||
loadSettingsList()
|
loadSettingsList()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -224,10 +232,10 @@ class SettingsFragmentPresenter(
|
||||||
add(HeaderSetting(R.string.stats_overlay_items))
|
add(HeaderSetting(R.string.stats_overlay_items))
|
||||||
add(BooleanSetting.SHOW_FPS.key)
|
add(BooleanSetting.SHOW_FPS.key)
|
||||||
add(BooleanSetting.SHOW_FRAMETIME.key)
|
add(BooleanSetting.SHOW_FRAMETIME.key)
|
||||||
add(BooleanSetting.SHOW_SPEED.key)
|
|
||||||
add(BooleanSetting.SHOW_APP_RAM_USAGE.key)
|
add(BooleanSetting.SHOW_APP_RAM_USAGE.key)
|
||||||
add(BooleanSetting.SHOW_SYSTEM_RAM_USAGE.key)
|
add(BooleanSetting.SHOW_SYSTEM_RAM_USAGE.key)
|
||||||
add(BooleanSetting.SHOW_BAT_TEMPERATURE.key)
|
add(BooleanSetting.SHOW_BAT_TEMPERATURE.key)
|
||||||
|
add(BooleanSetting.SHOW_SHADERS_BUILDING.key)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -387,24 +395,25 @@ class SettingsFragmentPresenter(
|
||||||
// TODO(alekpop): sort these into headers.
|
// TODO(alekpop): sort these into headers.
|
||||||
private fun addEdenVeilSettings(sl: ArrayList<SettingsItem>) {
|
private fun addEdenVeilSettings(sl: ArrayList<SettingsItem>) {
|
||||||
sl.apply {
|
sl.apply {
|
||||||
add(BooleanSetting.FRAME_INTERPOLATION.key)
|
add(HeaderSetting(R.string.veil_extensions))
|
||||||
add(BooleanSetting.FRAME_SKIPPING.key)
|
|
||||||
add(BooleanSetting.USE_LRU_CACHE.key)
|
|
||||||
add(BooleanSetting.RENDERER_FAST_GPU.key)
|
|
||||||
|
|
||||||
add(ByteSetting.RENDERER_DYNA_STATE.key)
|
add(ByteSetting.RENDERER_DYNA_STATE.key)
|
||||||
|
|
||||||
add(BooleanSetting.RENDERER_PROVOKING_VERTEX.key)
|
add(BooleanSetting.RENDERER_PROVOKING_VERTEX.key)
|
||||||
add(BooleanSetting.RENDERER_DESCRIPTOR_INDEXING.key)
|
add(BooleanSetting.RENDERER_DESCRIPTOR_INDEXING.key)
|
||||||
|
|
||||||
add(BooleanSetting.CORE_SYNC_CORE_SPEED.key)
|
add(HeaderSetting(R.string.veil_renderer))
|
||||||
|
add(BooleanSetting.FRAME_INTERPOLATION.key)
|
||||||
|
add(BooleanSetting.RENDERER_FAST_GPU.key)
|
||||||
add(IntSetting.RENDERER_SHADER_BACKEND.key)
|
add(IntSetting.RENDERER_SHADER_BACKEND.key)
|
||||||
add(IntSetting.RENDERER_NVDEC_EMULATION.key)
|
add(IntSetting.RENDERER_NVDEC_EMULATION.key)
|
||||||
add(IntSetting.RENDERER_ASTC_DECODE_METHOD.key)
|
add(IntSetting.RENDERER_ASTC_DECODE_METHOD.key)
|
||||||
add(IntSetting.RENDERER_ASTC_RECOMPRESSION.key)
|
add(IntSetting.RENDERER_ASTC_RECOMPRESSION.key)
|
||||||
add(IntSetting.RENDERER_VRAM_USAGE_MODE.key)
|
add(IntSetting.RENDERER_VRAM_USAGE_MODE.key)
|
||||||
add(IntSetting.RENDERER_OPTIMIZE_SPIRV_OUTPUT.key)
|
add(IntSetting.RENDERER_OPTIMIZE_SPIRV_OUTPUT.key)
|
||||||
|
|
||||||
|
add(HeaderSetting(R.string.veil_misc))
|
||||||
|
add(BooleanSetting.USE_LRU_CACHE.key)
|
||||||
|
add(BooleanSetting.CORE_SYNC_CORE_SPEED.key)
|
||||||
|
add(IntSetting.MEMORY_LAYOUT.key)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1076,6 +1085,28 @@ class SettingsFragmentPresenter(
|
||||||
add(BooleanSetting.USE_AUTO_STUB.key)
|
add(BooleanSetting.USE_AUTO_STUB.key)
|
||||||
add(BooleanSetting.CPU_DEBUG_MODE.key)
|
add(BooleanSetting.CPU_DEBUG_MODE.key)
|
||||||
add(SettingsItem.FASTMEM_COMBINED)
|
add(SettingsItem.FASTMEM_COMBINED)
|
||||||
|
|
||||||
|
add(HeaderSetting(R.string.log))
|
||||||
|
add(BooleanSetting.DEBUG_FLUSH_BY_LINE.key)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun showEdenVeilWarningDialog() {
|
||||||
|
val shouldDisplayVeilWarning = !BooleanSetting.DONT_SHOW_EDEN_VEIL_WARNING.getBoolean()
|
||||||
|
if (shouldDisplayVeilWarning) {
|
||||||
|
activity?.let {
|
||||||
|
MessageDialogFragment.newInstance(
|
||||||
|
it,
|
||||||
|
titleId = R.string.eden_veil_warning_title,
|
||||||
|
descriptionId = R.string.eden_veil_warning_description,
|
||||||
|
positiveButtonTitleId = R.string.dont_show_again,
|
||||||
|
negativeButtonTitleId = R.string.close,
|
||||||
|
showNegativeButton = true,
|
||||||
|
positiveAction = {
|
||||||
|
BooleanSetting.DONT_SHOW_EDEN_VEIL_WARNING.setBoolean(true)
|
||||||
|
}
|
||||||
|
).show(it.supportFragmentManager, MessageDialogFragment.TAG)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -399,7 +399,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
||||||
emulationState.updateSurface()
|
emulationState.updateSurface()
|
||||||
|
|
||||||
// Setup overlays
|
// Setup overlays
|
||||||
updateshowStatsOvelray()
|
updateShowStatsOverlay()
|
||||||
|
|
||||||
// Re update binding when the specs values get initialized properly
|
// Re update binding when the specs values get initialized properly
|
||||||
binding.inGameMenu.getHeaderView(0).apply {
|
binding.inGameMenu.getHeaderView(0).apply {
|
||||||
|
@ -532,7 +532,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@SuppressLint("DefaultLocale")
|
@SuppressLint("DefaultLocale")
|
||||||
private fun updateshowStatsOvelray() {
|
private fun updateShowStatsOverlay() {
|
||||||
val showOverlay = BooleanSetting.SHOW_PERFORMANCE_OVERLAY.getBoolean()
|
val showOverlay = BooleanSetting.SHOW_PERFORMANCE_OVERLAY.getBoolean()
|
||||||
binding.showStatsOverlayText.apply {
|
binding.showStatsOverlayText.apply {
|
||||||
setTextColor(
|
setTextColor(
|
||||||
|
@ -560,7 +560,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
||||||
|
|
||||||
if (BooleanSetting.SHOW_FPS.getBoolean(NativeConfig.isPerGameConfigLoaded())) {
|
if (BooleanSetting.SHOW_FPS.getBoolean(NativeConfig.isPerGameConfigLoaded())) {
|
||||||
val enableFrameInterpolation = BooleanSetting.FRAME_INTERPOLATION.getBoolean()
|
val enableFrameInterpolation = BooleanSetting.FRAME_INTERPOLATION.getBoolean()
|
||||||
val enableFrameSkipping = BooleanSetting.FRAME_SKIPPING.getBoolean()
|
// val enableFrameSkipping = BooleanSetting.FRAME_SKIPPING.getBoolean()
|
||||||
|
|
||||||
var fpsText = String.format("FPS: %.1f", actualFps)
|
var fpsText = String.format("FPS: %.1f", actualFps)
|
||||||
|
|
||||||
|
@ -568,9 +568,9 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
||||||
fpsText += " " + getString(R.string.enhanced_fps_suffix)
|
fpsText += " " + getString(R.string.enhanced_fps_suffix)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (enableFrameSkipping) {
|
// if (enableFrameSkipping) {
|
||||||
fpsText += " " + getString(R.string.skipping_fps_suffix)
|
// fpsText += " " + getString(R.string.skipping_fps_suffix)
|
||||||
}
|
// }
|
||||||
|
|
||||||
sb.append(fpsText)
|
sb.append(fpsText)
|
||||||
}
|
}
|
||||||
|
@ -585,16 +585,6 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (BooleanSetting.SHOW_SPEED.getBoolean(NativeConfig.isPerGameConfigLoaded())) {
|
|
||||||
if (sb.isNotEmpty()) sb.append(" | ")
|
|
||||||
sb.append(
|
|
||||||
String.format(
|
|
||||||
"Speed: %d%%",
|
|
||||||
(perfStats[SPEED] * 100.0 + 0.5).toInt()
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (BooleanSetting.SHOW_APP_RAM_USAGE.getBoolean(NativeConfig.isPerGameConfigLoaded())) {
|
if (BooleanSetting.SHOW_APP_RAM_USAGE.getBoolean(NativeConfig.isPerGameConfigLoaded())) {
|
||||||
if (sb.isNotEmpty()) sb.append(" | ")
|
if (sb.isNotEmpty()) sb.append(" | ")
|
||||||
val appRamUsage = File("/proc/self/statm").readLines()[0].split(' ')[1].toLong() * 4096 / 1000000
|
val appRamUsage = File("/proc/self/statm").readLines()[0].split(' ')[1].toLong() * 4096 / 1000000
|
||||||
|
@ -619,6 +609,16 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
||||||
sb.append(String.format("%.1f°C/%.1f°F", batteryTemp, tempF))
|
sb.append(String.format("%.1f°C/%.1f°F", batteryTemp, tempF))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val shadersBuilding = NativeLibrary.getShadersBuilding()
|
||||||
|
|
||||||
|
if (BooleanSetting.SHOW_SHADERS_BUILDING.getBoolean(NativeConfig.isPerGameConfigLoaded()) && shadersBuilding != 0) {
|
||||||
|
if (sb.isNotEmpty()) sb.append(" | ")
|
||||||
|
|
||||||
|
val prefix = getString(R.string.shaders_prefix)
|
||||||
|
val suffix = getString(R.string.shaders_suffix)
|
||||||
|
sb.append(String.format("$prefix %d $suffix", shadersBuilding))
|
||||||
|
}
|
||||||
|
|
||||||
if (BooleanSetting.OVERLAY_BACKGROUND.getBoolean(NativeConfig.isPerGameConfigLoaded())) {
|
if (BooleanSetting.OVERLAY_BACKGROUND.getBoolean(NativeConfig.isPerGameConfigLoaded())) {
|
||||||
binding.showStatsOverlayText.setBackgroundResource(R.color.yuzu_transparent_black)
|
binding.showStatsOverlayText.setBackgroundResource(R.color.yuzu_transparent_black)
|
||||||
} else {
|
} else {
|
||||||
|
@ -849,7 +849,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
||||||
R.id.menu_show_stats_overlay -> {
|
R.id.menu_show_stats_overlay -> {
|
||||||
it.isChecked = !it.isChecked
|
it.isChecked = !it.isChecked
|
||||||
BooleanSetting.SHOW_PERFORMANCE_OVERLAY.setBoolean(it.isChecked)
|
BooleanSetting.SHOW_PERFORMANCE_OVERLAY.setBoolean(it.isChecked)
|
||||||
updateshowStatsOvelray()
|
updateShowStatsOverlay()
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
R.id.menu_edit_overlay -> {
|
R.id.menu_edit_overlay -> {
|
||||||
|
|
|
@ -12,10 +12,13 @@ import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.view.inputmethod.InputMethodManager
|
import android.view.inputmethod.InputMethodManager
|
||||||
|
import android.widget.ImageButton
|
||||||
import android.widget.PopupMenu
|
import android.widget.PopupMenu
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import androidx.activity.result.contract.ActivityResultContracts
|
import androidx.activity.result.contract.ActivityResultContracts
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
|
import androidx.compose.ui.graphics.Color
|
||||||
|
import androidx.compose.ui.graphics.toArgb
|
||||||
import androidx.constraintlayout.widget.ConstraintLayout
|
import androidx.constraintlayout.widget.ConstraintLayout
|
||||||
import androidx.core.view.ViewCompat
|
import androidx.core.view.ViewCompat
|
||||||
import androidx.core.view.WindowInsetsCompat
|
import androidx.core.view.WindowInsetsCompat
|
||||||
|
@ -43,6 +46,7 @@ import org.yuzu.yuzu_emu.utils.collect
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
import androidx.core.content.edit
|
import androidx.core.content.edit
|
||||||
import androidx.core.view.updateLayoutParams
|
import androidx.core.view.updateLayoutParams
|
||||||
|
import org.yuzu.yuzu_emu.features.settings.model.Settings
|
||||||
|
|
||||||
class GamesFragment : Fragment() {
|
class GamesFragment : Fragment() {
|
||||||
private var _binding: FragmentGamesBinding? = null
|
private var _binding: FragmentGamesBinding? = null
|
||||||
|
@ -58,7 +62,8 @@ class GamesFragment : Fragment() {
|
||||||
private val homeViewModel: HomeViewModel by activityViewModels()
|
private val homeViewModel: HomeViewModel by activityViewModels()
|
||||||
private lateinit var gameAdapter: GameAdapter
|
private lateinit var gameAdapter: GameAdapter
|
||||||
|
|
||||||
private val preferences = PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext)
|
private val preferences =
|
||||||
|
PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext)
|
||||||
|
|
||||||
private lateinit var mainActivity: MainActivity
|
private lateinit var mainActivity: MainActivity
|
||||||
private val getGamesDirectory =
|
private val getGamesDirectory =
|
||||||
|
@ -151,8 +156,13 @@ class GamesFragment : Fragment() {
|
||||||
getGamesDirectory.launch(Intent(Intent.ACTION_OPEN_DOCUMENT_TREE).data)
|
getGamesDirectory.launch(Intent(Intent.ACTION_OPEN_DOCUMENT_TREE).data)
|
||||||
}
|
}
|
||||||
|
|
||||||
setInsets()
|
setInsets()
|
||||||
addPreAlphaBanner()
|
val shouldDisplayPreAlphaBanner =
|
||||||
|
PreferenceManager.getDefaultSharedPreferences(requireContext())
|
||||||
|
.getBoolean(Settings.PREF_SHOULD_SHOW_PRE_ALPHA_BANNER, true)
|
||||||
|
if (shouldDisplayPreAlphaBanner) {
|
||||||
|
addPreAlphaBanner()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val applyGridGamesBinding = {
|
val applyGridGamesBinding = {
|
||||||
|
@ -260,7 +270,44 @@ class GamesFragment : Fragment() {
|
||||||
)
|
)
|
||||||
gravity = Gravity.CENTER
|
gravity = Gravity.CENTER
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val closeButton = ImageButton(requireContext()).apply {
|
||||||
|
id = "pre_alpha_close_button".hashCode()
|
||||||
|
layoutParams = ConstraintLayout.LayoutParams(
|
||||||
|
resources.getDimensionPixelSize(R.dimen.spacing_large),
|
||||||
|
resources.getDimensionPixelSize(R.dimen.spacing_large)
|
||||||
|
).apply {
|
||||||
|
startToStart = "pre_alpha_banner".hashCode()
|
||||||
|
topToTop = "pre_alpha_banner".hashCode()
|
||||||
|
bottomToBottom = "pre_alpha_banner".hashCode()
|
||||||
|
marginStart = resources.getDimensionPixelSize(R.dimen.spacing_large) * 2
|
||||||
|
topMargin = resources.getDimensionPixelSize(R.dimen.spacing_small)
|
||||||
|
}
|
||||||
|
setImageResource(android.R.drawable.ic_menu_close_clear_cancel)
|
||||||
|
setColorFilter(
|
||||||
|
MaterialColors.getColor(
|
||||||
|
this,
|
||||||
|
com.google.android.material.R.attr.colorOnError
|
||||||
|
)
|
||||||
|
)
|
||||||
|
setBackgroundColor(Color.Transparent.toArgb())
|
||||||
|
setOnClickListener {
|
||||||
|
PreferenceManager.getDefaultSharedPreferences(requireContext())
|
||||||
|
.edit() {
|
||||||
|
putBoolean(Settings.PREF_SHOULD_SHOW_PRE_ALPHA_BANNER, false)
|
||||||
|
}
|
||||||
|
binding.root.removeView(preAlphaBanner)
|
||||||
|
binding.root.removeView(this)
|
||||||
|
|
||||||
|
binding.swipeRefresh.updateLayoutParams<ConstraintLayout.LayoutParams> {
|
||||||
|
topToBottom = R.id.frame_search
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
binding.root.addView(preAlphaBanner)
|
binding.root.addView(preAlphaBanner)
|
||||||
|
binding.root.addView(closeButton)
|
||||||
|
|
||||||
binding.swipeRefresh.updateLayoutParams<ConstraintLayout.LayoutParams> {
|
binding.swipeRefresh.updateLayoutParams<ConstraintLayout.LayoutParams> {
|
||||||
topToBottom = preAlphaBanner.id
|
topToBottom = preAlphaBanner.id
|
||||||
}
|
}
|
||||||
|
@ -284,12 +331,14 @@ class GamesFragment : Fragment() {
|
||||||
item.isChecked = true
|
item.isChecked = true
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
R.id.view_list -> {
|
R.id.view_list -> {
|
||||||
preferences.edit() { putInt(PREF_VIEW_TYPE, GameAdapter.VIEW_TYPE_LIST) }
|
preferences.edit() { putInt(PREF_VIEW_TYPE, GameAdapter.VIEW_TYPE_LIST) }
|
||||||
applyGridGamesBinding()
|
applyGridGamesBinding()
|
||||||
item.isChecked = true
|
item.isChecked = true
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
else -> false
|
else -> false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -394,7 +443,7 @@ class GamesFragment : Fragment() {
|
||||||
val barInsets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
|
val barInsets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
|
||||||
val cutoutInsets = windowInsets.getInsets(WindowInsetsCompat.Type.displayCutout())
|
val cutoutInsets = windowInsets.getInsets(WindowInsetsCompat.Type.displayCutout())
|
||||||
val spacingNavigation = resources.getDimensionPixelSize(R.dimen.spacing_navigation)
|
val spacingNavigation = resources.getDimensionPixelSize(R.dimen.spacing_navigation)
|
||||||
resources.getDimensionPixelSize(R.dimen.spacing_navigation_rail)
|
resources.getDimensionPixelSize(R.dimen.spacing_navigation_rail)
|
||||||
val isLandscape =
|
val isLandscape =
|
||||||
resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE
|
resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE
|
||||||
|
|
||||||
|
@ -418,7 +467,7 @@ class GamesFragment : Fragment() {
|
||||||
binding.noticeText.updatePadding(bottom = spacingNavigation)
|
binding.noticeText.updatePadding(bottom = spacingNavigation)
|
||||||
binding.header.updatePadding(top = cutoutInsets.top + resources.getDimensionPixelSize(R.dimen.spacing_large) + if (isLandscape) barInsets.top else 0)
|
binding.header.updatePadding(top = cutoutInsets.top + resources.getDimensionPixelSize(R.dimen.spacing_large) + if (isLandscape) barInsets.top else 0)
|
||||||
binding.gridGames.updatePadding(
|
binding.gridGames.updatePadding(
|
||||||
top = resources.getDimensionPixelSize(R.dimen.spacing_med)
|
top = resources.getDimensionPixelSize(R.dimen.spacing_med)
|
||||||
)
|
)
|
||||||
|
|
||||||
val mlpFab = binding.addDirectory.layoutParams as ViewGroup.MarginLayoutParams
|
val mlpFab = binding.addDirectory.layoutParams as ViewGroup.MarginLayoutParams
|
||||||
|
|
|
@ -79,18 +79,20 @@ struct Values {
|
||||||
Settings::Category::Overlay, Settings::Specialization::Default, true , true, &show_performance_overlay};
|
Settings::Category::Overlay, Settings::Specialization::Default, true , true, &show_performance_overlay};
|
||||||
Settings::Setting<bool> show_frame_time{linkage, false, "show_frame_time",
|
Settings::Setting<bool> show_frame_time{linkage, false, "show_frame_time",
|
||||||
Settings::Category::Overlay, Settings::Specialization::Default, true , true, &show_performance_overlay};
|
Settings::Category::Overlay, Settings::Specialization::Default, true , true, &show_performance_overlay};
|
||||||
Settings::Setting<bool> show_speed{linkage, true, "show_speed",
|
|
||||||
Settings::Category::Overlay, Settings::Specialization::Default, true , true, &show_performance_overlay};
|
|
||||||
Settings::Setting<bool> show_app_ram_usage{linkage, false, "show_app_ram_usage",
|
Settings::Setting<bool> show_app_ram_usage{linkage, false, "show_app_ram_usage",
|
||||||
Settings::Category::Overlay, Settings::Specialization::Default, true , true, &show_performance_overlay};
|
Settings::Category::Overlay, Settings::Specialization::Default, true , true, &show_performance_overlay};
|
||||||
Settings::Setting<bool> show_system_ram_usage{linkage, false, "show_system_ram_usage",
|
Settings::Setting<bool> show_system_ram_usage{linkage, false, "show_system_ram_usage",
|
||||||
Settings::Category::Overlay, Settings::Specialization::Default, true , true, &show_performance_overlay};
|
Settings::Category::Overlay, Settings::Specialization::Default, true , true, &show_performance_overlay};
|
||||||
Settings::Setting<bool> show_bat_temperature{linkage, false, "show_bat_temperature",
|
Settings::Setting<bool> show_bat_temperature{linkage, false, "show_bat_temperature",
|
||||||
Settings::Category::Overlay, Settings::Specialization::Default, true , true, &show_performance_overlay};
|
Settings::Category::Overlay, Settings::Specialization::Default, true , true, &show_performance_overlay};
|
||||||
|
Settings::Setting<bool> show_shaders_building{linkage, true, "show_shaders_building",
|
||||||
|
Settings::Category::Overlay, Settings::Specialization::Default, true , true, &show_performance_overlay};
|
||||||
Settings::Setting<bool> show_input_overlay{linkage, true, "show_input_overlay",
|
Settings::Setting<bool> show_input_overlay{linkage, true, "show_input_overlay",
|
||||||
Settings::Category::Overlay};
|
Settings::Category::Overlay};
|
||||||
Settings::Setting<bool> touchscreen{linkage, true, "touchscreen", Settings::Category::Overlay};
|
Settings::Setting<bool> touchscreen{linkage, true, "touchscreen", Settings::Category::Overlay};
|
||||||
Settings::Setting<s32> lock_drawer{linkage, false, "lock_drawer", Settings::Category::Overlay};
|
Settings::Setting<s32> lock_drawer{linkage, false, "lock_drawer", Settings::Category::Overlay};
|
||||||
|
|
||||||
|
Settings::Setting<bool> dont_show_eden_veil_warning{linkage, false, "dont_show_eden_veil_warning", Settings::Category::Miscellaneous};
|
||||||
};
|
};
|
||||||
|
|
||||||
extern Values values;
|
extern Values values;
|
||||||
|
|
|
@ -67,6 +67,7 @@
|
||||||
#include "video_core/renderer_vulkan/renderer_vulkan.h"
|
#include "video_core/renderer_vulkan/renderer_vulkan.h"
|
||||||
#include "video_core/vulkan_common/vulkan_instance.h"
|
#include "video_core/vulkan_common/vulkan_instance.h"
|
||||||
#include "video_core/vulkan_common/vulkan_surface.h"
|
#include "video_core/vulkan_common/vulkan_surface.h"
|
||||||
|
#include "video_core/shader_notify.h"
|
||||||
|
|
||||||
#define jconst [[maybe_unused]] const auto
|
#define jconst [[maybe_unused]] const auto
|
||||||
#define jauto [[maybe_unused]] auto
|
#define jauto [[maybe_unused]] auto
|
||||||
|
@ -158,6 +159,12 @@ const Core::PerfStatsResults& EmulationSession::PerfStats() {
|
||||||
return m_perf_stats;
|
return m_perf_stats;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int EmulationSession::ShadersBuilding() {
|
||||||
|
auto& shader_notify = m_system.GPU().ShaderNotify();
|
||||||
|
m_shaders_building = shader_notify.ShadersBuilding();
|
||||||
|
return m_shaders_building;
|
||||||
|
}
|
||||||
|
|
||||||
void EmulationSession::SurfaceChanged() {
|
void EmulationSession::SurfaceChanged() {
|
||||||
if (!IsRunning()) {
|
if (!IsRunning()) {
|
||||||
return;
|
return;
|
||||||
|
@ -610,6 +617,16 @@ jdoubleArray Java_org_yuzu_yuzu_1emu_NativeLibrary_getPerfStats(JNIEnv* env, jcl
|
||||||
return j_stats;
|
return j_stats;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
jint Java_org_yuzu_yuzu_1emu_NativeLibrary_getShadersBuilding(JNIEnv* env, jclass clazz) {
|
||||||
|
jint j_shaders = 0;
|
||||||
|
|
||||||
|
if (EmulationSession::GetInstance().IsRunning()) {
|
||||||
|
j_shaders = EmulationSession::GetInstance().ShadersBuilding();
|
||||||
|
}
|
||||||
|
|
||||||
|
return j_shaders;
|
||||||
|
}
|
||||||
|
|
||||||
jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getCpuBackend(JNIEnv* env, jclass clazz) {
|
jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getCpuBackend(JNIEnv* env, jclass clazz) {
|
||||||
if (Settings::IsNceEnabled()) {
|
if (Settings::IsNceEnabled()) {
|
||||||
return Common::Android::ToJString(env, "NCE");
|
return Common::Android::ToJString(env, "NCE");
|
||||||
|
|
|
@ -44,6 +44,7 @@ public:
|
||||||
void ShutdownEmulation();
|
void ShutdownEmulation();
|
||||||
|
|
||||||
const Core::PerfStatsResults& PerfStats();
|
const Core::PerfStatsResults& PerfStats();
|
||||||
|
int ShadersBuilding();
|
||||||
void ConfigureFilesystemProvider(const std::string& filepath);
|
void ConfigureFilesystemProvider(const std::string& filepath);
|
||||||
void InitializeSystem(bool reload);
|
void InitializeSystem(bool reload);
|
||||||
void SetAppletId(int applet_id);
|
void SetAppletId(int applet_id);
|
||||||
|
@ -72,6 +73,7 @@ private:
|
||||||
InputCommon::InputSubsystem m_input_subsystem;
|
InputCommon::InputSubsystem m_input_subsystem;
|
||||||
Common::DetachedTasks m_detached_tasks;
|
Common::DetachedTasks m_detached_tasks;
|
||||||
Core::PerfStatsResults m_perf_stats{};
|
Core::PerfStatsResults m_perf_stats{};
|
||||||
|
int m_shaders_building{0};
|
||||||
std::shared_ptr<FileSys::VfsFilesystem> m_vfs;
|
std::shared_ptr<FileSys::VfsFilesystem> m_vfs;
|
||||||
Core::SystemResultStatus m_load_result{Core::SystemResultStatus::ErrorNotInitialized};
|
Core::SystemResultStatus m_load_result{Core::SystemResultStatus::ErrorNotInitialized};
|
||||||
std::atomic<bool> m_is_running = false;
|
std::atomic<bool> m_is_running = false;
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
|
|
||||||
<!-- Stats Overlay settings -->
|
<!-- Stats Overlay settings -->
|
||||||
<string name="enhanced_fps_suffix">(مُحسَّن)</string>
|
<string name="enhanced_fps_suffix">(مُحسَّن)</string>
|
||||||
<string name="skipping_fps_suffix">(تخطي)</string>
|
|
||||||
<string name="system_info_label">النظام:</string>
|
<string name="system_info_label">النظام:</string>
|
||||||
<string name="show_stats_overlay">عرض إحصائيات الأداء</string>
|
<string name="show_stats_overlay">عرض إحصائيات الأداء</string>
|
||||||
<string name="stats_overlay_customization">تخصيص</string>
|
<string name="stats_overlay_customization">تخصيص</string>
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
|
|
||||||
<!-- Stats Overlay settings -->
|
<!-- Stats Overlay settings -->
|
||||||
<string name="enhanced_fps_suffix">(پێشکەوتوو)</string>
|
<string name="enhanced_fps_suffix">(پێشکەوتوو)</string>
|
||||||
<string name="skipping_fps_suffix">(بازدان)</string>
|
|
||||||
<string name="system_info_label">سیستەم:</string>
|
<string name="system_info_label">سیستەم:</string>
|
||||||
<string name="show_stats_overlay">پیشاندانی ستاتیستی کارایی</string>
|
<string name="show_stats_overlay">پیشاندانی ستاتیستی کارایی</string>
|
||||||
<string name="stats_overlay_customization">خۆڕێکخستن</string>
|
<string name="stats_overlay_customization">خۆڕێکخستن</string>
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
|
|
||||||
<!-- Stats Overlay settings -->
|
<!-- Stats Overlay settings -->
|
||||||
<string name="enhanced_fps_suffix">(Vylepšený)</string>
|
<string name="enhanced_fps_suffix">(Vylepšený)</string>
|
||||||
<string name="skipping_fps_suffix">(Přeskakování)</string>
|
|
||||||
<string name="system_info_label">Systém:</string>
|
<string name="system_info_label">Systém:</string>
|
||||||
<string name="show_stats_overlay">Zobrazit překryv statistik výkonu</string>
|
<string name="show_stats_overlay">Zobrazit překryv statistik výkonu</string>
|
||||||
<string name="stats_overlay_customization">Přizpůsobení</string>
|
<string name="stats_overlay_customization">Přizpůsobení</string>
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
|
|
||||||
<!-- Stats Overlay settings -->
|
<!-- Stats Overlay settings -->
|
||||||
<string name="enhanced_fps_suffix">(Enhanced)</string>
|
<string name="enhanced_fps_suffix">(Enhanced)</string>
|
||||||
<string name="skipping_fps_suffix">(Skipping)</string>
|
|
||||||
<string name="system_info_label">System:</string>
|
<string name="system_info_label">System:</string>
|
||||||
<string name="show_stats_overlay">Leistungsstatistik Overlay anzeigen</string>
|
<string name="show_stats_overlay">Leistungsstatistik Overlay anzeigen</string>
|
||||||
<string name="stats_overlay_customization">Anpassung</string>
|
<string name="stats_overlay_customization">Anpassung</string>
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
|
|
||||||
<!-- Stats Overlay settings -->
|
<!-- Stats Overlay settings -->
|
||||||
<string name="enhanced_fps_suffix">(Mejorado)</string>
|
<string name="enhanced_fps_suffix">(Mejorado)</string>
|
||||||
<string name="skipping_fps_suffix">(Saltando)</string>
|
|
||||||
<string name="system_info_label">Sistema:</string>
|
<string name="system_info_label">Sistema:</string>
|
||||||
<string name="show_stats_overlay">Mostrar superposición de estadísticas de rendimiento</string>
|
<string name="show_stats_overlay">Mostrar superposición de estadísticas de rendimiento</string>
|
||||||
<string name="stats_overlay_customization">Personalización</string>
|
<string name="stats_overlay_customization">Personalización</string>
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
|
|
||||||
<!-- Stats Overlay settings -->
|
<!-- Stats Overlay settings -->
|
||||||
<string name="enhanced_fps_suffix">(بهبودیافته)</string>
|
<string name="enhanced_fps_suffix">(بهبودیافته)</string>
|
||||||
<string name="skipping_fps_suffix">(رد کردن)</string>
|
|
||||||
<string name="system_info_label">سیستم:</string>
|
<string name="system_info_label">سیستم:</string>
|
||||||
<string name="show_stats_overlay">نمایش آمار عملکرد</string>
|
<string name="show_stats_overlay">نمایش آمار عملکرد</string>
|
||||||
<string name="stats_overlay_customization">سفارشیسازی</string>
|
<string name="stats_overlay_customization">سفارشیسازی</string>
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
|
|
||||||
<!-- Stats Overlay settings -->
|
<!-- Stats Overlay settings -->
|
||||||
<string name="enhanced_fps_suffix">(Amélioré)</string>
|
<string name="enhanced_fps_suffix">(Amélioré)</string>
|
||||||
<string name="skipping_fps_suffix">(Saut)</string>
|
|
||||||
<string name="system_info_label">Système:</string>
|
<string name="system_info_label">Système:</string>
|
||||||
<string name="show_stats_overlay">Afficher les stats de performance</string>
|
<string name="show_stats_overlay">Afficher les stats de performance</string>
|
||||||
<string name="stats_overlay_customization">Personnalisation</string>
|
<string name="stats_overlay_customization">Personnalisation</string>
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
|
|
||||||
<!-- Stats Overlay settings -->
|
<!-- Stats Overlay settings -->
|
||||||
<string name="enhanced_fps_suffix">(משופר)</string>
|
<string name="enhanced_fps_suffix">(משופר)</string>
|
||||||
<string name="skipping_fps_suffix">(דילוג)</string>
|
|
||||||
<string name="system_info_label">מערכת:</string>
|
<string name="system_info_label">מערכת:</string>
|
||||||
<string name="show_stats_overlay">הצג סטטיסטיקות ביצועים</string>
|
<string name="show_stats_overlay">הצג סטטיסטיקות ביצועים</string>
|
||||||
<string name="stats_overlay_customization">התאמה אישית</string>
|
<string name="stats_overlay_customization">התאמה אישית</string>
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
|
|
||||||
<!-- Stats Overlay settings -->
|
<!-- Stats Overlay settings -->
|
||||||
<string name="enhanced_fps_suffix">(Továbbfejlesztett)</string>
|
<string name="enhanced_fps_suffix">(Továbbfejlesztett)</string>
|
||||||
<string name="skipping_fps_suffix">(Kihagyás)</string>
|
|
||||||
<string name="system_info_label">Rendszer:</string>
|
<string name="system_info_label">Rendszer:</string>
|
||||||
<string name="show_stats_overlay">Teljesítmény statisztikák megjelenítése</string>
|
<string name="show_stats_overlay">Teljesítmény statisztikák megjelenítése</string>
|
||||||
<string name="stats_overlay_customization">Testreszabás</string>
|
<string name="stats_overlay_customization">Testreszabás</string>
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
|
|
||||||
<!-- Stats Overlay settings -->
|
<!-- Stats Overlay settings -->
|
||||||
<string name="enhanced_fps_suffix">(Ditingkatkan)</string>
|
<string name="enhanced_fps_suffix">(Ditingkatkan)</string>
|
||||||
<string name="skipping_fps_suffix">(Melewatkan)</string>
|
|
||||||
<string name="system_info_label">Sistem:</string>
|
<string name="system_info_label">Sistem:</string>
|
||||||
<string name="show_stats_overlay">Tampilkan Overlay Statistik Performa</string>
|
<string name="show_stats_overlay">Tampilkan Overlay Statistik Performa</string>
|
||||||
<string name="stats_overlay_customization">Kustomisasi</string>
|
<string name="stats_overlay_customization">Kustomisasi</string>
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
|
|
||||||
<!-- Stats Overlay settings -->
|
<!-- Stats Overlay settings -->
|
||||||
<string name="enhanced_fps_suffix">(Migliorato)</string>
|
<string name="enhanced_fps_suffix">(Migliorato)</string>
|
||||||
<string name="skipping_fps_suffix">(Salto)</string>
|
|
||||||
<string name="system_info_label">Sistema:</string>
|
<string name="system_info_label">Sistema:</string>
|
||||||
<string name="show_stats_overlay">Mostra overlay prestazioni</string>
|
<string name="show_stats_overlay">Mostra overlay prestazioni</string>
|
||||||
<string name="stats_overlay_customization">Personalizzazione</string>
|
<string name="stats_overlay_customization">Personalizzazione</string>
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
|
|
||||||
<!-- Stats Overlay settings -->
|
<!-- Stats Overlay settings -->
|
||||||
<string name="enhanced_fps_suffix">(強化)</string>
|
<string name="enhanced_fps_suffix">(強化)</string>
|
||||||
<string name="skipping_fps_suffix">(スキップ)</string>
|
|
||||||
<string name="system_info_label">システム:</string>
|
<string name="system_info_label">システム:</string>
|
||||||
<string name="show_stats_overlay">パフォーマンス統計オーバーレイを表示</string>
|
<string name="show_stats_overlay">パフォーマンス統計オーバーレイを表示</string>
|
||||||
<string name="stats_overlay_customization">カスタマイズ</string>
|
<string name="stats_overlay_customization">カスタマイズ</string>
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
|
|
||||||
<!-- Stats Overlay settings -->
|
<!-- Stats Overlay settings -->
|
||||||
<string name="enhanced_fps_suffix">(향상됨)</string>
|
<string name="enhanced_fps_suffix">(향상됨)</string>
|
||||||
<string name="skipping_fps_suffix">(건너뜀)</string>
|
|
||||||
<string name="system_info_label">시스템:</string>
|
<string name="system_info_label">시스템:</string>
|
||||||
<string name="show_stats_overlay">성능 통계 오버레이 표시</string>
|
<string name="show_stats_overlay">성능 통계 오버레이 표시</string>
|
||||||
<string name="stats_overlay_customization">사용자 지정</string>
|
<string name="stats_overlay_customization">사용자 지정</string>
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
|
|
||||||
<!-- Stats Overlay settings -->
|
<!-- Stats Overlay settings -->
|
||||||
<string name="enhanced_fps_suffix">(Forbedret)</string>
|
<string name="enhanced_fps_suffix">(Forbedret)</string>
|
||||||
<string name="skipping_fps_suffix">(Hopp)</string>
|
|
||||||
<string name="system_info_label">System:</string>
|
<string name="system_info_label">System:</string>
|
||||||
<string name="show_stats_overlay">Vis ytelsesstatistikkoverlay</string>
|
<string name="show_stats_overlay">Vis ytelsesstatistikkoverlay</string>
|
||||||
<string name="stats_overlay_customization">Tilpasning</string>
|
<string name="stats_overlay_customization">Tilpasning</string>
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
|
|
||||||
<!-- Stats Overlay settings -->
|
<!-- Stats Overlay settings -->
|
||||||
<string name="enhanced_fps_suffix">(Ulepszony)</string>
|
<string name="enhanced_fps_suffix">(Ulepszony)</string>
|
||||||
<string name="skipping_fps_suffix">(Pomijanie)</string>
|
|
||||||
<string name="system_info_label">System:</string>
|
<string name="system_info_label">System:</string>
|
||||||
<string name="show_stats_overlay">Pokaż nakładkę statystyk wydajności</string>
|
<string name="show_stats_overlay">Pokaż nakładkę statystyk wydajności</string>
|
||||||
<string name="stats_overlay_customization">Dostosowanie</string>
|
<string name="stats_overlay_customization">Dostosowanie</string>
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
|
|
||||||
<!-- Stats Overlay settings -->
|
<!-- Stats Overlay settings -->
|
||||||
<string name="enhanced_fps_suffix">(Aprimorado)</string>
|
<string name="enhanced_fps_suffix">(Aprimorado)</string>
|
||||||
<string name="skipping_fps_suffix">(Pular)</string>
|
|
||||||
<string name="system_info_label">Sistema:</string>
|
<string name="system_info_label">Sistema:</string>
|
||||||
<string name="show_stats_overlay">Mostrar sobreposição de estatísticas de desempenho</string>
|
<string name="show_stats_overlay">Mostrar sobreposição de estatísticas de desempenho</string>
|
||||||
<string name="stats_overlay_customization">Personalização</string>
|
<string name="stats_overlay_customization">Personalização</string>
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
|
|
||||||
<!-- Stats Overlay settings -->
|
<!-- Stats Overlay settings -->
|
||||||
<string name="enhanced_fps_suffix">(Melhorado)</string>
|
<string name="enhanced_fps_suffix">(Melhorado)</string>
|
||||||
<string name="skipping_fps_suffix">(Saltar)</string>
|
|
||||||
<string name="system_info_label">Sistema:</string>
|
<string name="system_info_label">Sistema:</string>
|
||||||
<string name="show_stats_overlay">Mostrar Overlay de Desempenho</string>
|
<string name="show_stats_overlay">Mostrar Overlay de Desempenho</string>
|
||||||
<string name="stats_overlay_customization">Personalização</string>
|
<string name="stats_overlay_customization">Personalização</string>
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
|
|
||||||
<!-- Stats Overlay settings -->
|
<!-- Stats Overlay settings -->
|
||||||
<string name="enhanced_fps_suffix">(Улучшенный)</string>
|
<string name="enhanced_fps_suffix">(Улучшенный)</string>
|
||||||
<string name="skipping_fps_suffix">(Пропуск)</string>
|
|
||||||
<string name="system_info_label">Система:</string>
|
<string name="system_info_label">Система:</string>
|
||||||
<string name="show_stats_overlay">Показать оверлей статистики</string>
|
<string name="show_stats_overlay">Показать оверлей статистики</string>
|
||||||
<string name="stats_overlay_customization">Настройки</string>
|
<string name="stats_overlay_customization">Настройки</string>
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
|
|
||||||
<!-- Stats Overlay settings -->
|
<!-- Stats Overlay settings -->
|
||||||
<string name="enhanced_fps_suffix">(Покращений)</string>
|
<string name="enhanced_fps_suffix">(Покращений)</string>
|
||||||
<string name="skipping_fps_suffix">(Пропуск)</string>
|
|
||||||
<string name="system_info_label">Система:</string>
|
<string name="system_info_label">Система:</string>
|
||||||
<string name="show_stats_overlay">Показати накладання статистики</string>
|
<string name="show_stats_overlay">Показати накладання статистики</string>
|
||||||
<string name="stats_overlay_customization">Налаштування</string>
|
<string name="stats_overlay_customization">Налаштування</string>
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
|
|
||||||
<!-- Stats Overlay settings -->
|
<!-- Stats Overlay settings -->
|
||||||
<string name="enhanced_fps_suffix">(Nâng cao)</string>
|
<string name="enhanced_fps_suffix">(Nâng cao)</string>
|
||||||
<string name="skipping_fps_suffix">(Bỏ qua)</string>
|
|
||||||
<string name="system_info_label">Hệ thống:</string>
|
<string name="system_info_label">Hệ thống:</string>
|
||||||
<string name="show_stats_overlay">Hiển thị thống kê hiệu suất</string>
|
<string name="show_stats_overlay">Hiển thị thống kê hiệu suất</string>
|
||||||
<string name="stats_overlay_customization">Tùy chỉnh</string>
|
<string name="stats_overlay_customization">Tùy chỉnh</string>
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
|
|
||||||
<!-- Stats Overlay settings -->
|
<!-- Stats Overlay settings -->
|
||||||
<string name="enhanced_fps_suffix">(增强)</string>
|
<string name="enhanced_fps_suffix">(增强)</string>
|
||||||
<string name="skipping_fps_suffix">(跳过)</string>
|
|
||||||
<string name="system_info_label">系统:</string>
|
<string name="system_info_label">系统:</string>
|
||||||
<string name="show_stats_overlay">显示性能统计悬浮窗</string>
|
<string name="show_stats_overlay">显示性能统计悬浮窗</string>
|
||||||
<string name="stats_overlay_customization">自定义</string>
|
<string name="stats_overlay_customization">自定义</string>
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
|
|
||||||
<!-- Stats Overlay settings -->
|
<!-- Stats Overlay settings -->
|
||||||
<string name="enhanced_fps_suffix">(增強)</string>
|
<string name="enhanced_fps_suffix">(增強)</string>
|
||||||
<string name="skipping_fps_suffix">(跳過)</string>
|
|
||||||
<string name="system_info_label">系統:</string>
|
<string name="system_info_label">系統:</string>
|
||||||
<string name="show_stats_overlay">顯示效能統計疊加層</string>
|
<string name="show_stats_overlay">顯示效能統計疊加層</string>
|
||||||
<string name="stats_overlay_customization">自訂</string>
|
<string name="stats_overlay_customization">自訂</string>
|
||||||
|
|
|
@ -21,6 +21,18 @@
|
||||||
<item>1</item>
|
<item>1</item>
|
||||||
</integer-array>
|
</integer-array>
|
||||||
|
|
||||||
|
<string-array name="memoryNames">
|
||||||
|
<item>@string/memory_4gb</item>
|
||||||
|
<item>@string/memory_6gb</item>
|
||||||
|
<item>@string/memory_8gb</item>
|
||||||
|
</string-array>
|
||||||
|
|
||||||
|
<integer-array name="memoryValues">
|
||||||
|
<item>0</item>
|
||||||
|
<item>1</item>
|
||||||
|
<item>2</item>
|
||||||
|
</integer-array>
|
||||||
|
|
||||||
<string-array name="languageNames">
|
<string-array name="languageNames">
|
||||||
<item>@string/language_brazilian_portuguese</item>
|
<item>@string/language_brazilian_portuguese</item>
|
||||||
<item>@string/language_british_english</item>
|
<item>@string/language_british_english</item>
|
||||||
|
|
|
@ -11,9 +11,10 @@
|
||||||
|
|
||||||
<!-- Stats Overlay settings -->
|
<!-- Stats Overlay settings -->
|
||||||
<string name="enhanced_fps_suffix">(Enhanced)</string>
|
<string name="enhanced_fps_suffix">(Enhanced)</string>
|
||||||
<string name="skipping_fps_suffix">(Skipping)</string>
|
<string name="shaders_prefix">Building</string>
|
||||||
|
<string name="shaders_suffix">Shader(s)</string>
|
||||||
<string name="system_info_label">System:</string>
|
<string name="system_info_label">System:</string>
|
||||||
<string name="show_stats_overlay">ShoW Performance Stats Overlay</string>
|
<string name="show_stats_overlay">Show Performance Stats Overlay</string>
|
||||||
<string name="stats_overlay_customization">Customization</string>
|
<string name="stats_overlay_customization">Customization</string>
|
||||||
<string name="stats_overlay_items">Visibility</string>
|
<string name="stats_overlay_items">Visibility</string>
|
||||||
<string name="stats_overlay_options">Overlay</string>
|
<string name="stats_overlay_options">Overlay</string>
|
||||||
|
@ -31,6 +32,8 @@
|
||||||
<string name="show_system_ram_usage_description">Display the amount of RAM used by the system</string>
|
<string name="show_system_ram_usage_description">Display the amount of RAM used by the system</string>
|
||||||
<string name="show_bat_temperature">Show Battery Temperature</string>
|
<string name="show_bat_temperature">Show Battery Temperature</string>
|
||||||
<string name="show_bat_temperature_description">Display current Battery temperature in Celsius and Fahrenheit</string>
|
<string name="show_bat_temperature_description">Display current Battery temperature in Celsius and Fahrenheit</string>
|
||||||
|
<string name="show_shaders_building">Show Shaders Building</string>
|
||||||
|
<string name="show_shaders_building_description">Display current number of shaders being built</string>
|
||||||
<string name="overlay_position">Overlay Position</string>
|
<string name="overlay_position">Overlay Position</string>
|
||||||
<string name="overlay_position_description">Choose where the performance stats overlay is displayed on the screen</string>
|
<string name="overlay_position_description">Choose where the performance stats overlay is displayed on the screen</string>
|
||||||
<string name="overlay_position_top_left">Top Left</string>
|
<string name="overlay_position_top_left">Top Left</string>
|
||||||
|
@ -44,23 +47,35 @@
|
||||||
|
|
||||||
<!-- Eden`s Veil -->
|
<!-- Eden`s Veil -->
|
||||||
<string name="eden_veil">Eden’s Veil</string>
|
<string name="eden_veil">Eden’s Veil</string>
|
||||||
<string name="eden_veil_description">Beyond default</string>
|
<string name="eden_veil_description">Experimental settings to improve performance and capability. These settings may cause black screens or other game issues.</string>
|
||||||
<string name="frame_interpolation">Enhanced Frame Pacing</string>
|
<string name="eden_veil_warning_title">Experimental Settings</string>
|
||||||
<string name="frame_interpolation_description">Ensures smooth and consistent frame delivery by synchronizing the timing between frames, reducing stuttering and uneven animation. Ideal for games that experience frame timing instability or micro-stutters during gameplay.</string>
|
<string name="eden_veil_warning_description">The settings contained within Eden\'s Veil are highly experimental and may cause issues. If your game does not boot, disable any extensions and change Extended Dynamic State to 0.</string>
|
||||||
|
|
||||||
|
<string name="veil_extensions">GPU Extensions</string>
|
||||||
<string name="dyna_state">Extended Dynamic State</string>
|
<string name="dyna_state">Extended Dynamic State</string>
|
||||||
<string name="dyna_state_description">Enables Vulkan features to improve performance, rendering, and save resources on pipeline creation while maintaining lower CPU/GPU usage. These extensions may increase device temperature, and GPUs belonging to the older A6XX line may not react properly. Set to 0 to use Legacy emulated formats.</string>
|
<string name="dyna_state_description">Enables Vulkan features to improve performance, rendering, and save resources on pipeline creation while maintaining lower CPU/GPU usage. These extensions may increase device temperature, and GPUs belonging to the older A6XX line may not react properly. Set to 0 to use Legacy emulated formats.</string>
|
||||||
<string name="use_sync_core">Synchronize Core Speed</string>
|
<string name="provoking_vertex">Provoking Vertex</string>
|
||||||
<string name="use_sync_core_description">Synchronize the core tick speed to the maximum speed percentage to improve performance without altering the game\'s actual speed.</string>
|
<string name="provoking_vertex_description">Improves lighting and vertex handling in certain games. Only supported on Vulkan 1.0+ GPUs.</string>
|
||||||
|
<string name="descriptor_indexing">Descriptor Indexing</string>
|
||||||
|
<string name="descriptor_indexing_description">Improves texture and buffer handling, as well as the Maxwell translation layer. Supported by some Vulkan 1.1 GPUs and all Vulkan 1.2+ GPUs.</string>
|
||||||
|
|
||||||
|
<string name="veil_renderer">Renderer</string>
|
||||||
|
<string name="frame_interpolation">Enhanced Frame Pacing</string>
|
||||||
|
<string name="frame_interpolation_description">Ensures smooth and consistent frame delivery by synchronizing the timing between frames, reducing stuttering and uneven animation. Ideal for games that experience frame timing instability or micro-stutters during gameplay.</string>
|
||||||
<string name="use_auto_stub">Use Auto Stub</string>
|
<string name="use_auto_stub">Use Auto Stub</string>
|
||||||
<string name="use_auto_stub_description">Automatically stub missing services and functions. This may improve compatibility but can cause crashes and stability issues.</string>
|
<string name="use_auto_stub_description">Automatically stub missing services and functions. This may improve compatibility but can cause crashes and stability issues.</string>
|
||||||
<string name="uninstall_firmware">Uninstall firmware</string>
|
<string name="uninstall_firmware">Uninstall firmware</string>
|
||||||
<string name="uninstall_firmware_description">Uninstalling the firmware will remove it from the device and may affect game compatibility.</string>
|
<string name="uninstall_firmware_description">Uninstalling the firmware will remove it from the device and may affect game compatibility.</string>
|
||||||
<string name="firmware_uninstalling">Uninstalling firmware</string>
|
<string name="firmware_uninstalling">Uninstalling firmware</string>
|
||||||
<string name="firmware_uninstalled_success">Firmware uninstalled successfully</string>
|
<string name="firmware_uninstalled_success">Firmware uninstalled successfully</string>
|
||||||
<string name="provoking_vertex">Provoking Vertex</string>
|
|
||||||
<string name="provoking_vertex_description">Improves lighting and vertex handling in certain games. Only supported on Vulkan 1.0+ GPUs.</string>
|
<string name="veil_misc">Miscellaneous</string>
|
||||||
<string name="descriptor_indexing">Descriptor Indexing</string>
|
<string name="use_sync_core">Synchronize Core Speed</string>
|
||||||
<string name="descriptor_indexing_description">Improves texture and buffer handling, as well as the Maxwell translation layer. Supported by some Vulkan 1.1 GPUs and all Vulkan 1.2+ GPUs.</string>
|
<string name="use_sync_core_description">Synchronize the core tick speed to the maximum speed percentage to improve performance without altering the game\'s actual speed.</string>
|
||||||
|
<string name="use_lru_cache">Enable LRU Cache</string>
|
||||||
|
<string name="use_lru_cache_description">Enable or disable the Least Recently Used (LRU) cache, increasing performance by saving CPU process usage. Some games have issue with it, notably TotK 1.2.1, so disable if the game doesn\'t boot or crashes randomly.</string>
|
||||||
|
<string name="memory_layout">Memory Layout</string>
|
||||||
|
<string name="memory_layout_description">(EXPERIMENTAL) Change the emulated memory layout. This setting will not increase performance, but may help with games utilizing high resolutions via mods. Do not use on phones with 8GB of RAM or less.</string>
|
||||||
|
|
||||||
<!-- Shader Backend -->
|
<!-- Shader Backend -->
|
||||||
<string name="shader_backend">Shader Backend</string>
|
<string name="shader_backend">Shader Backend</string>
|
||||||
|
@ -404,12 +419,18 @@
|
||||||
<string name="cpu">CPU</string>
|
<string name="cpu">CPU</string>
|
||||||
<string name="cpu_debug_mode">CPU Debugging</string>
|
<string name="cpu_debug_mode">CPU Debugging</string>
|
||||||
<string name="cpu_debug_mode_description">Puts the CPU in a slow debugging mode.</string>
|
<string name="cpu_debug_mode_description">Puts the CPU in a slow debugging mode.</string>
|
||||||
|
|
||||||
<string name="gpu">GPU</string>
|
<string name="gpu">GPU</string>
|
||||||
<string name="renderer_api">API</string>
|
<string name="renderer_api">API</string>
|
||||||
<string name="renderer_debug">Graphics debugging</string>
|
<string name="renderer_debug">Graphics debugging</string>
|
||||||
<string name="renderer_debug_description">Sets the graphics API to a slow debugging mode.</string>
|
<string name="renderer_debug_description">Sets the graphics API to a slow debugging mode.</string>
|
||||||
<string name="fastmem">Fastmem</string>
|
<string name="fastmem">Fastmem</string>
|
||||||
|
|
||||||
|
<string name="log">Logging</string>
|
||||||
|
<string name="flush_by_line">Flush debug logs by line</string>
|
||||||
|
<string name="flush_by_line_description">Flushes debugging logs on each line written, making debugging easier in cases of crashing or freezing.</string>
|
||||||
|
|
||||||
|
|
||||||
<!-- Audio settings strings -->
|
<!-- Audio settings strings -->
|
||||||
<string name="audio_output_engine">Output engine</string>
|
<string name="audio_output_engine">Output engine</string>
|
||||||
<string name="audio_volume">Volume</string>
|
<string name="audio_volume">Volume</string>
|
||||||
|
@ -678,6 +699,11 @@
|
||||||
<string name="region_korea">Korea</string>
|
<string name="region_korea">Korea</string>
|
||||||
<string name="region_taiwan">Taiwan</string>
|
<string name="region_taiwan">Taiwan</string>
|
||||||
|
|
||||||
|
<!-- Memory Layouts -->
|
||||||
|
<string name="memory_4gb">4GB (Recommended)</string>
|
||||||
|
<string name="memory_6gb">6GB (Unsafe)</string>
|
||||||
|
<string name="memory_8gb">8GB (Unsafe)</string>
|
||||||
|
|
||||||
<!-- Language Names -->
|
<!-- Language Names -->
|
||||||
<string name="language_japanese" translatable="false">日本語</string>
|
<string name="language_japanese" translatable="false">日本語</string>
|
||||||
<string name="language_english" translatable="false">English</string>
|
<string name="language_english" translatable="false">English</string>
|
||||||
|
@ -749,10 +775,6 @@
|
||||||
<string name="resolution_three">3X (2160p/3240p) (Slow)</string>
|
<string name="resolution_three">3X (2160p/3240p) (Slow)</string>
|
||||||
<string name="resolution_four">4X (2880p/4320p) (Slow)</string>
|
<string name="resolution_four">4X (2880p/4320p) (Slow)</string>
|
||||||
|
|
||||||
<!-- LRU Cache -->
|
|
||||||
<string name="use_lru_cache">Enable LRU Cache</string>
|
|
||||||
<string name="use_lru_cache_description">Enable or disable the Least Recently Used (LRU) cache, increasing performance by saving CPU process usage. Some games have issue with it, notably TotK 1.2.1, so disable if the game doesn\'t boot or crashes randomly.</string>
|
|
||||||
|
|
||||||
<!-- Renderer VSync -->
|
<!-- Renderer VSync -->
|
||||||
<string name="renderer_vsync_immediate">Immediate (Off)</string>
|
<string name="renderer_vsync_immediate">Immediate (Off)</string>
|
||||||
<string name="renderer_vsync_mailbox">Mailbox</string>
|
<string name="renderer_vsync_mailbox">Mailbox</string>
|
||||||
|
|
|
@ -202,7 +202,7 @@ RendererVulkan::~RendererVulkan() {
|
||||||
#ifdef __ANDROID__
|
#ifdef __ANDROID__
|
||||||
class BooleanSetting {
|
class BooleanSetting {
|
||||||
public:
|
public:
|
||||||
static BooleanSetting FRAME_SKIPPING;
|
// static BooleanSetting FRAME_SKIPPING;
|
||||||
static BooleanSetting FRAME_INTERPOLATION;
|
static BooleanSetting FRAME_INTERPOLATION;
|
||||||
explicit BooleanSetting(bool initial_value = false) : value(initial_value) {}
|
explicit BooleanSetting(bool initial_value = false) : value(initial_value) {}
|
||||||
|
|
||||||
|
@ -219,13 +219,13 @@ class BooleanSetting {
|
||||||
};
|
};
|
||||||
|
|
||||||
// Initialize static members
|
// Initialize static members
|
||||||
BooleanSetting BooleanSetting::FRAME_SKIPPING(false);
|
// BooleanSetting BooleanSetting::FRAME_SKIPPING(false);
|
||||||
BooleanSetting BooleanSetting::FRAME_INTERPOLATION(false);
|
BooleanSetting BooleanSetting::FRAME_INTERPOLATION(false);
|
||||||
|
|
||||||
extern "C" JNIEXPORT jboolean JNICALL
|
// extern "C" JNIEXPORT jboolean JNICALL
|
||||||
Java_org_uzuy_uzuy_1emu_features_settings_model_BooleanSetting_isFrameSkippingEnabled(JNIEnv* env, jobject /* this */) {
|
// Java_org_uzuy_uzuy_1emu_features_settings_model_BooleanSetting_isFrameSkippingEnabled(JNIEnv* env, jobject /* this */) {
|
||||||
return static_cast<jboolean>(BooleanSetting::FRAME_SKIPPING.getBoolean());
|
// return static_cast<jboolean>(BooleanSetting::FRAME_SKIPPING.getBoolean());
|
||||||
}
|
// }
|
||||||
|
|
||||||
extern "C" JNIEXPORT jboolean JNICALL
|
extern "C" JNIEXPORT jboolean JNICALL
|
||||||
Java_org_uzuy_uzuy_1emu_features_settings_model_BooleanSetting_isFrameInterpolationEnabled(JNIEnv* env, jobject /* this */) {
|
Java_org_uzuy_uzuy_1emu_features_settings_model_BooleanSetting_isFrameInterpolationEnabled(JNIEnv* env, jobject /* this */) {
|
||||||
|
@ -310,7 +310,7 @@ void RendererVulkan::Composite(std::span<const Tegra::FramebufferConfig> framebu
|
||||||
static int target_fps = 60; // Target FPS (30 or 60)
|
static int target_fps = 60; // Target FPS (30 or 60)
|
||||||
int frame_skip_threshold = 1;
|
int frame_skip_threshold = 1;
|
||||||
|
|
||||||
bool frame_skipping = BooleanSetting::FRAME_SKIPPING.getBoolean();
|
bool frame_skipping = false; //BooleanSetting::FRAME_SKIPPING.getBoolean();
|
||||||
bool frame_interpolation = BooleanSetting::FRAME_INTERPOLATION.getBoolean();
|
bool frame_interpolation = BooleanSetting::FRAME_INTERPOLATION.getBoolean();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue