[hle,display,overlay,starter,hid] add overlay functions, starter applet (initially), HID handheld for system applets and fw21 stubs (#3080)

Adds fully functional overlay display.
- Enable Overlay Applet via "View" -> "Enable Overlay Display Applet"
- Open the overlay by pressing the home button for over 1s
- Can adjust volume
- Can toggle airplane mode (if on WiFi, maybe if overlay is enabled pretend to be on WiFi?)
- Future TODO(?): Adjust Brightness implementation for host system
- Inputs are properly registered. e.g. if overlay open, application does not register inputs.

You can control volume and airplane mode outside of the emulator window

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3080
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-by: crueter <crueter@eden-emu.dev>
Co-authored-by: Maufeat <sahyno1996@gmail.com>
Co-committed-by: Maufeat <sahyno1996@gmail.com>
This commit is contained in:
Maufeat 2025-11-27 19:46:41 +01:00 committed by crueter
parent 1efef85352
commit f58097e814
No known key found for this signature in database
GPG key ID: 425ACD2D4830EBC6
75 changed files with 1634 additions and 181 deletions

View file

@ -72,7 +72,8 @@ enum class BooleanSetting(override val key: String) : AbstractBooleanSetting {
DEBUG_FLUSH_BY_LINE("flush_line"),
USE_LRU_CACHE("use_lru_cache"),
DONT_SHOW_DRIVER_SHADER_WARNING("dont_show_driver_shader_warning");
DONT_SHOW_DRIVER_SHADER_WARNING("dont_show_driver_shader_warning"),
ENABLE_OVERLAY("enable_overlay");
// external fun isFrameSkippingEnabled(): Boolean

View file

@ -849,7 +849,14 @@ abstract class SettingsItem(
descriptionId = R.string.airplane_mode_description
)
)
put(
SwitchSetting(
BooleanSetting.ENABLE_OVERLAY,
titleId = R.string.enable_overlay,
descriptionId = R.string.enable_overlay_description
)
)
}
}
}

View file

@ -491,6 +491,7 @@ class SettingsFragmentPresenter(
sl.apply {
add(IntSetting.SWKBD_APPLET.key)
add(BooleanSetting.AIRPLANE_MODE.key)
add(BooleanSetting.ENABLE_OVERLAY.key)
}
}
private fun addInputPlayer(sl: ArrayList<SettingsItem>, playerIndex: Int) {

View file

@ -1125,7 +1125,7 @@
<!-- Applet Modes -->
<string name="applets_menu">Applets</string>
<string name="applets_menu_description">(WIP) Change applet frontends and settings</string>
<string name="applets_menu_description">Change applet frontends and settings</string>
<string name="applet_hle">Custom Frontend</string>
<string name="applet_lle">Real Applet</string>
@ -1135,6 +1135,9 @@
<string name="airplane_mode">Airplane Mode</string>
<string name="airplane_mode_description">Passes Airplane Mode to the Switch OS</string>
<string name="enable_overlay">Enable Overlay Applet</string>
<string name="enable_overlay_description">Enables Horizon\'s built-in overlay applet. Press and hold the home button for 1 second to show it.</string>
<!-- Licenses screen strings -->
<string name="licenses">Licenses</string>
<string name="license_fidelityfx_fsr" translatable="false">FidelityFX-FSR</string>