Commit Graph

24638 Commits

Author SHA1 Message Date
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
Collecting
7baf163539 add: Nx-Optimizer
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-17 02:00:20 +00:00
Collecting
c3dc22820e add: Nx-Optimizer
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-17 01:59:19 +00:00
Collecting
a3de20eea5 add: Nx-Optimizer
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-17 01:57:08 +00:00
Collecting
c575341d1e 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-16 23:27:59 +00:00
collecting
5905d0bcff fix(multiplayer): Race Condition during Packet Discovery 2026-01-16 18:26:21 -05:00
Collecting
47edb00351 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-16 22:43:48 +00:00
collecting
0b5701624a Service: Sockets: Fix busy-waiting CPU starvation and Close/Socket race conditions 2026-01-16 17:42:54 -05:00
Collecting
79d4fd8e31 I should of looked at the compiler before pushing last fix
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-16 20:16:45 +00:00
Collecting
1b2363ba81 fix(mods): romfs/exefs regression from Mod Downloader
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-16 20:10:20 +00:00
Collecting
36baa59393 Update src/core/file_sys/patch_manager.cpp
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-16 12:17:30 +00:00
Collecting
d5b8d08ebc Work Smarter, Not Harder
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-16 11:48:47 +00:00