Zephyron
a5632d7576
feat(ui): add QLaunch/Home Menu support to menubar
...
- Add Tools > Open QLaunch menu action
- Implement OnOpenQLaunch() to launch firmware home menu
- Add translation strings for QLaunch option
2026-01-28 16:42:51 +10:00
Zephyron
626ea63cbc
feat(hle): implement misc service stubs for QLaunch compatibility
...
- audctl: Add GetAudioController (cmd 5000) returning IAudioController
- vi: Improve display service with better non-default display handling
- psc/ovln: Add GetReceiveEventHandle for overlay notifications
- omm: Add GetNotificationMessageEventHandle for power state
- olsc: Implement GetNativeHandle returning valid event
- prepo: Add SaveSystemReport2 (cmd 20102) stub
2026-01-28 16:42:35 +10:00
Zephyron
5fa71ce5b0
feat(hle/ns): implement application manager interface stubs for 20.0.0+
...
- Add Cmd4022, Cmd4023, Cmd4088 stubs for application readiness checks
- Add GetApplicationRecord stub returning empty list
- Required for QLaunch application enumeration
2026-01-28 16:42:14 +10:00
Zephyron
3bfa2ebc58
feat(hle/pctl): implement parental control service stubs for 18.0.0+
...
- Add GetPlayTimerSettingsVer2 (cmd 1456) with proper struct
- Add GetPlayTimerRemainingTime (cmd 1454)
- Add GetPlayTimerRemainingTimeDisplayInfo (cmd 1459) for 20.0.0+
- Add GetExtendedPlayTimerEvent (cmd 1475) with kernel event
- Define PlayTimerSettingsVer2 and PlayTimerRemainingTimeDisplayInfo types
2026-01-28 16:41:58 +10:00
Zephyron
37863fcb09
feat(hle/am): implement applet and home menu management
...
- Add home menu popup event and request handling
- Implement various self controller functions for applet lifecycle
- Add applet common functions with event support
- Implement application accessor and debug function stubs
- Add window system hooks for QLaunch integration
2026-01-28 16:41:40 +10:00
Zephyron
53fc6bf107
feat(hle/am): add event handling for state controllers
...
- Implement GetGpuErrorDetectedSystemEvent (cmd 1020)
- Implement GetFriendInvitationStorageChannelEvent (cmd 1030)
- Implement GetNotificationStorageChannelEvent (cmd 1040)
- Implement GetHealthWarningDisappearedSystemEvent (cmd 1050)
- Implement GetAccumulatedSuspendedTickChangedEvent (cmd 63)
2026-01-28 16:41:21 +10:00
Zephyron
ab93279542
feat(hle/am): implement system applet proxies and observer services
...
- Add OpenHomeMenuProxy (cmd 110) for QLaunch support
- Add GetSystemProcessCommonFunctions (cmd 450)
- Add Cmd460 stub for system process initialization
- Implement IApplicationObserver and ISystemProcessCommonFunctions services
2026-01-28 16:41:03 +10:00
Collecting
af5eb92450
fix(graphics/adv): Ensure STPE is auto-disabled
...
Games appear to have horrendous VRAM leaking with this setting enabled. By default, this setting was turned on, leaving users without any information of the setting or what the setting does and seems to have adverse effects in certain titles. Disabling it so that users don't have it automatically chosen.
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-26 00:26:05 +01:00
Collecting
0caf8866fa
fix(android): He say give me more static_cast, I say yes
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-25 15:34:10 +01:00
Collecting
f842dfb7fe
fix(android): moar static cast, me hungry
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-25 15:07:21 +01:00
Collecting
dcf6e4058f
fix(android): Required multiple static_cast fixes
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-25 14:36:41 +01:00
Collecting
7c14003ebd
fix(android): Double for static_cast
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-25 14:35:44 +01:00
Collecting
6253352e1e
fix(compiler): generate the vtable within settings.cpp
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-25 13:42:55 +01:00
Collecting
f428c20bf6
fix(compiler): static_cast w/ unsigned long long to remove ambiguity
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-25 13:42:19 +01:00
Collecting
47656f1fdf
fix(compiler): static_cast w/ unsigned long long to remove ambiguity
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-25 13:41:26 +01:00
Zephyron
8eaa38540c
refactor(settings): simplify VRAM usage mode to Conservative/Aggressive
...
The removed modes added complexity without significant benefit now that
the new VRAM management system (gc_aggressiveness, vram_limit_mb)
provides finer-grained control over memory pressure.
Signed-off-by: Zephyron <zephyron@citron-emu.org >
2026-01-25 15:29:25 +10:00
Zephyron
3e2137a470
feat(video_core): implement comprehensive VRAM management system
...
Add automatic VRAM leak prevention with configurable garbage collection
to prevent device loss crashes during extended play sessions.
New Settings:
- vram_limit_mb: Configurable VRAM limit (0 = auto-detect 80%)
- gc_aggressiveness: Off/Light/Moderate/Heavy/Extreme levels
- texture_eviction_frames: Frames before texture eviction (default 2)
- buffer_eviction_frames: Frames before buffer eviction (default 5)
- sparse_texture_priority_eviction: Prioritize large sparse textures
- log_vram_usage: Enable VRAM statistics logging
Core Changes:
- Enhanced texture cache with LRU eviction and sparse texture priority
- Enhanced buffer cache with configurable eviction thresholds
- Added VRAM pressure monitoring using VK_EXT_memory_budget
- Emergency GC triggers at 90%/95% VRAM usage thresholds
Platform Support:
- Desktop: Settings in Graphics > Advanced tab
- Android: Settings in Zep Zone category
Fixes VRAM climbing steadily during gameplay until device loss.
Target: Stable VRAM usage below configured limit for 2+ hours.
Signed-off-by: Zephyron <zephyron@citron-emu.org >
2026-01-25 15:21:02 +10:00
Zephyron
44f9cb6347
fix(ssl): implement SetVerifyOption instead of stubbing it
...
Games can now properly disable SSL certificate verification by setting
option=0, which was previously ignored causing handshake failures.
Thanks to Raytwo and DogeThis (https://github.com/Raytwo/Cobalt ) for
helping debug this issue.
Signed-off-by: Zephyron <zephyron@citron-emu.org >
2026-01-24 14:46:34 +10:00
Collecting
a3a8e6f916
feat(add): Logic to determine base location when using Global or Default Paths
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-24 03:00:58 +01:00
Collecting
7dee5834bf
feat(add): More options including Dynamic understanding of Global & Default NAND Locations
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-24 02:59:14 +01:00
Collecting
c0914868f6
feat(add): Boolean for Initial Sync to ensure re-arm for proper syncing
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-24 02:58:20 +01:00
Collecting
d7814f6f76
feat(add): Initial Sync to fix overwriting of NAND when Configuring Settings outside of emulation
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-24 02:57:14 +01:00
Collecting
3bf1497300
fix(ui): Ensure Paths are properly displayed when checking paths
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-23 23:26:36 +01:00
Collecting
a819b230d0
fix(filesystem): Re-organize Path Ordering
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-23 23:25:39 +01:00
Collecting
c22350feab
feat(multiplayer): Add Filtering for URL Logic
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-23 18:58:21 +01:00
Collecting
701d552b0e
feat(multiplayer): Add SanitizeMessage String for URL Links
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-23 18:57:34 +01:00
Collecting
44e8e2a630
fix(multiplayer): Ensure Node = 1 and not 0
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-22 05:32:45 +01:00
Collecting
2b810e766a
fix(multiplayer): Add mutable to packet_mutex
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-22 05:32:14 +01:00
Collecting
cc85173fa9
fix(multiplayer): Add sleep_for & remove yield for Stabilization
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-22 05:31:36 +01:00
Collecting
550b08335e
fix(multiplayer): Remove Socket Re-utilization
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-22 05:30:49 +01:00
Collecting
6a7fd947d5
Remove Redundant NavigateToGamedbEntry
...
Since new compatibility list is off-shored to separate repo, might as well get rid of this. Could of re-purposed for reading the listings but we'll think about it.
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-21 10:47:54 +01:00
Collecting
02e7a689bd
feat(compatibility): Overhaul Compatibility Logic for GitHub Parsing
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-21 08:41:13 +01:00
Collecting
1f1fa1e215
feat(compatibility): Fix QString w/ game_name to display properly w/ issues
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-21 08:39:52 +01:00
Collecting
c6ca62e706
Update src/android/app/src/main/AndroidManifest.xml
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-20 10:31:07 +01:00
Zephyron
c720e354d2
service/ldn: Implement SetProtocol and SetWirelessAudioPolicy commands
...
Adds support for LDN service commands introduced in firmware 20.0.0+:
- Command 105: SetWirelessAudioPolicy (stubbed)
- Command 106: SetProtocol
This enables ACNH Update 3.0 and other games using newer SDK versions
to properly initialize LDN for local multiplayer functionality.
Signed-off-by: Zephyron <zephyron@citron-emu.org >
2026-01-19 16:29:46 +10:00
Collecting
23bb5078a7
fix(multiplayer): Z-A Connection Issues
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-18 22:39:29 +00:00
Collecting
78d70c6b48
add: Title ID for Optimizer
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-18 04:00:40 +00:00
Collecting
4d018eb894
add: Title ID for Optimizer
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-18 03:59:58 +00:00
Collecting
bd32690a76
revert c575341d1e
...
revert Merge pull request 'fix(multiplayer): Race Condition during Packet Discovery' (#101 ) from fix/lan_discovery_race_condition into main
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/101
2026-01-18 00:01:51 +00:00
Collecting
df97c4f325
revert 47edb00351
...
revert Merge pull request 'Service: Sockets: Fix busy-waiting CPU starvation and Close/Socket race conditions' (#100 ) from fix-socket-performance-and-crashes into main
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/100
2026-01-17 23:28:32 +00:00
Zephyron
d77cc3e518
chore: bump Citroen version
...
Signed-off-by: Zephyron <zephyron@citron-emu.org >
2026-01-18 00:48:31 +10:00
Collecting
c5c241aa73
Watch what you're typing next time
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-17 10:08:25 +00:00
Collecting
ad35ac85ef
Typo buddy
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-17 10:07:56 +00:00
Collecting
c7220e4c27
Update src/citron/mod_manager/mod_service.cpp
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-17 09:55:31 +00:00
Collecting
d3d7f41536
Update src/core/file_sys/patch_manager.cpp
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-17 09:54:48 +00:00
Collecting
e0b13d9414
Remove Un-used Title ID's
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-17 09:00:46 +00:00
Collecting
a380ba4c60
Remove Un-used Title IDs
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-17 09:00:03 +00:00
Collecting
2873e3b97f
Update src/citron/configuration/configure_per_game_addons.cpp
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-17 02:38:31 +00:00
Collecting
fb168f9283
fix: Corrupted Cache Cleanup
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-17 02:06:48 +00:00
Collecting
c30c7689c8
fix: Patch Manager Logic
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-17 02:04:27 +00:00