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
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
a819b230d0
fix(filesystem): Re-organize Path Ordering
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-23 23:25:39 +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
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
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
Collecting
ad35ac85ef
Typo buddy
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-17 10:07:56 +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
a380ba4c60
Remove Un-used Title IDs
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-17 09:00:03 +00:00
Collecting
7baf163539
add: Nx-Optimizer
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-17 02:00:20 +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
Collecting
31d0bca2da
fix: Cross-Platform Compiler Errors
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-16 09:13:45 +00:00
Collecting
bf17270fd6
Add Mod Installer Folder Logic
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-16 08:34:31 +00:00
Collecting
4f149e130c
socket_proxy.cpp: Add Mutex & Flush for Socket Protection
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-14 19:37:29 +00:00
Collecting
5a7a9c9bb8
bsd.cpp: Add Guards & Mutex for Socket Protection
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-14 19:36:36 +00:00
Collecting
062f5e4794
bsd.h: Add Table Mutex
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-14 19:35:54 +00:00
Collecting
0bec953153
fix(sockets): Clear Socket Data Properly for Initialization
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-11 08:12:40 +00:00
Collecting
2311ed2bdf
fix(sockets): SIGSEGV & Socket Handling
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-11 08:11:38 +00:00
Collecting
64a2e656f6
fix(msvc/android): Compiler Errors for core.cpp
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-09 05:31:18 +00:00
Collecting
e324c5b10f
fix(core): Properly release memory when stopping emulation
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-09 04:46:36 +00:00
Collecting
f6b8535bef
fix(fs): prevent stack exhaustion in save mirroring recursion
...
- Moved the copy buffer to the heap via std::make_unique.
- Added explicit null-safety and system shutdown checks to mirroring logic.
- Hardened recursion guards during directory traversal to ensure stability.
Signed-off-by: Collecting <collecting@noreply.localhost >
2026-01-01 21:44:31 +00:00
Zephyron
d8c1cad245
fix(service/nvnflinger): implement GetBufferHistory to prevent game hangs
...
Return empty buffer history list instead of stubbing to allow games to
proceed past loading screens.
Signed-off-by: Zephyron <zephyron@citron-emu.org >
2025-12-31 16:58:05 +10:00
Collecting
678d6c095f
feat(fs): Cross-Compatible Emulator Save Pathing w/ Custom Save Paths
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-12-31 03:59:31 +00:00
Collecting
1ca62a0302
feat(fs): Cross-Compatible Emulator Save Pathing w/ Custom Save Paths
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-12-31 03:58:49 +00:00
Collecting
bbd74891fd
feat(fs): Cross-Compatible Emulator Save Pathing w/ Custom Save Paths
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-12-31 03:58:00 +00:00
Collecting
63e48d9191
feat(fs): Cross-Compatible Emulator Save Pathing w/ Custom Save Paths
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-12-31 03:57:15 +00:00
Collecting
4a81f4ff83
feat(fs): Cross-Compatible Emulator Save Pathing w/ Custom Save Paths
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-12-31 03:56:04 +00:00
Collecting
dee84bd8a3
feat(fs): Cross-Compatible Emulator Save Pathing w/ Custom Save Paths
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-12-31 03:55:03 +00:00
Collecting
4f4b3a9360
feat(fs): Cross-Compatible Emulator Save Pathing w/ Custom Save Paths
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-12-31 03:51:44 +00:00
Collecting
1820ed7815
feat(fs): Cross-Compatible Emulator Save Pathing w/ Custom Save Paths
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-12-31 03:50:58 +00:00
Collecting
2e8d5992a2
feat(fs): Implement Global Custom Save Path
...
Added a "Global Custom Save Path" configuration option in the Filesystem settings.
Implemented a prioritized save-loading hierarchy: Global Path (if enabled) > Per-Game Custom Path > Default NAND.
Introduced a non-destructive migration tool that allows users to consolidate their existing saves into the new global location.
The migration tool specifically prioritizes per-game custom saves over NAND saves to ensure the most up-to-date data is preserved during consolidation.
The migration process is copy-only; no data is deleted from the source directories, ensuring absolute user data safety.
Maintained compatibility with the existing "Backup Saves to NAND" feature, ensuring saves continue to be mirrored internally if configured.
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-12-29 01:12:50 +00:00
Collecting
8506c7c394
fix: Strict Clang Rule
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-12-26 22:46:50 +00:00
Collecting
499a82d3fd
fix: Strict Clang Rule
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-12-26 22:45:59 +00:00