Collecting
ac777fabd9
fix/controller-overlay-toggle
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-11-01 21:06:32 +00:00
Collecting
60f314daef
add/controller-overlay-toggle
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-11-01 21:03:34 +00:00
Collecting
0d5506030b
fix/hotkey-memory
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-11-01 21:02:55 +00:00
Collecting
45cfbbeb6b
fix/hotkeys
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-11-01 21:02:21 +00:00
Collecting
e495ef5148
fix/hotkeys
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-11-01 21:01:39 +00:00
Zephyron
d2f2d50e28
build: add Qt6 TLS plugin copying to CopyCitronQt6Deps
...
- Configure Qt6_TLS_DIR and TLS destination paths
- Copy TLS plugins using windows_copy_files utility
- Support Debug and Release configurations
Signed-off-by: Zephyron <zephyron@citron-emu.org >
2025-11-01 23:17:54 +10:00
Zephyron
5af5ba2d0e
chore(CMake): Remove
...
Signed-off-by: Zephyron <zephyron@citron-emu.org >
2025-11-01 22:10:50 +10:00
Zephyron
3d0ccc1db1
Fix Windows auto updater with deferred update helper and TLS support
...
Windows auto updater failed due to:
1. File locking - can't overwrite running .exe files
2. Missing Qt 6 TLS plugins - can't connect via HTTPS
Solution:
- Implement helper batch script that applies updates after app exits
- Automate TLS plugin copying in CMake (qschannelbackend.dll, qopensslbackend.dll)
- Add enhanced SSL debugging and error messages
Windows updates now work. Linux continues to work as before.
Signed-off-by: Zephyron <zephyron@citron-emu.org >
2025-11-01 21:56:37 +10:00
Zephyron
ef14da5014
Merge pull request 'Fix Windows auto updater file locking issue' ( #12 ) from fix/windows-updater-helper into main
...
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/12
2025-11-01 09:19:18 +00:00
Zephyron
0ce89925a2
Fix Windows auto updater file locking issue
...
Implement deferred update mechanism using a helper batch script that applies
updates after the application exits, avoiding Windows file locking issues.
On Windows, the updater now:
- Stages update files and creates a helper batch script
- Launches the script as a detached process
- Exits the application
- The script waits for app closure, applies updates, and restarts Citron
Linux AppImage updates continue to work as before with the existing method.
Signed-off-by: Zephyron <zephyron@citron-emu.org >
2025-11-01 19:19:02 +10:00
Zephyron
a462e66927
Merge pull request 'hle: Improve network service implementations and add newer firmware stubs' ( #11 ) from feature/network-service-enhancements into main
...
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/11
2025-11-01 08:47:46 +00:00
Zephyron
ec670d881c
hle: Improve network service implementations and add newer firmware stubs
...
AM (Application Manager):
- Implement GetPseudoDeviceId with deterministic UUID generation
- Generate persistent device ID based on program ID for online play
LDN (Local Network):
- Implement stub for Reject (cmd 205)
- Implement stub for ClearAcceptFilter (cmd 209)
- Implement stub for ConnectPrivate (cmd 303)
NIFM (Network Interface):
- Fix RequestState enum values (Invalid=0, Free=1) per switchbrew
- Add ConnectionConfirmationOption enum
- Update NotSubmitted references to Free state
- Implement 13 new stub functions for firmware 18.0.0-20.0.0+
- Reduce log verbosity for frequently-called functions
BSD (Sockets):
- Improve RegisterClient to parse LibraryConfigData structure
- Enhance socket operation logging (Socket, Bind, Connect)
- Add detailed error logging for bind/connect failures
- Implement stubs for Unknown36-38 (18.0.0+)
- Add firmware version comments for commands
Signed-off-by: Zephyron <zephyron@citron-emu.org >
2025-11-01 18:47:15 +10:00
Zephyron
9a5b75db83
video_core: Add mip level clamping for CTGP-DX compatibility
...
Fixes crashes when games/mods request more than MAX_MIP_LEVELS (14).
Implements defensive clamping at four critical points in the texture
cache (CalculateLevelSizes, CalculateMipLevelOffsets,
CalculateMipLevelSizes, CalculateLevelBytes) to gracefully handle
excessive mip level requests.
When >14 mip levels are requested:
- Logs informative warning (debug builds)
- Clamps to MAX_MIP_LEVELS
- Continues execution safely
This improves upon Eden's solution by adding actual bounds checking
instead of just converting ASSERT to ASSERT_MSG.
Fixes: CTGP-DX (Mario Kart 8 Deluxe mod)
Co-authored-by: JPikachu <jpikachu.eden@gmail.com >
Co-authored-by: JPikachu <jpikachu@eden-emu.dev >
Co-authored-by: MaranBr <maranbr@outlook.com >
Signed-off-by: Zephyron <zephyron@citron-emu.org >
2025-11-01 16:22:25 +10:00
Zephyron
6143dec02a
Merge pull request 'kernel: Implement code address offset for Skyline compatibility' ( #10 ) from kernel/skyline-32bit-code-offset into main
...
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/10
2025-11-01 05:45:48 +00:00
Zephyron
76e963bfe7
kernel: Implement code address offset for Skyline compatibility
...
Add support for the Skyline 32-bit modding framework by implementing
a code address offset and improving memory state verification.
Changes:
- Add CodeStartOffset constant (0x500000) applied to 32-bit code
address space types (Is32Bit and Is32BitNoMap) in KProcess::LoadFromMetadata
- Add debug logging for 32-bit syscall argument tracking in
SetProcessMemoryPermission, MapProcessCodeMemory, and
UnmapProcessCodeMemory wrapper functions
- Replace CheckMemoryStateContiguous with CheckMemoryState in
KPageTableBase::UnmapCodeMemory for more flexible memory state
verification
This implementation enables compatibility with:
- Skyline 32-bit modding framework
- CTGP-DX (Mario Kart 8 Deluxe mod)
- Other homebrew using 32-bit Skyline
Based on similar fixes in Ryujinx (commit 5e9678c8fe) and Eden emulator.
Co-authored-by: JPikachu <jpikachu.eden@gmail.com >
Co-authored-by: JPikachu <jpikachu@eden-emu.dev >
Signed-off-by: Zephyron <zephyron@citron-emu.org >
2025-11-01 15:44:21 +10:00
Collecting
5b3a7301a9
Merge pull request 'feat(qt): Adapt configuration dialogs to system theme' ( #9 ) from feat/light-dark-fix into main
...
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/9
2025-11-01 03:09:52 +00:00
Collecting
84035e9bc2
fix/configuration-light-dark
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-11-01 03:06:31 +00:00
Collecting
66b150f78d
fix/properties-light-dark
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-11-01 03:05:50 +00:00
Collecting
0068a8a0a5
fix/properties-light-dark
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-11-01 03:04:37 +00:00
Collecting
d3bfde9579
fix/dialog-light-dark
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-11-01 03:03:48 +00:00
Collecting
7af2e7e6f5
Merge pull request 'feat(input): Add Controller Color Customization & Gyro Toggle for Controller Overlay' ( #5 ) from feat/controller-custom-color into main
...
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/5
2025-10-31 05:44:21 +00:00
Collecting
de4b93d147
feat: Toggle Gyro for Controller Overlay
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-10-31 05:41:29 +00:00
Collecting
35e27a52c4
feat: Choose Controller Color & Toggle Gyro
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-10-31 05:40:39 +00:00
Collecting
dc82d22e48
feat: Toggle Gyro for Controller Overlay
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-10-31 05:39:33 +00:00
Collecting
e1f4815c0c
feat: Add Controller Color & Toggle Gyro
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-10-31 05:38:22 +00:00
Collecting
bb98468168
feat: Controller Color & Toggle Overlay
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-10-31 05:37:03 +00:00
Collecting
a6b038df43
feat: Toggle Gyro for Controller Overlay
2025-10-31 05:36:09 +00:00
Collecting
59bba7848d
feat/fix: Choose Color, Toggle Gyro & Deadzone Fix
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-10-31 05:35:35 +00:00
Collecting
1315e238b1
feat: Add Choose Color & Toggle Gyro for Controller Overlay
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-10-31 05:34:41 +00:00
Collecting
141d9add2e
Feat: Custom Controller Colors & Toggle Gyro
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-10-31 05:33:41 +00:00
Collecting
65fd31f275
feat: Gyro Toggle & Choose Color
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-10-31 05:32:24 +00:00
Zephyron
453fc0d8af
cmake: Fix Android external download URL to use main branch
...
The fix simplifies the logic to always use the main branch for Android
builds, since architecture is already encoded in the package filenames.
Signed-off-by: Zephyron <zephyron@citron-emu.org >
2025-10-31 15:07:45 +10:00
Zephyron
237413fceb
Update README.md
...
Signed-off-by: Zephyron <zephyron@noreply.localhost >
2025-10-30 10:48:39 +00:00
Zephyron
07aa8db9dd
Merge pull request 'feat(ldn): Implement missing Account and LDN services from SwitchBrew documentation' ( #2 ) from acc-ldn-switchbrew-implementation into main
...
Reviewed-on: https://git.citron-emu.org/Citron/Emulator/pulls/2
2025-10-30 09:33:28 +00:00
Zephyron
68a8b07f78
feat(ldn): Implement missing Account and LDN services from SwitchBrew documentation
...
Implements 150+ missing functions across Account (acc:*) and LDN (ldn:*, lp2p:*)
services based on official SwitchBrew documentation.
Account Services (acc:su, acc:e, acc:u0, acc:u1, acc:e:u1, acc:e:u2, dauth:0):
- Add 70+ missing functions including notifiers, async operations, and OAuth procedures
- Implement GetUserRegistrationNotifier, GetUserStateChangeNotifier, GetProfileUpdateNotifier
- Add thumbnail management (LoadSaveDataThumbnail, GetSaveDataThumbnailExistence)
- Implement user management (DeleteUser, SetUserPosition, CancelUserRegistration)
- Add Nintendo Account procedures (CreateFloatingRegistrationRequest, etc.)
- Implement device migration functions (19.0.0+, 20.0.0+)
- Add debug functions for user qualification and token cache management
IManagerForApplication/SystemService (19.0.0+ compatibility):
- Rename LoadIdTokenCache (cmd 3) to LoadIdTokenCacheDeprecated
- Add new LoadIdTokenCache (cmd 4) with updated signature
- Add GetNintendoAccountUserResourceCache (cmd 136)
LDN Services (ldn:m, ldn:s, ldn:u):
- Add 80+ missing functions across all LDN interfaces
- Implement CreateClientProcessMonitor (cmd 1) for ldn:s and ldn:u (18.0.0+)
- Create IClientProcessMonitor service with RegisterClient function
- Implement IMonitorService functions (GetNetworkInfoForMonitor, GetIpv4AddressForMonitor, etc.)
- Implement ISystemLocalCommunicationService (GetState, Scan, Connect, Initialize, etc.)
LP2P Services (lp2p:app, lp2p:sys, lp2p:m):
- Implement ISfService functions (Initialize, Scan, CreateGroup, etc.)
- Implement ISfServiceMonitor (GetGroupInfo, GetMembers, AttachJoinEvent, etc.)
- Implement ISfMonitorService (GetLinkLevel)
Technical Changes:
- Change non-domain (C<>) to domain (D<>) functions in LDN to fix crashes
- Add enhanced error messaging to cmif_serialization.h for debugging
- Create client_process_monitor.cpp/.h for IClientProcessMonitor
- Add concrete async context implementations (EnsureSignedDeviceIdentifierCacheAsyncInterface, etc.)
- Add Kernel::KReadableEvent forward declarations
All functions properly stubbed with appropriate logging for future implementation.
References:
- https://switchbrew.org/wiki/Account_services
- https://switchbrew.org/wiki/LDN_services
Fixes 'Pokemon: Legends Z-A' LDN initialization crashes and improves compatibility
with games using Account and Local Network services.
Signed-off-by: Zephyron <zephyron@citron-emu.org >
2025-10-30 19:32:07 +10:00
Zephyron
57783503d1
DownloadExternals: use new raw/branch URLs select Android branch by ABI
...
Signed-off-by: Zephyron <zephyron@citron-emu.org >
2025-10-30 17:27:23 +10:00
Collecting
981436bfc0
refactor/main.cpp
...
Compiler errors with a couple different indentations in the file alongside me accidentally adding the LOG_INFO (which *did* compile for Linux, but was alerted by MSVC) either way, done
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-10-30 05:38:52 +00:00
Collecting
d6294e6b99
revert 38ef9a30ec
...
revert fix: CI Error
Refactoring error (with another, need to indent)
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-10-30 05:37:25 +00:00
Collecting
38ef9a30ec
fix: CI Error
...
Refactoring error
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-10-30 05:16:23 +00:00
Collecting
6bdd091db9
revert a8af280547
...
revert test: CI
Cause of old external revert, have to revert this as well
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-10-30 00:23:09 +00:00
Collecting
a8af280547
test: CI
...
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-10-30 00:18:39 +00:00
Zephyron
8293b753d0
revert ff51046d16
...
revert fix: FFmpeg
Testing for CI due to Android & Windows failing, similar issue.
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-10-30 00:15:04 +00:00
Zephyron
15c9cf2a10
revert 9d6a48b9c8
...
revert feat(build): Add external binaries as submodules for all platforms
2025-10-30 00:12:17 +00:00
Zephyron
260e1a26d5
Update CMakeModules/DownloadExternals.cmake
...
Signed-off-by: Zephyron <zephyron@noreply.localhost >
2025-10-30 00:11:32 +00:00
collecting
9d6a48b9c8
feat(build): Add external binaries as submodules for all platforms
2025-10-29 18:51:25 -04:00
Collecting
bb59a289c2
re-add/LOG_INFO
...
Old version I replaced removed title_ids & this log information so just re-adding.
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-10-29 22:12:26 +00:00
Collecting
5a7c572292
revert ff51046d16
...
revert fix: FFmpeg
Testing for CI due to Android & Windows failing, similar issue.
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-10-29 11:41:33 +00:00
Collecting
ff51046d16
fix: FFmpeg
...
Testing for CI due to Android & Windows failing, similar issue.
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-10-29 11:16:33 +00:00
Collecting
92fdc23da7
fix: title_ids.h
...
Accidentally removed, now back.
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-10-29 11:07:24 +00:00
Collecting
aed338b44a
update/license-link
...
Forgot about this sneaky fella when updating Recent Commits.
Signed-off-by: Collecting <collecting@noreply.localhost >
2025-10-29 09:59:05 +00:00