Commit Graph

10653 Commits

Author SHA1 Message Date
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
Zephyron
cc60303b11 feat(core): Update HOS and NintendoSDK version constants
- Bumps HOS version from 20.1.5 to 21.0.0
- Updates the corresponding `VERSION_HASH`, `DISPLAY_VERSION`, and
  `DISPLAY_TITLE` strings.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-12-26 17:02:15 +10:00
Zephyron
aad942cf25 fix(network): revert to legacy packet format for emulator compatibility
Remove the 'reliable' boolean field from LDNPacket and ProxyPacket
structs and all associated serialization/deserialization logic.
All packets now use reliable delivery by default via ENet layer,
matching the legacy format for full backward compatibility.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-12-26 16:54:31 +10:00
Zephyron
14c97aebb7 fix(ldn): improve packet validation and debug logging
- Add size validation before memcpy for Connect/Disconnect packets
- Allow empty data for Scan packets (Type 0) which have no payload
- Add debug logging for ScanResp packets including BSSID and results
- Fix MacAddress indexing to use .raw[] instead of [] operator

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-12-26 16:53:26 +10:00
Zephyron
499b3c1a59 fix(fatal): handle unknown error module 359 gracefully
Handle error 2359-2618 (module 359, description 2618) gracefully
by logging a warning instead of crashing, similar to module 56.
This allows games like SSBU to continue execution when encountering
this error code.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-12-26 16:52:33 +10:00