mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2025-07-20 09:25: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
|
||||
|
||||
/**
|
||||
* Returns the number of shaders being built
|
||||
*/
|
||||
external fun getShadersBuilding(): Int
|
||||
|
||||
/**
|
||||
* Returns the current CPU backend.
|
||||
*/
|
||||
|
|
|
@ -33,16 +33,18 @@ enum class BooleanSetting(override val key: String) : AbstractBooleanSetting {
|
|||
TOUCHSCREEN("touchscreen"),
|
||||
SHOW_THERMAL_OVERLAY("show_thermal_overlay"),
|
||||
FRAME_INTERPOLATION("frame_interpolation"),
|
||||
FRAME_SKIPPING("frame_skipping"),
|
||||
// FRAME_SKIPPING("frame_skipping"),
|
||||
SHOW_FPS("show_fps"),
|
||||
SHOW_FRAMETIME("show_frame_time"),
|
||||
SHOW_SPEED("show_speed"),
|
||||
SHOW_APP_RAM_USAGE("show_app_ram_usage"),
|
||||
SHOW_SYSTEM_RAM_USAGE("show_system_ram_usage"),
|
||||
SHOW_BAT_TEMPERATURE("show_bat_temperature"),
|
||||
SHOW_SHADERS_BUILDING("show_shaders_building"),
|
||||
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"),;
|
||||
external fun isFrameSkippingEnabled(): Boolean
|
||||
// external fun isFrameSkippingEnabled(): Boolean
|
||||
external fun isFrameInterpolationEnabled(): Boolean
|
||||
|
||||
|
||||
|
|
|
@ -33,6 +33,7 @@ enum class IntSetting(override val key: String) : AbstractIntSetting {
|
|||
LOCK_DRAWER("lock_drawer"),
|
||||
VERTICAL_ALIGNMENT("vertical_alignment"),
|
||||
PERF_OVERLAY_POSITION("perf_overlay_position"),
|
||||
MEMORY_LAYOUT("memory_layout_mode"),
|
||||
FSR_SHARPENING_SLIDER("fsr_sharpening_slider"),
|
||||
CABINET_APPLET("cabinet_applet_mode"),
|
||||
CONTROLLER_APPLET("controller_applet_mode"),
|
||||
|
|
|
@ -34,6 +34,7 @@ object Settings {
|
|||
|
||||
const val PREF_FIRST_APP_LAUNCH = "FirstApplicationLaunch"
|
||||
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 SECTION_STATS_OVERLAY = "Stats Overlay"
|
||||
|
||||
|
|
|
@ -52,10 +52,6 @@ abstract class SettingsItem(
|
|||
|
||||
val isEditable: Boolean
|
||||
get() {
|
||||
if (setting.key == BooleanSetting.FRAME_SKIPPING.key) {
|
||||
// disabled for now
|
||||
return false
|
||||
}
|
||||
// Can't change docked mode toggle when using handheld mode
|
||||
if (setting.key == BooleanSetting.USE_DOCKED_MODE.key) {
|
||||
return NativeInput.getStyleIndex(0) != NpadStyleIndex.Handheld
|
||||
|
@ -136,7 +132,7 @@ abstract class SettingsItem(
|
|||
titleId = R.string.dyna_state,
|
||||
descriptionId = R.string.dyna_state_description,
|
||||
min = 0,
|
||||
max = 2,
|
||||
max = 3,
|
||||
)
|
||||
)
|
||||
put(
|
||||
|
@ -186,6 +182,13 @@ abstract class SettingsItem(
|
|||
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 {
|
||||
override val key = BooleanSetting.USE_DOCKED_MODE.key
|
||||
|
@ -216,13 +219,13 @@ abstract class SettingsItem(
|
|||
)
|
||||
)
|
||||
|
||||
put(
|
||||
SwitchSetting(
|
||||
BooleanSetting.FRAME_SKIPPING,
|
||||
titleId = R.string.frame_skipping,
|
||||
descriptionId = R.string.frame_skipping_description
|
||||
)
|
||||
)
|
||||
// put(
|
||||
// SwitchSetting(
|
||||
// BooleanSetting.FRAME_SKIPPING,
|
||||
// titleId = R.string.frame_skipping,
|
||||
// descriptionId = R.string.frame_skipping_description
|
||||
// )
|
||||
// )
|
||||
|
||||
put(
|
||||
SwitchSetting(
|
||||
|
@ -231,6 +234,15 @@ abstract class SettingsItem(
|
|||
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(
|
||||
SwitchSetting(
|
||||
BooleanSetting.CORE_SYNC_CORE_SPEED,
|
||||
|
@ -362,13 +374,6 @@ abstract class SettingsItem(
|
|||
descriptionId = R.string.show_frametime_description
|
||||
)
|
||||
)
|
||||
put(
|
||||
SwitchSetting(
|
||||
BooleanSetting.SHOW_SPEED,
|
||||
R.string.show_speed,
|
||||
descriptionId = R.string.show_speed_description
|
||||
)
|
||||
)
|
||||
put(
|
||||
SwitchSetting(
|
||||
BooleanSetting.SHOW_APP_RAM_USAGE,
|
||||
|
@ -390,6 +395,13 @@ abstract class SettingsItem(
|
|||
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(
|
||||
SingleChoiceSetting(
|
||||
IntSetting.RENDERER_VSYNC,
|
||||
|
|
|
@ -8,6 +8,7 @@ import android.os.Bundle
|
|||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.core.content.edit
|
||||
import androidx.core.view.ViewCompat
|
||||
import androidx.core.view.WindowInsetsCompat
|
||||
import androidx.core.view.updatePadding
|
||||
|
@ -15,15 +16,17 @@ import androidx.fragment.app.Fragment
|
|||
import androidx.fragment.app.activityViewModels
|
||||
import androidx.navigation.findNavController
|
||||
import androidx.navigation.fragment.navArgs
|
||||
import androidx.preference.PreferenceManager
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.google.android.material.transition.MaterialSharedAxis
|
||||
import org.yuzu.yuzu_emu.R
|
||||
import org.yuzu.yuzu_emu.databinding.FragmentSettingsBinding
|
||||
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.fragments.MessageDialogFragment
|
||||
import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins
|
||||
import org.yuzu.yuzu_emu.utils.collect
|
||||
import org.yuzu.yuzu_emu.utils.*
|
||||
|
||||
class SettingsFragment : Fragment() {
|
||||
private lateinit var presenter: SettingsFragmentPresenter
|
||||
|
@ -66,7 +69,8 @@ class SettingsFragment : Fragment() {
|
|||
presenter = SettingsFragmentPresenter(
|
||||
settingsViewModel,
|
||||
settingsAdapter!!,
|
||||
args.menuTag
|
||||
args.menuTag,
|
||||
activity
|
||||
)
|
||||
|
||||
binding.toolbarSettingsLayout.title = if (args.menuTag == Settings.MenuTag.SECTION_ROOT &&
|
||||
|
@ -86,6 +90,7 @@ class SettingsFragment : Fragment() {
|
|||
else -> getString(args.menuTag.titleId)
|
||||
}
|
||||
}
|
||||
|
||||
binding.listSettings.apply {
|
||||
adapter = settingsAdapter
|
||||
layoutManager = LinearLayoutManager(requireContext())
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
package org.yuzu.yuzu_emu.features.settings.ui
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.app.Activity
|
||||
import android.app.AlertDialog
|
||||
import android.os.Build
|
||||
import android.widget.Toast
|
||||
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.NativeConfig
|
||||
import androidx.core.content.edit
|
||||
import androidx.fragment.app.FragmentActivity
|
||||
import org.yuzu.yuzu_emu.fragments.MessageDialogFragment
|
||||
|
||||
class SettingsFragmentPresenter(
|
||||
private val settingsViewModel: SettingsViewModel,
|
||||
private val adapter: SettingsAdapter,
|
||||
private var menuTag: MenuTag
|
||||
private var menuTag: MenuTag,
|
||||
private var activity: FragmentActivity?
|
||||
) {
|
||||
private var settingsList = ArrayList<SettingsItem>()
|
||||
|
||||
|
@ -66,7 +71,7 @@ class SettingsFragmentPresenter(
|
|||
}
|
||||
|
||||
// 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
|
||||
if (pairedSettingKey.isNotEmpty()) {
|
||||
val pairedSettingsItem =
|
||||
|
@ -78,6 +83,9 @@ class SettingsFragmentPresenter(
|
|||
}
|
||||
|
||||
fun onViewCreated() {
|
||||
if (menuTag == MenuTag.SECTION_EDEN_VEIL) {
|
||||
showEdenVeilWarningDialog()
|
||||
}
|
||||
loadSettingsList()
|
||||
}
|
||||
|
||||
|
@ -224,10 +232,10 @@ class SettingsFragmentPresenter(
|
|||
add(HeaderSetting(R.string.stats_overlay_items))
|
||||
add(BooleanSetting.SHOW_FPS.key)
|
||||
add(BooleanSetting.SHOW_FRAMETIME.key)
|
||||
add(BooleanSetting.SHOW_SPEED.key)
|
||||
add(BooleanSetting.SHOW_APP_RAM_USAGE.key)
|
||||
add(BooleanSetting.SHOW_SYSTEM_RAM_USAGE.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.
|
||||
private fun addEdenVeilSettings(sl: ArrayList<SettingsItem>) {
|
||||
sl.apply {
|
||||
add(BooleanSetting.FRAME_INTERPOLATION.key)
|
||||
add(BooleanSetting.FRAME_SKIPPING.key)
|
||||
add(BooleanSetting.USE_LRU_CACHE.key)
|
||||
add(BooleanSetting.RENDERER_FAST_GPU.key)
|
||||
|
||||
add(HeaderSetting(R.string.veil_extensions))
|
||||
add(ByteSetting.RENDERER_DYNA_STATE.key)
|
||||
|
||||
add(BooleanSetting.RENDERER_PROVOKING_VERTEX.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_NVDEC_EMULATION.key)
|
||||
add(IntSetting.RENDERER_ASTC_DECODE_METHOD.key)
|
||||
add(IntSetting.RENDERER_ASTC_RECOMPRESSION.key)
|
||||
add(IntSetting.RENDERER_VRAM_USAGE_MODE.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.CPU_DEBUG_MODE.key)
|
||||
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()
|
||||
|
||||
// Setup overlays
|
||||
updateshowStatsOvelray()
|
||||
updateShowStatsOverlay()
|
||||
|
||||
// Re update binding when the specs values get initialized properly
|
||||
binding.inGameMenu.getHeaderView(0).apply {
|
||||
|
@ -532,7 +532,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|||
}
|
||||
}
|
||||
@SuppressLint("DefaultLocale")
|
||||
private fun updateshowStatsOvelray() {
|
||||
private fun updateShowStatsOverlay() {
|
||||
val showOverlay = BooleanSetting.SHOW_PERFORMANCE_OVERLAY.getBoolean()
|
||||
binding.showStatsOverlayText.apply {
|
||||
setTextColor(
|
||||
|
@ -560,7 +560,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|||
|
||||
if (BooleanSetting.SHOW_FPS.getBoolean(NativeConfig.isPerGameConfigLoaded())) {
|
||||
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)
|
||||
|
||||
|
@ -568,9 +568,9 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|||
fpsText += " " + getString(R.string.enhanced_fps_suffix)
|
||||
}
|
||||
|
||||
if (enableFrameSkipping) {
|
||||
fpsText += " " + getString(R.string.skipping_fps_suffix)
|
||||
}
|
||||
// if (enableFrameSkipping) {
|
||||
// fpsText += " " + getString(R.string.skipping_fps_suffix)
|
||||
// }
|
||||
|
||||
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 (sb.isNotEmpty()) sb.append(" | ")
|
||||
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))
|
||||
}
|
||||
|
||||
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())) {
|
||||
binding.showStatsOverlayText.setBackgroundResource(R.color.yuzu_transparent_black)
|
||||
} else {
|
||||
|
@ -849,7 +849,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|||
R.id.menu_show_stats_overlay -> {
|
||||
it.isChecked = !it.isChecked
|
||||
BooleanSetting.SHOW_PERFORMANCE_OVERLAY.setBoolean(it.isChecked)
|
||||
updateshowStatsOvelray()
|
||||
updateShowStatsOverlay()
|
||||
true
|
||||
}
|
||||
R.id.menu_edit_overlay -> {
|
||||
|
|
|
@ -12,10 +12,13 @@ import android.view.LayoutInflater
|
|||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.inputmethod.InputMethodManager
|
||||
import android.widget.ImageButton
|
||||
import android.widget.PopupMenu
|
||||
import android.widget.TextView
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.toArgb
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import androidx.core.view.ViewCompat
|
||||
import androidx.core.view.WindowInsetsCompat
|
||||
|
@ -43,6 +46,7 @@ import org.yuzu.yuzu_emu.utils.collect
|
|||
import java.util.Locale
|
||||
import androidx.core.content.edit
|
||||
import androidx.core.view.updateLayoutParams
|
||||
import org.yuzu.yuzu_emu.features.settings.model.Settings
|
||||
|
||||
class GamesFragment : Fragment() {
|
||||
private var _binding: FragmentGamesBinding? = null
|
||||
|
@ -58,7 +62,8 @@ class GamesFragment : Fragment() {
|
|||
private val homeViewModel: HomeViewModel by activityViewModels()
|
||||
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 val getGamesDirectory =
|
||||
|
@ -151,8 +156,13 @@ class GamesFragment : Fragment() {
|
|||
getGamesDirectory.launch(Intent(Intent.ACTION_OPEN_DOCUMENT_TREE).data)
|
||||
}
|
||||
|
||||
setInsets()
|
||||
addPreAlphaBanner()
|
||||
setInsets()
|
||||
val shouldDisplayPreAlphaBanner =
|
||||
PreferenceManager.getDefaultSharedPreferences(requireContext())
|
||||
.getBoolean(Settings.PREF_SHOULD_SHOW_PRE_ALPHA_BANNER, true)
|
||||
if (shouldDisplayPreAlphaBanner) {
|
||||
addPreAlphaBanner()
|
||||
}
|
||||
}
|
||||
|
||||
val applyGridGamesBinding = {
|
||||
|
@ -260,7 +270,44 @@ class GamesFragment : Fragment() {
|
|||
)
|
||||
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(closeButton)
|
||||
|
||||
binding.swipeRefresh.updateLayoutParams<ConstraintLayout.LayoutParams> {
|
||||
topToBottom = preAlphaBanner.id
|
||||
}
|
||||
|
@ -284,12 +331,14 @@ class GamesFragment : Fragment() {
|
|||
item.isChecked = true
|
||||
true
|
||||
}
|
||||
|
||||
R.id.view_list -> {
|
||||
preferences.edit() { putInt(PREF_VIEW_TYPE, GameAdapter.VIEW_TYPE_LIST) }
|
||||
applyGridGamesBinding()
|
||||
item.isChecked = true
|
||||
true
|
||||
}
|
||||
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
|
@ -394,7 +443,7 @@ class GamesFragment : Fragment() {
|
|||
val barInsets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
|
||||
val cutoutInsets = windowInsets.getInsets(WindowInsetsCompat.Type.displayCutout())
|
||||
val spacingNavigation = resources.getDimensionPixelSize(R.dimen.spacing_navigation)
|
||||
resources.getDimensionPixelSize(R.dimen.spacing_navigation_rail)
|
||||
resources.getDimensionPixelSize(R.dimen.spacing_navigation_rail)
|
||||
val isLandscape =
|
||||
resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE
|
||||
|
||||
|
@ -418,7 +467,7 @@ class GamesFragment : Fragment() {
|
|||
binding.noticeText.updatePadding(bottom = spacingNavigation)
|
||||
binding.header.updatePadding(top = cutoutInsets.top + resources.getDimensionPixelSize(R.dimen.spacing_large) + if (isLandscape) barInsets.top else 0)
|
||||
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
|
||||
|
|
|
@ -79,18 +79,20 @@ struct Values {
|
|||
Settings::Category::Overlay, Settings::Specialization::Default, true , true, &show_performance_overlay};
|
||||
Settings::Setting<bool> show_frame_time{linkage, false, "show_frame_time",
|
||||
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::Category::Overlay, Settings::Specialization::Default, true , true, &show_performance_overlay};
|
||||
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::Setting<bool> show_bat_temperature{linkage, false, "show_bat_temperature",
|
||||
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::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<bool> dont_show_eden_veil_warning{linkage, false, "dont_show_eden_veil_warning", Settings::Category::Miscellaneous};
|
||||
};
|
||||
|
||||
extern Values values;
|
||||
|
|
|
@ -67,6 +67,7 @@
|
|||
#include "video_core/renderer_vulkan/renderer_vulkan.h"
|
||||
#include "video_core/vulkan_common/vulkan_instance.h"
|
||||
#include "video_core/vulkan_common/vulkan_surface.h"
|
||||
#include "video_core/shader_notify.h"
|
||||
|
||||
#define jconst [[maybe_unused]] const auto
|
||||
#define jauto [[maybe_unused]] auto
|
||||
|
@ -158,6 +159,12 @@ const Core::PerfStatsResults& EmulationSession::PerfStats() {
|
|||
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() {
|
||||
if (!IsRunning()) {
|
||||
return;
|
||||
|
@ -610,6 +617,16 @@ jdoubleArray Java_org_yuzu_yuzu_1emu_NativeLibrary_getPerfStats(JNIEnv* env, jcl
|
|||
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) {
|
||||
if (Settings::IsNceEnabled()) {
|
||||
return Common::Android::ToJString(env, "NCE");
|
||||
|
|
|
@ -44,6 +44,7 @@ public:
|
|||
void ShutdownEmulation();
|
||||
|
||||
const Core::PerfStatsResults& PerfStats();
|
||||
int ShadersBuilding();
|
||||
void ConfigureFilesystemProvider(const std::string& filepath);
|
||||
void InitializeSystem(bool reload);
|
||||
void SetAppletId(int applet_id);
|
||||
|
@ -72,6 +73,7 @@ private:
|
|||
InputCommon::InputSubsystem m_input_subsystem;
|
||||
Common::DetachedTasks m_detached_tasks;
|
||||
Core::PerfStatsResults m_perf_stats{};
|
||||
int m_shaders_building{0};
|
||||
std::shared_ptr<FileSys::VfsFilesystem> m_vfs;
|
||||
Core::SystemResultStatus m_load_result{Core::SystemResultStatus::ErrorNotInitialized};
|
||||
std::atomic<bool> m_is_running = false;
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
|
||||
<!-- Stats Overlay settings -->
|
||||
<string name="enhanced_fps_suffix">(مُحسَّن)</string>
|
||||
<string name="skipping_fps_suffix">(تخطي)</string>
|
||||
<string name="system_info_label">النظام:</string>
|
||||
<string name="show_stats_overlay">عرض إحصائيات الأداء</string>
|
||||
<string name="stats_overlay_customization">تخصيص</string>
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
|
||||
<!-- Stats Overlay settings -->
|
||||
<string name="enhanced_fps_suffix">(پێشکەوتوو)</string>
|
||||
<string name="skipping_fps_suffix">(بازدان)</string>
|
||||
<string name="system_info_label">سیستەم:</string>
|
||||
<string name="show_stats_overlay">پیشاندانی ستاتیستی کارایی</string>
|
||||
<string name="stats_overlay_customization">خۆڕێکخستن</string>
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
|
||||
<!-- Stats Overlay settings -->
|
||||
<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="show_stats_overlay">Zobrazit překryv statistik výkonu</string>
|
||||
<string name="stats_overlay_customization">Přizpůsobení</string>
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
|
||||
<!-- Stats Overlay settings -->
|
||||
<string name="enhanced_fps_suffix">(Enhanced)</string>
|
||||
<string name="skipping_fps_suffix">(Skipping)</string>
|
||||
<string name="system_info_label">System:</string>
|
||||
<string name="show_stats_overlay">Leistungsstatistik Overlay anzeigen</string>
|
||||
<string name="stats_overlay_customization">Anpassung</string>
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
|
||||
<!-- Stats Overlay settings -->
|
||||
<string name="enhanced_fps_suffix">(Mejorado)</string>
|
||||
<string name="skipping_fps_suffix">(Saltando)</string>
|
||||
<string name="system_info_label">Sistema:</string>
|
||||
<string name="show_stats_overlay">Mostrar superposición de estadísticas de rendimiento</string>
|
||||
<string name="stats_overlay_customization">Personalización</string>
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
|
||||
<!-- Stats Overlay settings -->
|
||||
<string name="enhanced_fps_suffix">(بهبودیافته)</string>
|
||||
<string name="skipping_fps_suffix">(رد کردن)</string>
|
||||
<string name="system_info_label">سیستم:</string>
|
||||
<string name="show_stats_overlay">نمایش آمار عملکرد</string>
|
||||
<string name="stats_overlay_customization">سفارشیسازی</string>
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
|
||||
<!-- Stats Overlay settings -->
|
||||
<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="show_stats_overlay">Afficher les stats de performance</string>
|
||||
<string name="stats_overlay_customization">Personnalisation</string>
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
|
||||
<!-- Stats Overlay settings -->
|
||||
<string name="enhanced_fps_suffix">(משופר)</string>
|
||||
<string name="skipping_fps_suffix">(דילוג)</string>
|
||||
<string name="system_info_label">מערכת:</string>
|
||||
<string name="show_stats_overlay">הצג סטטיסטיקות ביצועים</string>
|
||||
<string name="stats_overlay_customization">התאמה אישית</string>
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
|
||||
<!-- Stats Overlay settings -->
|
||||
<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="show_stats_overlay">Teljesítmény statisztikák megjelenítése</string>
|
||||
<string name="stats_overlay_customization">Testreszabás</string>
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
|
||||
<!-- Stats Overlay settings -->
|
||||
<string name="enhanced_fps_suffix">(Ditingkatkan)</string>
|
||||
<string name="skipping_fps_suffix">(Melewatkan)</string>
|
||||
<string name="system_info_label">Sistem:</string>
|
||||
<string name="show_stats_overlay">Tampilkan Overlay Statistik Performa</string>
|
||||
<string name="stats_overlay_customization">Kustomisasi</string>
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
|
||||
<!-- Stats Overlay settings -->
|
||||
<string name="enhanced_fps_suffix">(Migliorato)</string>
|
||||
<string name="skipping_fps_suffix">(Salto)</string>
|
||||
<string name="system_info_label">Sistema:</string>
|
||||
<string name="show_stats_overlay">Mostra overlay prestazioni</string>
|
||||
<string name="stats_overlay_customization">Personalizzazione</string>
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
|
||||
<!-- Stats Overlay settings -->
|
||||
<string name="enhanced_fps_suffix">(強化)</string>
|
||||
<string name="skipping_fps_suffix">(スキップ)</string>
|
||||
<string name="system_info_label">システム:</string>
|
||||
<string name="show_stats_overlay">パフォーマンス統計オーバーレイを表示</string>
|
||||
<string name="stats_overlay_customization">カスタマイズ</string>
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
|
||||
<!-- Stats Overlay settings -->
|
||||
<string name="enhanced_fps_suffix">(향상됨)</string>
|
||||
<string name="skipping_fps_suffix">(건너뜀)</string>
|
||||
<string name="system_info_label">시스템:</string>
|
||||
<string name="show_stats_overlay">성능 통계 오버레이 표시</string>
|
||||
<string name="stats_overlay_customization">사용자 지정</string>
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
|
||||
<!-- Stats Overlay settings -->
|
||||
<string name="enhanced_fps_suffix">(Forbedret)</string>
|
||||
<string name="skipping_fps_suffix">(Hopp)</string>
|
||||
<string name="system_info_label">System:</string>
|
||||
<string name="show_stats_overlay">Vis ytelsesstatistikkoverlay</string>
|
||||
<string name="stats_overlay_customization">Tilpasning</string>
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
|
||||
<!-- Stats Overlay settings -->
|
||||
<string name="enhanced_fps_suffix">(Ulepszony)</string>
|
||||
<string name="skipping_fps_suffix">(Pomijanie)</string>
|
||||
<string name="system_info_label">System:</string>
|
||||
<string name="show_stats_overlay">Pokaż nakładkę statystyk wydajności</string>
|
||||
<string name="stats_overlay_customization">Dostosowanie</string>
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
|
||||
<!-- Stats Overlay settings -->
|
||||
<string name="enhanced_fps_suffix">(Aprimorado)</string>
|
||||
<string name="skipping_fps_suffix">(Pular)</string>
|
||||
<string name="system_info_label">Sistema:</string>
|
||||
<string name="show_stats_overlay">Mostrar sobreposição de estatísticas de desempenho</string>
|
||||
<string name="stats_overlay_customization">Personalização</string>
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
|
||||
<!-- Stats Overlay settings -->
|
||||
<string name="enhanced_fps_suffix">(Melhorado)</string>
|
||||
<string name="skipping_fps_suffix">(Saltar)</string>
|
||||
<string name="system_info_label">Sistema:</string>
|
||||
<string name="show_stats_overlay">Mostrar Overlay de Desempenho</string>
|
||||
<string name="stats_overlay_customization">Personalização</string>
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
|
||||
<!-- Stats Overlay settings -->
|
||||
<string name="enhanced_fps_suffix">(Улучшенный)</string>
|
||||
<string name="skipping_fps_suffix">(Пропуск)</string>
|
||||
<string name="system_info_label">Система:</string>
|
||||
<string name="show_stats_overlay">Показать оверлей статистики</string>
|
||||
<string name="stats_overlay_customization">Настройки</string>
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
|
||||
<!-- Stats Overlay settings -->
|
||||
<string name="enhanced_fps_suffix">(Покращений)</string>
|
||||
<string name="skipping_fps_suffix">(Пропуск)</string>
|
||||
<string name="system_info_label">Система:</string>
|
||||
<string name="show_stats_overlay">Показати накладання статистики</string>
|
||||
<string name="stats_overlay_customization">Налаштування</string>
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
|
||||
<!-- Stats Overlay settings -->
|
||||
<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="show_stats_overlay">Hiển thị thống kê hiệu suất</string>
|
||||
<string name="stats_overlay_customization">Tùy chỉnh</string>
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
|
||||
<!-- Stats Overlay settings -->
|
||||
<string name="enhanced_fps_suffix">(增强)</string>
|
||||
<string name="skipping_fps_suffix">(跳过)</string>
|
||||
<string name="system_info_label">系统:</string>
|
||||
<string name="show_stats_overlay">显示性能统计悬浮窗</string>
|
||||
<string name="stats_overlay_customization">自定义</string>
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
|
||||
<!-- Stats Overlay settings -->
|
||||
<string name="enhanced_fps_suffix">(增強)</string>
|
||||
<string name="skipping_fps_suffix">(跳過)</string>
|
||||
<string name="system_info_label">系統:</string>
|
||||
<string name="show_stats_overlay">顯示效能統計疊加層</string>
|
||||
<string name="stats_overlay_customization">自訂</string>
|
||||
|
|
|
@ -21,6 +21,18 @@
|
|||
<item>1</item>
|
||||
</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">
|
||||
<item>@string/language_brazilian_portuguese</item>
|
||||
<item>@string/language_british_english</item>
|
||||
|
|
|
@ -11,9 +11,10 @@
|
|||
|
||||
<!-- Stats Overlay settings -->
|
||||
<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="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_items">Visibility</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_bat_temperature">Show Battery Temperature</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_description">Choose where the performance stats overlay is displayed on the screen</string>
|
||||
<string name="overlay_position_top_left">Top Left</string>
|
||||
|
@ -44,23 +47,35 @@
|
|||
|
||||
<!-- Eden`s Veil -->
|
||||
<string name="eden_veil">Eden’s Veil</string>
|
||||
<string name="eden_veil_description">Beyond default</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="eden_veil_description">Experimental settings to improve performance and capability. These settings may cause black screens or other game issues.</string>
|
||||
<string name="eden_veil_warning_title">Experimental Settings</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_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="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">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="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_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_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_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="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_misc">Miscellaneous</string>
|
||||
<string name="use_sync_core">Synchronize Core Speed</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 -->
|
||||
<string name="shader_backend">Shader Backend</string>
|
||||
|
@ -404,12 +419,18 @@
|
|||
<string name="cpu">CPU</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="gpu">GPU</string>
|
||||
<string name="renderer_api">API</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="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 -->
|
||||
<string name="audio_output_engine">Output engine</string>
|
||||
<string name="audio_volume">Volume</string>
|
||||
|
@ -678,6 +699,11 @@
|
|||
<string name="region_korea">Korea</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 -->
|
||||
<string name="language_japanese" translatable="false">日本語</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_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 -->
|
||||
<string name="renderer_vsync_immediate">Immediate (Off)</string>
|
||||
<string name="renderer_vsync_mailbox">Mailbox</string>
|
||||
|
|
|
@ -202,7 +202,7 @@ RendererVulkan::~RendererVulkan() {
|
|||
#ifdef __ANDROID__
|
||||
class BooleanSetting {
|
||||
public:
|
||||
static BooleanSetting FRAME_SKIPPING;
|
||||
// static BooleanSetting FRAME_SKIPPING;
|
||||
static BooleanSetting FRAME_INTERPOLATION;
|
||||
explicit BooleanSetting(bool initial_value = false) : value(initial_value) {}
|
||||
|
||||
|
@ -219,13 +219,13 @@ class BooleanSetting {
|
|||
};
|
||||
|
||||
// Initialize static members
|
||||
BooleanSetting BooleanSetting::FRAME_SKIPPING(false);
|
||||
// BooleanSetting BooleanSetting::FRAME_SKIPPING(false);
|
||||
BooleanSetting BooleanSetting::FRAME_INTERPOLATION(false);
|
||||
|
||||
extern "C" JNIEXPORT jboolean JNICALL
|
||||
Java_org_uzuy_uzuy_1emu_features_settings_model_BooleanSetting_isFrameSkippingEnabled(JNIEnv* env, jobject /* this */) {
|
||||
return static_cast<jboolean>(BooleanSetting::FRAME_SKIPPING.getBoolean());
|
||||
}
|
||||
// extern "C" JNIEXPORT jboolean JNICALL
|
||||
// Java_org_uzuy_uzuy_1emu_features_settings_model_BooleanSetting_isFrameSkippingEnabled(JNIEnv* env, jobject /* this */) {
|
||||
// return static_cast<jboolean>(BooleanSetting::FRAME_SKIPPING.getBoolean());
|
||||
// }
|
||||
|
||||
extern "C" JNIEXPORT jboolean JNICALL
|
||||
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)
|
||||
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();
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue