Commit Graph

27333 Commits

Author SHA1 Message Date
Zephyron
a1c7d2fddb Add new file 0.7.1 2025-10-03 15:05:41 +10:00
Zephyron
98046a771e Merge branch 'fixDRPTimer' into 'main'
fix: Discord Rich Presence Timer

See merge request citron/emulator!76
2025-10-03 10:54:09 +10:00
Zephyron
2a23a575cd Merge branch 'fixPropertiesWindowScaling' into 'main'
fix: Properties Window Scaling

See merge request citron/emulator!75
2025-10-03 10:53:00 +10:00
collecting
2d20ffeb06 fix: Discord Presence Timer 2025-10-02 23:59:25 +00:00
collecting
c456f521e9 fix: Discord Rich Presence Timer 2025-10-02 23:58:53 +00:00
collecting
f59aa1e025 fix: Properties Scaling 2025-10-02 23:37:46 +00:00
collecting
cca68bc42e fix: Properties Scaling 2025-10-02 23:37:01 +00:00
collecting
a4e1bb9537 fix: Properties Scaling 2025-10-02 23:36:20 +00:00
Zephyron
ca54b8da0d Merge branch 'boost_process_fix' into 'main'
fix: defer Boost.Process compile definition to after core target creation

See merge request citron/emulator!74
2025-10-02 19:09:14 +10:00
collecting
4235d15480 fix: resolve CMake target_compile_definitions error for core target 2025-10-02 09:03:45 +00:00
collecting
f2f8cdbe80 fix: Lower core to find Process 2025-10-02 08:03:15 +00:00
Zephyron
19452275cc Merge branch 'json_patch' into 'main'
fix: Discord Rich Presence Patch

See merge request citron/emulator!73
2025-10-02 17:18:51 +10:00
Zephyron
254dc7e160 Merge branch 'discord_presence_patch' into 'main'
add: rapidjson compiler patch

See merge request citron/emulator!72
2025-10-02 17:18:46 +10:00
collecting
a163d063ef fix: Discord Rich Presence Patch 2025-10-02 07:18:01 +00:00
collecting
f071b8fecf add: rapidjson compiler patch 2025-10-02 07:16:59 +00:00
Zephyron
d0c6253d11 Merge branch 'discord_presence' into 'main'
Edit discord_impl.cpp

See merge request citron/emulator!71
2025-10-02 17:16:29 +10:00
Zephyron
f3e1c0f4f6 Merge branch 'presence_fix' into 'main'
Edit discord_impl.h

See merge request citron/emulator!70
2025-10-02 17:16:26 +10:00
Zephyron
5c1412c236 Merge branch 'discord_presence_compile' into 'main'
patches

See merge request citron/emulator!69
2025-10-02 17:16:05 +10:00
Zephyron
fa595ebe5a Merge branch 'boost_process_fixes' into 'main'
fix: boost_process Linux issue

See merge request citron/emulator!67
2025-10-02 17:15:52 +10:00
Zephyron
ca3f88bb59 Merge branch 'boost_process_fix' into 'main'
fix: boost_process Linux issue

See merge request citron/emulator!66
2025-10-02 17:15:49 +10:00
Zephyron
c5391acb11 Merge branch 'boost_process' into 'main'
fix: boost_process optional component

See merge request citron/emulator!65
2025-10-02 17:15:45 +10:00
collecting
af86d09b45 Edit discord_impl.cpp 2025-10-02 07:10:58 +00:00
collecting
1b31741f03 Edit discord_impl.h 2025-10-02 07:10:08 +00:00
collecting
6b9448a451 Add new directory 2025-10-02 07:04:35 +00:00
collecting
50da0bcca6 fix: boost_process Linux issue 2025-10-01 16:53:13 +00:00
collecting
964df7ef38 fix: boost_process Linux issue 2025-10-01 16:51:05 +00:00
collecting
ac902aa7c9 fix: boost_process optional component 2025-10-01 16:50:08 +00:00
Zephyron
26f93ad8ad hle: service: Complete SSL/TLS service implementation
ISslConnection (36/36 commands now implemented):
- Added Peek, Poll for connection state monitoring
- Implemented GetVerifyCertError and GetVerifyCertErrors for certificate validation
- Added GetNeededServerCertBufferSize for buffer management
- Implemented session cache functions: GetSessionCacheMode, FlushSessionCache
- Added renegotiation support: SetRenegotiationMode, GetRenegotiationMode
- Implemented GetOption and GetCipherInfo for connection information
- Added ALPN support: SetNextAlpnProto, GetNextAlpnProto
- Implemented DTLS functions: SetDtlsSocketDescriptor, GetDtlsHandshakeTimeout
- Added SetPrivateOption for extended options
- Implemented SRTP functions: SetSrtpCiphers, GetSrtpCipher
- Added ExportKeyingMaterial for external key usage
- Implemented timeout functions: SetIoTimeout, GetIoTimeout

