Commit Graph

27547 Commits

Author SHA1 Message Date
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
Zephyron
23352d4a3f fix(dynarmic): resolve fastmem_pointer type compatibility issues
- Convert fastmem_pointer assignments from raw pointers to uintptr_t
- Replace nullptr comparisons with std::optional::has_value()
- Use std::nullopt instead of nullptr for optional types
- Update Dynarmic submodule to commit 9d4582339

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-27 20:22:04 +10:00
Zephyron
9e6956a93f Fix Android build by conditionally excluding boost_process component
- Add Android check to only request boost context component on Android

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-27 11:53:04 +10:00
Zephyron
274b027668 fix: allow Insane VRAM mode persistence
- Update VRAM setting max value from HighEnd to Insane
- Add TAA translation for UI
- Fixes issue where Insane VRAM reverts to HighEnd

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-27 11:48:01 +10:00
Zephyron
f75cf14c1f fix(hid): Add SixAxis sensor validation and error handling
- Add parameter validation for joy_xpad_id, device_index, and npad_id
- Implement proper SixAxis resource manager integration with null checks
- Add safe fallback values to prevent crashes in motion sensor games
- Enhance error handling and logging for SixAxis sensor operations
- Address crashes in games like TOTK 1.4.2 that use motion sensors

Resolves SixAxis sensor crashes by following SwitchBrew HID service
specifications and adding proper parameter validation.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-27 10:17:44 +10:00
Zephyron
b6cb5c06e0 Merge branch 'audio-renderer-rev13-support' into 'main'
feat(audio): Add REV13 audio renderer support

See merge request citron/emulator!55
2025-09-27 10:14:18 +10:00
Zephyron
2fa3501ff4 feat(audio): Add REV13 audio renderer support
- Implement compressor statistics collection and tracking
- Add explicit splitter volume reset functionality
- Implement REV13 audio device notification commands
- Update feature support system to revision 13
- Maintain backward compatibility with older revisions

Resolves REV13 audio renderer feature requirements with proper
Nintendo Switch development practices and SwitchBrew compatibility.

REF: a2c0035013
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-27 10:13:32 +10:00
Zephyron
0001539f4a Merge branch 'Add_Object_Fix' into 'main'
fix: create a Service::Set::SerialNumber object

See merge request citron/emulator!54
2025-09-27 08:52:16 +10:00
collecting
c6a2a2a728 fix: create a Service::Set::SerialNumber object 2025-09-26 13:56:09 +00:00
Zephyron
1e8dce4f5e Merge branch 'qt6-aqtinstall-migration' into 'main'
feat: Implement Qt6 migration with aqtinstall 3.3.0

See merge request citron/emulator!52
2025-09-26 19:46:31 +10:00
Zephyron
4e377dde5a feat: Implement Qt6 migration with aqtinstall 3.3.0
- Migrate from Qt5 to Qt6.7.3 using aqtinstall v3.3.0
- Add comprehensive Qt6 API compatibility updates
- Implement responsive UI with High DPI scaling support
- Add MSVC runtime library configuration for consistency
- Update touch/mouse event handling for Qt6 APIs
- Fix locale handling (countryToString → territoryToString)
- Update string size methods (count() → size())
- Remove deprecated Qt5 high DPI attributes
- Add new CopyCitronQt6Deps.cmake for Qt6 dependency management
- Update CMake configuration for Qt6-only approach
- Add aqt_config.ini with mirror configuration for reliable downloads

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-26 19:42:30 +10:00
Zephyron
42ee9916b7 chore: Set version to 0.7.1 in title bar and about dialog
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-26 18:01:41 +10:00
Zephyron
5871f4b418 revert: af223e445f && 5ed7df1e68
- Needs To Be A Branch

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-26 16:55:32 +10:00
Zephyron
7acd55a005 Merge branch 'collecting-main-patch-05267' into 'main'
Audio Stability Fixes

