Collecting
a73aa4f19d
feat(add): Emit Configuration Saved
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-29 01:15:05 +01:00
Collecting
8820ae568c
feat(add): Configuration Saved
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-29 01:14:19 +01:00
Collecting
783f30be0e
feat(add): Hidden Paths logic for saving to qt_config
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-29 01:13:51 +01:00
Collecting
4f7cd049ef
feat(add): QStringList for paths to hide specific games
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-29 01:13:16 +01:00
Zephyron
08a88e8d55
Merge pull request 'feat/qlaunch-home-menu-support' ( #115 ) from feat/qlaunch-home-menu-support into main
...
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/115
2026-01-28 07:46:11 +01:00
Zephyron
5600aefcd5
chore(core): update build config for QLaunch services
...
- Add application_observer and system_process_common_functions to CMakeLists
- Add enable_home_menu setting option
2026-01-28 16:43:07 +10:00
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
46630e770d
Merge pull request 'feat(gamelist): Add 'Surprise Me!' random game feature' ( #114 ) from feat/surprise-me into main
...
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/114
2026-01-28 07:40:01 +01:00
Collecting
ea9c04bccb
feat(ui): Surprise Me! Logic
...
The main logic for the Surprise Me feature.
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-28 07:38:38 +01:00
Collecting
b465783bf7
feat(ui): Surprise Me! Option
...
Needed the thingies
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-28 07:37:53 +01:00
Collecting
5b90431380
feat: dice.svg into qrc
...
For rendering of the Surprise Me! icon.
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-28 07:37:22 +01:00
Collecting
32fc088c5e
feat: dice.svg
...
A dice svg.
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-28 07:36:36 +01: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
851e8da116
Merge pull request 'fix(android): Add static_cast's for Android Warnings' ( #113 ) from fix/compiler into main
...
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/113
2026-01-25 14:37:51 +01:00
Collecting
be9fbddd5d
Merge branch 'main' into fix/compiler
2026-01-25 14:37:22 +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
2b18a97e12
Merge pull request 'Fix: Resolve linker errors and improve type safety in cache GC' ( #112 ) from fix/compiler into main
...
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/112
2026-01-25 13:44:42 +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
79afcfad28
Merge pull request 'fix/vram-leak-prevention' ( #111 ) from fix/vram-leak-prevention into main
...
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/111
2026-01-25 06:44:29 +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
31a2a6212d
Merge pull request 'feat(fix): Re-structure Pathing Logic for necessary additional configuration for multiple different varieties' ( #110 ) from fix/restructure-save-pathing-logic into main
...
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/110
2026-01-24 03:01:36 +01: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
05a839423b
Merge pull request 'feat(fs): Correct save path hierarchy to prioritize mirroring and per-game paths' ( #109 ) from fix/path-ordering-for-saves into main
...
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/109
2026-01-23 23:27:48 +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
0102d6c8d9
Merge pull request 'feat(chat): Implement robust link filtering and sanitization' ( #108 ) from fix/link-removal-chatroom into main
...
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/108
2026-01-23 18:59:54 +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
5083308f8e
Merge pull request 'service: network: Fix lobby SDK crashes and performance drops in multiplayer' ( #107 ) from fix/mitigate-sdk-crash into main
...
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/107
2026-01-22 05:37:18 +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