Commit Graph

24295 Commits

Author SHA1 Message Date
Collecting
c4fcf0dfc7 fix/dynamic-themes
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-11-02 04:36:42 +00:00
Collecting
fbaa366065 fix/dynamic-themes
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-11-02 04:35:43 +00:00
Collecting
f8bb1c70b0 fix/multiplayer-overlay-themes
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-11-02 04:35:00 +00:00
Collecting
49bc7e0c38 fix/dynamic-themes
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-11-02 04:33:58 +00:00
Collecting
bcf3dd36b8 fix/dynamic-themes
Helps change theme to update during emulation.

Signed-off-by: Collecting <collecting@noreply.localhost>
2025-11-02 04:32:21 +00:00
Collecting
c42a8ed7b8 fix/light-dark-themes
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-11-02 04:31:15 +00:00
Collecting
c48744092d fix/light-dark-themes
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-11-02 04:30:38 +00:00
Collecting
e4c1a003e3 fix/light-dark-themes
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-11-02 04:29:43 +00:00
Collecting
02dec9f461 fix/light-dark-themes
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-11-02 04:28:51 +00:00
Zephyron
988f294e94 chore: bump version to 0.10.0
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-11-02 13:38:49 +10:00
Collecting
bccddc82b5 fix/themes
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-11-02 02:06:08 +00:00
Collecting
755286cbbc fix/themes
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-11-02 02:05:39 +00:00
Collecting
3f3956ed8a fix/themes
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-11-02 02:04:42 +00:00
Collecting
7410c760e6 fix/themes
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-11-02 02:04:10 +00:00
Zephyron
bd17537b93 chore(updater): Add logging to diagnose update helper script creation
Helps debug why apply_update.bat may not be created in update_staging.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-11-02 11:27:59 +10:00
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
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
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
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
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
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
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
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
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