Commit Graph

701 Commits

Author SHA1 Message Date
goeiecool9999
5520613dc3 nn_boss: Check for nullptr
Fixes a crash in Super Smash Bros.
2025-12-05 23:57:57 +01:00
Exzap
47b8d911b9 Latte: Instance count minimum is 1
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
Previously we skipped drawcalls when the instance count was set to zero. But the hardware register enforces a minimum of 1.

Fixes black screen in "Cubit The Hardcore Platformer Robot" which does all it's drawcalls with an hardcoded instance count of 0.
2025-11-28 10:34:52 +01:00
Carlos Estrague / Mrc_munir
5bf58c3d20
Vulkan: Added support for implementations which only expose host-visible buffers as device-local (#1737)
Some checks are pending
Build check / build (push) Waiting to run
Generate translation template / generate-pot (push) Waiting to run
2025-11-27 17:50:03 +01:00
Crementif
51c1e80ba7
Vulkan: Always embed shader source code when RenderDoc, Nsight or other frame debuggers are attached (#1733) 2025-11-27 17:46:42 +01:00
Joshua de Reeper
bb3fb81fb6
nsyshid/libusb: Don't attempt kernel driver detach on MacOS (#1736) 2025-11-27 17:42:00 +01:00
mazes-80
85c8f95b69
build: Fixes to how ENABLE_BLUEZ=OFF is handled (#1731) 2025-11-27 17:41:06 +01:00
mazes-80
921e91ed75
build: Add missing includes required for gcc 14 (#1730) 2025-11-27 17:39:54 +01:00
Crementif
ad89b5ef37 ppc: Add fabs instruction to assembler
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-11-23 16:52:47 +01:00
oltolm
eb95e63d94
UI: Fix warnings (#1729)
Some checks are pending
Build check / build (push) Waiting to run
Generate translation template / generate-pot (push) Waiting to run
2025-11-23 11:51:44 +01:00
Crementif
934cc3eb9d
UI: Improvements and fixes for Windows dark mode (#1728)
Some checks are pending
Build check / build (push) Waiting to run
Generate translation template / generate-pot (push) Waiting to run
2025-11-22 23:26:27 +01:00
oltolm
1382ee0381
build/cmake: Clean up target_link_libraries (#1726)
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-11-21 01:50:52 +01:00
oltolm
f5b19278d1
UI: fix Curl deprecation warnings (#1724)
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-11-18 05:14:59 +01:00
goeiecool9999
5390f9338c
GX2: Implement GX2SetTVGamma and GX2SetDRCGamma (#1682)
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-11-14 13:51:58 +01:00
Exzap
4fa0df6dcf nn_boss: Reimplementation
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
This is a full rewrite of our nn_boss (SpotPass) implementation. The previous code was based on a lot of incorrect guesswork so rather than updating that it made more sense to redo it all.

In short what changed:
- More API implemented than before, but nn_boss is very complex so we are still missing stuff (e.g. PlayReports and Task scheduling)
- Avoids redownloading nbdl files if they are already present locally (matches IOSU behavior)
- The API should be more robust in general and file hashes are now verified
- Emulated IOSU interface is compatible with nn_boss.rpl
- Added an UI option to clear the SpotPass cache
2025-10-30 16:24:09 +01:00
RedBlackAka
ef1c836290
UI: Move recent files into a submenu (#1707)
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-10-15 23:09:03 +02:00
SamoZ256
d54fb0ba78
arm: flush denormals to zero (#1696)
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-09-27 00:41:17 +02:00
oltolm
84f12eea65
UI: fix sorting after style switch (#1693)
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-09-22 01:25:57 +02:00
goeiecool9999
492116a6ba VPAD: report gamepad volume slider position even when audio playback is disabled or failed to init
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-09-11 13:15:40 +02:00
Michael Schroder
158c4e17a2
input: Add support for Wii Remote Plus by handling the inactive MotionPlus extension events (#1683)
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-09-09 21:05:06 +02:00
RedBlackAka
5a3809be16
windows: Add NSIS Windows installer (#1645)
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
License, user-install only and cleanups, mention in README
2025-09-05 12:40:51 +02:00
oltolm
9267e72ef9
refactor: Fix pugixml deprecation warnings (#1677)
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-08-30 20:39:48 +02:00
oltolm
6013ac1823
refactor: Fix trivial compiler warnings (#1675)
Some checks are pending
Build check / build (push) Waiting to run
Generate translation template / generate-pot (push) Waiting to run
2025-08-30 13:01:52 +02:00
oltolm
de4bf7c2c1
refactor: use concepts instead of SFINAE (#1652)
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-08-25 01:33:46 +02:00
Exzap
aeb3154257 debugger: Fix clipboard related crash
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
When copying an address from Cemu's debugger and pasting it into Cemu (anywhere) it would crash because the memory was released prematurely
2025-08-17 17:58:30 +02:00
Crementif
57fe7a53f1 UI: Disable alpha for game list icons
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-07-29 19:26:47 +02:00
Crementif
493b11e23a
UI: Refresh debugger when graphic packs are loaded or unloaded (#1653)
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-07-26 22:45:44 +02:00
Crementif
191357c518
UI: Fix minor dark mode issues (#1654)
* Fix black text after graphic pack is disabled in dark mode
* Fix background colour of audio debugger in dark mode
* Make placeholder game list icons black when using dark mode
* Some tweaks to the HotkeySettings window:
  - Make strings translatable
  - Makes the column headers bold for clarity
  - Makes the border darker on Linux, fixed by @goeiecool9999
  - Make the column headers have some padding to make it look nicer.
2025-07-26 22:45:28 +02:00
oltolm
55a735dcfa
Windows: Use modern API to set thread name if available (#1634)
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-07-25 06:10:14 +02:00
Crementif
08609591ae
UI: Upgrade to wxWidgets 3.3.1 and add dark mode support for Windows (#1647)
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-07-23 11:07:24 +02:00
Kevin Reinholz
4efa40c51c
Make it easy to build Cemu on BSD (#1632)
Some checks are pending
Build check / build (push) Waiting to run
Generate translation template / generate-pot (push) Waiting to run
2025-07-23 08:59:09 +02:00
oltolm
955ce9b973
UI: Fix static initialization in regards to hotkey map (#1643)
Some checks are pending
Build check / build (push) Waiting to run
Generate translation template / generate-pot (push) Waiting to run
2025-07-23 01:05:56 +02:00
Exzap
73b1dc1663 UI: Add architecture to auto-updater check 2025-07-20 23:10:13 +02:00
Exzap
c1c2962b66 Switch to a different Discord RPC implementation
discord-rpc has been unmaintained for years
2025-07-20 00:53:10 +02:00
Crementif
42ff3ad468 Fix debug assert that'd occur when closing the debug menu
Closing the settings window will immediately flush a temporary 0, 0 value it writes for the size which gets overwritten by the MainWindow a few seconds later.

In the code, -1 is considered the "off" state, and 0 is considered a "it should be saved, but only whenever the value is available". The save gamepad size/pos option already worked like this new behavior, since you might enable the option but not (previously) have it open yet. When encountering a 0 as the size, it'll just use the default window size of Cemu.
2025-07-16 16:14:55 +02:00
Crementif
2d74bcfbfa Fix regression with saving/loading child configs
Seems like a minor thing slipped under the radar in commit 67de63bed6
2025-07-16 16:08:09 +02:00
SSimco
67de63bed6
UI+build: Isolate wxWidgets code from non-GUI code (#1633) 2025-07-15 04:28:41 +02:00
Exzap
5f3c2816ec AX: Fix voice dropping 2025-07-08 19:01:20 +02:00
AnimeGIF
cdca5eaf78
UI: Add configurable hotkeys + a new fast forward hotkey (#1519) 2025-07-07 23:55:57 +02:00
goeiecool9999
e68c31e5fb Fix path text encoding creating shortcuts on windows
also fix a memory leak
(hopefully)
fixes: #1627
2025-07-02 13:31:21 +02:00
qurious-pixel
35ecfa3f54
build: Fix glslang dependency for Fedora 42 (#1622) 2025-07-01 05:00:11 +02:00
oltolm
6c392d5a22
UI: Fix assertions (#1623) 2025-06-30 00:15:23 +02:00
Colin Kinloch
9fb3c76b76
UI: Include wx button header for wxWidgets 3.3 compatibility (#1621) 2025-06-29 19:36:22 +02:00
Exzap
13ccf9a160 MMU: Fix bit width for 32bit MMIO reads
This resolves the ghost input issue in N64 virtual console
2025-06-28 21:43:40 +02:00
Exzap
7db2b77983 CPU: Implement more instructions in interpreter + various fixes
All of the changes are verified against real hardware, except for the byte string instructions
2025-06-28 14:54:31 +02:00
capitalistspz
0a121c97c7
Input: Detect Classic Controller Pro as Classic Controller (#1614) 2025-06-26 17:25:34 +02:00
Exzap
e91740cf29 coreinit: Make sure thread deallocation runs before join returns
Fixes crash in Coaster Crazy Deluxe
2025-06-22 23:34:41 +02:00
Exzap
4f4c9594ac GX2: Fix command buffer padding writing out of bounds 2025-06-22 22:17:29 +02:00
Exzap
5a4731f919 HLE: Make HLE table access thread-safe
Previous code could sometimes resize the vector while a read access was happening
2025-06-22 20:56:47 +02:00
Exzap
522b5ef260 UI: Correctly interpret supporter names as UTF8 2025-06-21 18:58:58 +02:00
capitalistspz
057ef4598e
cmake: Respect ENABLE_HIDAPI option (#1604) 2025-06-20 13:32:41 +02:00
Joshua de Reeper
4f4412b334
nsyshid: Play Emulated Portal Audio via Mono Audio (#1478) 2025-06-19 23:30:19 +02:00
Exverge
00ff5549d9
General aarch64 improvements & Apple Silicon support (#1255) 2025-06-18 10:36:05 +02:00
oltolm
c8ffff8f41
Replace basic_string<> of betype with std::vector (#1601) 2025-06-18 10:34:06 +02:00
oltolm
2f02fda9ea
Refactor to use Microsoft::WRL::ComPtr (#1599) 2025-06-16 23:25:06 +02:00
oltolm
da98aa4176
UI: Make code compatible with wxWidgets 3.3 (#1598) 2025-06-14 20:38:53 +02:00
oltolm
95dc590d2c
UI: Improve wxListView sorting and add sort order indicators (#1597)
Some checks are pending
Build check / build (push) Waiting to run
Generate translation template / generate-pot (push) Waiting to run
2025-06-14 10:25:56 +02:00
goeiecool9999
f3fe6f3455
GameList: Allow sorting by more columns (#1571)
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-06-13 12:47:46 +02:00
oltolm
2eec6b44c3
UI: Use wxListView instead of wxListCtrl (#1584)
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-06-10 08:15:25 +02:00
Luminyx
3eff2d4a60
GraphicPack: Allow overlay for code folder (#1574) 2025-06-10 08:03:18 +02:00
Wiichele
d427b59019
boss: Use HTTP/1.1 instead of default (#1593)
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-06-08 07:16:09 +02:00
neebyA
a184a04e56
macOS: Minor UI improvements (#1575)
Some checks are pending
Build check / build (push) Waiting to run
Generate translation template / generate-pot (push) Waiting to run
2025-06-07 22:42:49 +02:00
Colin Kinloch
162fdabb9d
debug: "verbose" command line argument to log to stdout (#1587)
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-06-02 01:38:21 +02:00
Colin Kinloch
c8045f7f04
UI: wxCAPTION flag on input API dialog to fix kwin (#1586)
Some checks are pending
Build check / build (push) Waiting to run
Generate translation template / generate-pot (push) Waiting to run
2025-06-01 03:57:33 +02:00
oltolm
6df3e1742e
UI: Fix wxWidgets assert in InfinityPage (#1582)
Some checks are pending
Build check / build (push) Waiting to run
Generate translation template / generate-pot (push) Waiting to run
2025-05-31 16:29:07 +02:00
oltolm
152b790242
UI: Use wxID_ANY and wxNOT_FOUND instead of hardcoding -1 (#1581)
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-05-30 01:39:02 +02:00
capitalistspz
02616bf6be
build: Allow Linux builds to be made without Bluez (#1579)
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-05-28 15:18:01 +02:00
Exzap
7168d20cde FST: Refactor IV handling
Some checks are pending
Build check / build (push) Waiting to run
Generate translation template / generate-pot (push) Waiting to run
2025-05-27 16:51:46 +02:00
Exzap
783d88a892 coreinit: Fix race condition in __FSAIoctlResponseCallback
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-05-17 21:35:42 +02:00
Exzap
28ea70b6d8 GX2+TCL: Reimplement command buffer submission
- GX2 utilizes TCL(.rpl) API for command submission instead of directly writing to an internal GPU fifo
- Submission & retire timestamps are correctly implemented as incremental counters
- Command buffering behaviour matches console
- Fixes race conditions on aarch64
2025-05-17 21:35:42 +02:00
Exzap
96765e4ac6 Latte: Refactor clear code 2025-05-17 20:47:01 +02:00
gamerbross
111637a9fd
nsyshid: Skylander 360 Portal small optimization and code formatting (#1568)
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-05-15 19:58:43 +02:00
Issa
bed5fdb195
UI: Disable Ctrl+Q shortcut on non-macOS platforms to prevent accidental exits during gameplay (#1565)
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-05-13 03:38:11 +02:00
Mefiresu
05617a332b
dmae: Implement 16bit endian swap for DMAECopyMem (#1564) 2025-05-12 18:16:14 +02:00
Joshua de Reeper
caef34f2ff
nsyshid: Add Kamen Rider USB Device to Whitelist (#1560)
Some checks are pending
Build check / build (push) Waiting to run
Generate translation template / generate-pot (push) Waiting to run
2025-05-12 09:28:01 +02:00
neebyA
f801fc1fe8
Fix Mac build for Xcode 16.3 (#1558)
Some checks are pending
Build check / build (push) Waiting to run
Generate translation template / generate-pot (push) Waiting to run
2025-05-12 00:08:25 +02:00
Exzap
61484598fc Vulkan: Use per-pipeline buffer robustness
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
And if the extension is not supported then fallback to enabling robust buffer access for all shaders.
2025-05-10 09:49:21 +02:00
SSimco
081ebead5f
Add AArch64 recompiler backend (#1556)
Some checks are pending
Build check / build (push) Waiting to run
Generate translation template / generate-pot (push) Waiting to run
2025-05-09 12:47:22 +02:00
Exzap
d13dab0fd8 Vulkan: During shutdown submit buffer before deleting resources 2025-05-09 10:00:38 +02:00
Exzap
ba09daf328 PPCRec: Reenable float copy optimization
Some checks are pending
Build check / build (push) Waiting to run
Generate translation template / generate-pot (push) Waiting to run
2025-05-09 02:06:08 +02:00
Exzap
557aff4024 PPCRec: Implement PSQ scaling 2025-05-08 08:29:47 +02:00
Exzap
de542410c2
PPCRec: Rework floating point instructions (#1554)
Some checks are pending
Build check / build (push) Waiting to run
Generate translation template / generate-pot (push) Waiting to run
2025-05-08 03:48:22 +02:00
gamerbross
33d5c6d490
nsyshid: Add Skylander Xbox 360 Portal support (#1550)
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-05-04 21:44:46 +02:00
Crementif
352a918494
debug: add CLI option to have multi-core interpreter (#1553)
Some checks are pending
Build check / build (push) Waiting to run
Generate translation template / generate-pot (push) Waiting to run
This option still allows you to have proper stack traces for crashes or for the PPC debugger, but is a lot faster then the really slow interpreter (especially when loading into large games like BotW where there has to be a lot of asset decompressing). It makes memory access breakpoints much more brittle though, so it's not a perfect option.

Normal users should of course stick with using the recompiler.
2025-05-04 18:04:26 +02:00
Crementif
d083fc0470 Reorder PPCInterpreter memory layout to keep plugin compatibility
Commit b089ae5b32 changed the PPCInterpreter struct that external plugins rely on to hook Cemu through e.g. the exported "osLib_registerHLEFunction". This commit moves some unused values down so that it keeps the same memory layout as before the PPC recompiler rework.
2025-05-04 17:19:56 +02:00
neebyA
fa7ae84314
macOS: Fix browsing of directory paths with spaces (#1546) 2025-05-04 13:46:01 +02:00
goeiecool9999
e6a64aadda undo revert of style improvement
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-04-27 17:03:00 +02:00
goeiecool9999
a5f3558b79 Revert "fix building with fmt11 and GCC"
This reverts commit 372c314f06.
It broke formatting in an attempt to fix GCC builds.
Some other change (perhaps dependency updates) has resolved the issue.
2025-04-27 16:57:22 +02:00
Exzap
b089ae5b32
PowerPC recompiler rework (#641)
Some checks are pending
Build check / build (push) Waiting to run
Generate translation template / generate-pot (push) Waiting to run
2025-04-26 17:59:32 +02:00
Exzap
06233e3462 UI: Fix wxWidgets debug assert
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
Adding the same component multiple times is not allowed. Use sizers instead
2025-04-16 14:36:11 +02:00
Exzap
4972381edc Vulkan: Fix imgui validation error when sRGB framebuffer is used 2025-04-15 22:46:19 +02:00
Exzap
cd6eb1097b Vulkan: Fix a validation error + minor code refactor
We were using VK_EXT_DEPTH_CLIP_ENABLE but didn't actually request it.

Also fixed an assert when closing Cemu caused by incorrectly tracking the number of allocated pipelines
2025-04-15 21:10:11 +02:00
mitoposter
57ff99ce53
cubeb: Show default device option even if enumerating devices fails (#1515)
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-03-19 17:06:55 +01:00
capitalistspz
8b5cafa98e
Wiimote/L2CAP: More accurate descriptions for descriptors (#1512)
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-03-13 01:09:45 +01:00
Crementif
186e92221a
debugger: allow printing registers using logging breakpoint placeholders (#1510)
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
This allows a savy user, developer or modder to change the comment field of a logging breakpoint to include placeholders such as {r3} or {f3} to log the register values whenever that code is hit.
2025-03-07 23:40:17 +01:00
goeiecool9999
31d2db6f78 OpenGL: Add explicit/matching qualifiers in output shader interface
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
fixes issues with old intel drivers
2025-03-05 22:23:06 +01:00
capitalistspz
ebb5ab53e2
Add menu item for opening shader cache directory (#1494)
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-02-14 20:56:51 +01:00
Exzap
ec2d7c086a coreinit: Clean up time functions
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-01-30 03:49:17 +01:00
Exzap
c714e8cb6b coreinit: Time to tick conversion is unsigned
The result is treated as signed in most cases, but the calculation uses unsigned arithmetic.

As a concrete example where this matters, DS VC passes -1 (2^64-1) to OSWaitEventWithTimeout which internally causes an overflow. But only with unsigned arithmetic this will result in a large positive number that behaves like the intended infinite timeout. With signed arithmetic the result is negative and the events will timeout immediately.
2025-01-30 03:32:24 +01:00
goeiecool9999
e834515f43
Vulkan: Improve post-shutdown cleanup and minor improvements (#1401)
Some checks failed
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-01-23 21:20:03 +01:00
goeiecool9999
372c314f06 fix building with fmt11 and GCC 2025-01-23 21:03:11 +01:00