See merge request citron/emulator!51
2025-09-26 15:51:13 +10:00
Zephyron
704c886d3d Merge branch 'collecting-main-patch-77704' into 'main'
Audio Stability Issues

See merge request citron/emulator!50
2025-09-26 15:51:10 +10:00
Zephyron
5241b9d172 Merge branch 'collecting-main-patch-02332' into 'main'
Audio Stability Fixes

See merge request citron/emulator!49
2025-09-26 15:51:03 +10:00
Zephyron
51a0e1fcc8 Merge branch 'collecting-main-patch-75734' into 'main'
Crash-on-Exit from ServiceManager Null Pointer

See merge request citron/emulator!48
2025-09-26 15:50:59 +10:00
Zephyron
493e9b3965 Merge branch 'collecting-main-patch-15392' into 'main'
Initialize variable

See merge request citron/emulator!47
2025-09-26 15:50:55 +10:00
Zephyron
122e550e45 Merge branch 'collecting-main-patch-33675' into 'main'
Memory Leak Fix

See merge request citron/emulator!46
2025-09-26 15:50:51 +10:00
collecting
97cd9112a1 Audio Stability Fixes 2025-09-26 04:40:01 +00:00
collecting
38a189c0af Audio Stability Issues 2025-09-26 04:30:47 +00:00
collecting
1c48d8fb7d Audio Stability Fixes 2025-09-26 04:27:01 +00:00
collecting
f99fc514df Crash-on-Exit from ServiceManager Null Pointer 2025-09-26 04:24:23 +00:00
collecting
fe88ad18a7 Memory Leak Fix 2025-09-26 04:20:43 +00:00
collecting
f18c6f09e1 Crash-on-Exit from ServiceManager Null Pointer 2025-09-26 03:33:32 +00:00
collecting
3a517f15da Initialize Variable 2025-09-26 02:37:40 +00:00
collecting
b65759e413 Initialize variable 2025-09-26 02:32:43 +00:00
collecting
0993d4d86f Memory Leak Fix 2025-09-26 02:31:32 +00:00
collecting
9ffa26f177 Memory Leak Fix 2025-09-26 02:29:22 +00:00
Zephyron
5ed7df1e68 audio_core: Implement further Audio REV 15 support for SDK 19.0.0+ compatibility
This commit adds further Audio REV 15 support to enable compatibility with games
compiled against Nintendo Switch SDK 19.0.0 and later versions.

Fixes: Audio compatibility issues with SDK 19.0.0+ games
Resolves: Missing Audio REV 15 feature support
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-25 16:52:04 +10:00
Zephyron
1bcabda885 fix: resolve UpdaterDialog linker errors when auto updater disabled
Wrap updater includes and usage in CITRON_USE_AUTO_UPDATER guards to prevent
unresolved external symbol errors when the updater functionality is not enabled.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-25 16:22:16 +10:00
Zephyron
f966f84fd7 Merge branch 'collecting-main-patch-52745' into 'main'
Remove unused variable

See merge request citron/emulator!38
2025-09-24 15:54:45 +10:00
Zephyron
385e97e850 Merge branch 'collecting-main-patch-57290' into 'main'
Edit main.cpp

See merge request citron/emulator!37
2025-09-24 15:54:21 +10:00
Zephyron
41cd79faf0 Merge branch 'collecting-main-patch-00739' into 'main'
Edit CMakeLists.txt w/ Citron Updater

See merge request citron/emulator!36
2025-09-24 15:53:39 +10:00
Zephyron
bb87388ba9 Merge branch 'collecting-main-patch-23223' into 'main'
std::vector::at() crash fix

See merge request citron/emulator!35
2025-09-24 15:53:24 +10:00
collecting
90e39d3c3b Remove unused variable 2025-09-24 04:51:15 +00:00
collecting
4ec8ddbcf7 Edit main.cpp 2025-09-24 04:35:09 +00:00