ISslService:
- Added GetContextCount, SetDebugOption, GetDebugOption, ClearTls12FallbackFlag

ISslContext:
- Implemented GetOption, RemoveServerPki, RemoveClientPki, RegisterInternalPki,
  AddPolicyOid, ImportCrl, RemoveCrl, ImportClientCertKeyPki, GeneratePrivateKeyAndCert

ISslContextForSystem:
- Fully implemented all 15 commands (CreateConnectionEx and all base functions)

ISslConnection getter functions:
- Added GetSocketDescriptor, GetHostName, GetVerifyOption, GetIoMode

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-10-01 23:00:47 +10:00
Zephyron
40464551ed hle: service: Properly implement SSL services
Implements comprehensive SSL/TLS services based on Switch Brew documentation.

Changes:
- ISslService: Added GetContextCount, SetDebugOption, GetDebugOption,
  and ClearTls12FallbackFlag
- ISslContext: Implemented GetOption, RemoveServerPki, RemoveClientPki,
  RegisterInternalPki, AddPolicyOid, ImportCrl, RemoveCrl,
  ImportClientCertKeyPki, and GeneratePrivateKeyAndCert
- ISslContextForSystem: Fully implemented all 15 commands (was all stubs)
- ISslConnection: Added GetSocketDescriptor, GetHostName, GetVerifyOption,
  and GetIoMode

All SSL-related services now have complete command coverage with proper
stub implementations for emulator compatibility.

Reference: https://switchbrew.org/wiki/SSL_services
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-10-01 22:46:31 +10:00
Zephyron
33a7836d4f hle: service: Properly implement NIM services
Implements comprehensive NIM (Network Install Manager) services based on
the official Switch Brew documentation.

Changes:
- Added async interface classes: IAsyncValue, IAsyncResult,
  IAsyncProgressResult, and IAsyncData for handling asynchronous operations
- Updated main nim service with all proper command names (commands 0-154)
  - Replaced "Unknown" placeholders (84-134) with correct function names
  - Added newer firmware commands (135-154) including download tasks,
    application icon requests, and delivery info operations
  - Fixed command 36: ListApplyDeltaTaskContentMeta (was duplicate name)
- Extended nim:shp service with Nintendo Account linking commands (600-601)
- Added nim:ecas command 5: GetCommonEcasSystemEventForReceivingBackgroundDownloadTask
- All services (nim, nim:eca, nim:shp, nim:ecas, ntc) verified and properly registered

This implementation accounts for all NIM-related functions across firmware
versions, providing proper stub handlers for emulator compatibility.

Reference: https://switchbrew.org/wiki/NIM_services
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-10-01 22:28:17 +10:00
Zephyron
9cd1022c8f Merge branch 'collecting-main-patch-40725' into 'main'
feat: Wayland UI Linux Option: Performance Optimizations

See merge request citron/emulator!63
2025-10-01 22:17:13 +10:00
Zephyron
b903fccf84 Merge branch 'is_wayland_platform' into 'main'
fix: is_wayland_platform flag to prioritize low-latency

See merge request citron/emulator!62
2025-10-01 22:17:07 +10:00
Zephyron
c7d0afdb3f Merge branch 'Untoggle_UI_Wayland' into 'main'
fix: Untoggle UI & Wayland Qt Functions

See merge request citron/emulator!61
2025-10-01 22:16:58 +10:00
Zephyron
44057a1b2b Merge branch 'wayland_flag' into 'main'
create: Flag for UI Layer

