Commit Graph
44 Commits
Author SHA1 Message Date
Exzap c5913fe8cb refactor/rpl: Treat HLE libs more like RPL modules
HLE modules now have a unified interface via which they can get notified when mapped into the process or when loaded/unloaded.

We also always call the unload functions when stopping emulation to give the module implementations a chance to reset all state (although many of them are still missing proper cleanup code for now)
2026-01-07 02:46:49 +01:00
RedBlackAkaandGitHub aaf6d5d677 UI: Hide Metal only options on non-Apple builds (#1753) 2025-12-23 20:43:28 +01:00
SamoZ256andGitHub 26e40a4bce Add Metal backend (#1287) 2025-12-06 17:14:25 +01:00
Exzap 4fa0df6dcf nn_boss: Reimplementation
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
Kevin ReinholzandGitHub 4efa40c51c Make it easy to build Cemu on BSD (#1632) 2025-07-23 08:59:09 +02:00
SSimcoandGitHub 67de63bed6 UI+build: Isolate wxWidgets code from non-GUI code (#1633) 2025-07-15 04:28:41 +02:00
CrementifandGitHub 352a918494 debug: add CLI option to have multi-core interpreter (#1553)
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
CrementifandGitHub 92021db230 Use one CPU emulation thread for --force-interpreter (#1467) 2025-01-05 04:08:13 +01:00
Exzap 66658351c1 erreula: Rework implementation and fix bugs
- ErrEula doesn't disappear on its own anymore. The expected behavior is for the game to call Disappear once a button has been selected. This fixes issues where the dialog would softlock in some games
- Modernized code a bit
- Added a subtle fade in/out effect
2024-11-13 06:29:24 +01:00
goeiecool9999andGitHub f9a4b2dbb1 input: Add option to make show screen button a toggle (#1383) 2024-10-19 01:56:56 +02:00
GaryOderNichts 1c6b209692 Add initial ntag and nfc implementation 2024-05-18 20:37:37 +02:00
Exzap 12eda10387 nn_acp: Implement ACPGetOlvAccesskey + code clean up
Added ACPGetOlvAccesskey() which is used by Super Mario Maker

iosu acp, nn_acp and nn_save all cross talk with each other and are mostly legacy code. Modernized it a tiny bit and moved functions to where they should be. A larger refactor should be done in the future but for now this works ok
2024-04-10 20:22:27 +02:00
Exzap 74e8d205b0 coreinit: Handle SD mounting permission in FSGetMountSource
One Piece requires this to not get stuck in an infinite loop on boot.

This also sets up initial infrastructure for handling cos.xml permissions
2024-04-06 22:18:38 +02:00
goeiecool9999andGitHub bb88b5c36d Fix crash introduced by #1115 (#1117)
* Revert "CafeSystem: Init recompiler after game profile has been loaded (#1115)"
* Instead move gameprofile load call
2024-03-11 02:40:47 +01:00
goeiecool9999andGitHub 788da3cdf7 CafeSystem: Init recompiler after game profile has been loaded (#1115) 2024-03-11 01:47:31 +01:00
Exzap 67f7ce815c nn_pdm: Refactor code to use new module structure 2023-12-10 08:30:52 +01:00
Exzap 0d71885c88 nn_fp: Full rework of friend service 2023-10-17 05:26:30 +02:00
Exzap 757d458161 Compatibility with fmtlib 10.1.x 2023-10-02 18:53:00 +02:00
Exzap ff9d180154 Code cleanup 2023-10-01 11:46:26 +02:00
Exzap f04c7575d7 coreinit: Handle non-existing modules in OSDynLoad_Acquire
Fixes Togabito crashing on boot

coreinit: Handle non-existing modules in OSDynLoad_Acquire
2023-09-14 20:52:40 +02:00
Exzap 524188bb7a Refactor more GX2 code to use LatteReg.h 2023-09-14 20:52:40 +02:00
Exzap 892ae13680 Log Windows version + Fix logging crash on Linux 2023-08-13 14:50:38 +02:00
Colin KinlochandGitHub 22bf6420d2 Log platform info (#931) 2023-08-08 23:22:22 +02:00
Exzap 0f469eb2b9 Small cleanup + Fix memory base logged as 0 2023-08-03 20:31:12 +02:00
ExzapandGitHub 2200cc0ddf Initial support for title switching + better Wii U menu compatibility (#907) 2023-07-21 13:54:07 +02:00
Rambo6GlazandGitHub a8d157d310 nn_olv: Added community related API (#873)
- Initialize
- Download communities (self-made / favorites / officials)
- Upload communities (create subcommunity)
- Upload favorite status (Add/Delete favorite to a subcommunity)

Enough for support of Mario Kart 8 tournaments
2023-06-24 14:51:41 +02:00
CrementifandGitHub d903b2cf12 Remove deprecated logging system and expose developer logging window (#825) 2023-05-20 02:46:12 +02:00
why-keithandGitHub 4be57f4896 Migrate force_log_printf to new logging (#714) 2023-04-12 16:31:34 +02:00
Exzap e803c6be47 Use attribute for AES-NI instead of -maes option 2023-03-13 05:34:53 +01:00
6d75776b28 Add GDB stub for debugging (#657)
* Implement GDB stub debugger

Can be enabled by using the "--enable-gdbstub" option (and the debugger GUI, although that's untested) which'll pause any game you launch at start-up. Will start at port 1337 although it'll eventually be user-editable. The code is a bit weirdly sorted and also just needs a general cleanup, so expect that eventually too. And uses egyptian braces but formatting was easier to do at the end, so that's also something to do.

It has been tested to work with IDA Pro, Clion and the standalone interface for now, but I plan on writing some instructions in the PR to follow for people who want to use this. Memory breakpoints aren't possible yet, only execution breakpoints.

This code was aimed to be decoupled from the existing debugger to be able to be ported to the Wii U for an equal debugging experience. That's also why it uses the Cafe OS's thread sleep and resuming functions whenever possible instead of using recompiler/interpreter controls.

* Add memory writing and floating point registers support

* Reformat code a bit

* Format code to adhere to Cemu's coding style

* Rework GDB Stub settings in GUI

* Small styling fixes

* Rework execution breakpoints

Should work better in some edge cases now. But this should also allow for adding access breakpoints since it's now more separated.

* Implement access breakpoints

* Fix some issues with breakpoints

* Fix includes for Linux

* Fix unnecessary include

* Tweaks for Linux compatibility

* Use std::thread instead of std::jthread to fix MacOS support

* Enable GDB read/write breakpoints on x86 only

* Fix compilation for GCC compilers at least

The thread type varies on some platforms, so supporting this is hell... but let's get it to compile on MacOS first.

* Disable them for MacOS due to lack of ptrace

---------

Co-authored-by: Exzap <13877693+Exzap@users.noreply.github.com>
2023-02-19 15:41:49 +01:00
ExzapandGitHub f3ff919be2 Code clean up + replace some wstring instances with utf8 (#640) 2023-01-29 13:53:31 +01:00
goeiecool9999andGitHub cbdf381b31 Fix gamepad hotkey and game profile setting (#510) 2022-11-24 12:29:29 +01:00
Adrian GraberandGitHub d4e14d2b05 Implement proper microphone support (#251) 2022-11-03 00:24:34 +01:00
MythicalPlayzandGitHub c217b3ee32 GameList: Use title name based on console language (#388) 2022-10-21 00:17:11 +02:00
MythicalPlayzandGitHub 271a4e4719 Fixed Discord Rich Presence not working on games that are on MLC (#383) 2022-10-18 17:08:09 +02:00
SSimcoandGitHub d6ba61cf64 Add support for non portable mode (#356) 2022-10-12 08:03:26 +02:00
Herman SemenovandGitHub 03f5967408 Fix incorrect streamout buffer index in GS + refactor various code (#258) 2022-09-17 03:45:18 +02:00
Exzap 680beaaf21 Rename path _utf8Wrapper to _utf8ToPath for better clarity 2022-09-09 23:49:38 +02:00
Exzap 0e0602e8d9 FSC: Use utf8 for mounting and internal target path 2022-09-09 23:49:38 +02:00
goeiecool9999andGitHub e20bfd00ec Separate filestream.h into OS specific implementation files (#190) 2022-09-07 02:42:25 +02:00
ExzapandGitHub 33167196d9 Wait for gfx pack init before loading shaders (#168)
2.0 introduced a race condition where the shader cache loading screen could load shaders before the graphic packs finished activating, potentially bypassing custom shaders.
Also removed legacy GraphicPack interface (GraphicPack.cpp/.h) since it was only kept around for Cemuhook and removed u8string variant of cemuLog_force since it's no longer used
2022-09-04 01:27:44 +02:00
CrementifandGitHub ca78b92718 Remove cemuhook and fix exports (#73) 2022-08-26 19:41:42 +02:00
Marcin ChojnackiandGitHub 974edaa649 Initial macOS port bringup (#52) 2022-08-26 04:03:26 +02:00
Exzap d60742f52b Add all the files 2022-08-22 22:21:23 +02:00