See merge request citron/emulator!60
2025-10-01 22:16:53 +10:00
Zephyron
245571534d Merge branch 'VRAM_Wayland_Fix' into 'main'
fix: Drag-to-move Issue (Wayland)

See merge request citron/emulator!58
2025-10-01 22:16:47 +10:00
Zephyron
796c2bbab3 Merge branch 'PerfOverlay_Wayland_Fix' into 'main'
fix: Ability to Move Performance Overlay (Wayland)

See merge request citron/emulator!57
2025-10-01 22:16:42 +10:00
Zephyron
97602d0389 Merge branch 'add-low-gpu-accuracy' into 'main'
feat: add Low GPU Accuracy setting for maximum performance

See merge request citron/emulator!64
2025-10-01 21:46:08 +10:00
Zephyron
9090a24c2e feat: add Low GPU Accuracy setting for maximum performance
Implements a new "Low" GPU accuracy level that prioritizes performance
over accuracy by aggressively cutting corners in GPU emulation.

Changes:
- Add GpuAccuracy::Low enum and setting infrastructure
- Implement IsGPULevelNormal() helper function
- Skip texture cache checks and query operations
- Use unsafe memory reads for DMA operations
- Disable fence delays and query precision
- Add UI support for desktop (Qt) and Android

Performance optimizations:
- Skips texture cache coherency checks (vk/gl_rasterizer.cpp)
- Non-blocking query synchronization (query_cache.h)
- Unsafe memory operations (dma_pusher.cpp)
- No macro parameter refresh (maxwell_3d.cpp)
- Immediate fence signaling (fence_manager.h)
- Non-precise Vulkan queries (vk_query_cache.cpp)

Ideal for lower-end hardware and users prioritizing FPS over accuracy.
Works on both desktop and Android platforms.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-10-01 21:45:23 +10:00
Zephyron
746f748973 nim: Add CreateServerInterface2
- As Seen Via Logs "[  46.275081] Debug <Critical> core\hle\service\service.cpp:operator ():78: Assertion Failed!
Unknown / unimplemented function '5': port='nim:eca' cmd_buf={[0]=0x6, [1]=0x8000000C, [2]=0x3, [3]=0x0, [4]=0x4F434653, [5]=0x2001C4, [6]=0x0, [7]=0x0, [8]=0x49434653}"
- Thankyou Dr.Stug <dr.stug@citron-emu.org>

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-10-01 21:00:31 +10:00
collecting
f2474470cd fix: Untoggle UI & Wayland Fixes 2025-09-29 05:15:48 +00:00
collecting
935e04370a feat: Wayland UI Linux Option: Performance Optimizations 2025-09-29 04:48:30 +00:00
collecting
fe9683356b fix: wayland_flag 2025-09-29 04:45:47 +00:00
collecting
ce2909299f fix: is_wayland_platform flag to prioritize low-latency 2025-09-29 04:11:44 +00:00
collecting
37e5c67616 fix: Untoggle UI & Wayland Qt Functions 2025-09-29 04:08:29 +00:00
collecting
73b2ac113e create: Flag for UI Layer 2025-09-29 04:06:31 +00:00
collecting
2b73f6c817 fix: Drag-to-move issue w/ Wayland 2025-09-29 02:00:56 +00:00
collecting
528c18b008 fix: Ability to Move Performance Overlay (Wayland) 2025-09-29 01:19:22 +00:00
Zephyron
d627962408 cmake: exclude Boost::process on Android
Boost::process is not available on Android, causing build failures.
Conditionally link it only on non-Android platforms.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-27 21:39:28 +10:00
Zephyron
12b1e4b3ae Merge branch 'acc-u0-service-implementation' into 'main'
feat(acc): implement missing acc:u0 functions per SwitchBrew spec

See merge request citron/emulator!56
2025-09-27 21:23:50 +10:00
Zephyron
0ca82d134c feat(acc): implement missing acc:u0 functions per SwitchBrew spec
- Add function 52 (TrySelectUserWithoutInteraction)
- Implement stubbed functions with proper async context classes
- Fix constructor arguments and type conversion warnings

Resolves assertion failure for unimplemented function 52.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-27 21:21:17 +10:00