Commit Graph

14 Commits

Author SHA1 Message Date
Cynthia
896c4ab7da allow coreinit.exit to actually "exit"
fixes #1960

this commit implements one particular approach for exiting emulation
when the RPX being emulated calls `coreinit.exit`. I don't believe
this might be the best way long term, but it seemed to be the best
way given the state (and my knowledge of the codebase). This threads
through 'End Emulation' (normally a debug only feature in the Cemu
menu) into one more spot in the codebase, when `coreinit.exit` is
called. Why did we go this way?

Stopping PPC Emulation _while_ the emulator is actively executing
an instruction (the call to `coreinit.exit`) seemed like a path of
el derado everytime i tried it. calling `Shutdown`, or `ShutdownTitle`
is not ideal because it doesn't do things like update status in
discord or any of the other window actions, and they lock up because
the emulator is already running the coreinit instructions (even if
you launch it in a delayed thread, the PPC emulator is still doing
stuff).

so the only way to get this to somewhat work is _to reach out to the
window system_. So I threaded through an `EndEmulation` request, which
started off just calling `EndEmulation` that already existed. There is
a note on that function about how it memory leaks if called repeatedly,
and it's "not finished". However, this seemed better than looping
forever, or just crashing with a debug assert. At least you still have
a semi-functional window (even if memory is leaking), and a log window
you can investigate?

However, just calling endemulation didn't exit when Cemu was launched
from the command line (my goal), it just returns to the main Cemu
window. To make Cemu usable as a command line app that you can fire
and forget, I threaded a new variable through, that when end emulation
is called and the title was launched with `-g`, or `-t`, it just closes
cemu altogether. this allows my CLI commands to "just work"
2026-06-23 11:17:45 -07:00
Emma
0fc7403543
build+Latte: Add working ENABLE_OPENGL and ENABLE_VULKAN build options (#1887) 2026-05-09 15:03:25 +02:00
bslhq
f3fecba313
Migrate from SDL2 to SDL3 3.4.2 (#1847) 2026-05-08 17:11:19 +02:00
Exzap
e2a69becf1 debugger: Rework PPC debugger
This is a first pass for now, more work is needed mostly for UI polish.
Changes in this commit:
- Debugger now exposes a thread-safe API. Previously everything would just access internal debugger state directly without regard for race conditions
- Reworked stepping logic to be more reliable. For example previously Cemu could get forever stuck in the middle of stepping to the next instruction
- Support for debugging while using multi-threaded CPU emulation. Originally the debugger was added when only single core support existed in Cemu. It was possible to debug multi-threaded before but it was very very prone to state corruptions.
- Debugger should now remember breakpoints correctly across sessions
2026-04-29 18:24:29 +02:00
Crementif
07bdb3454a
debugger: Various QoL improvements (#1777)
* Ignore keyboard inputs when debugger is focused
* Add workaround for slightly improved multi-thread debugging
* debugger: Add interpreter mode switch and log-only memory breakpoints
2026-02-01 01:53:02 +01:00
oltolm
59a5118472
UI: misc. code cleanups (#1762) 2026-01-03 11:23:41 +01:00
oltolm
1c7fe5673f
UI: Replace to_wxString and wxHelper::FromUtf8 with wxString::FromUTF8 (#1752) 2025-12-23 15:37:01 +01:00
goeiecool9999
6cee127852 Move clipboard flush to OnExit
Fixes occasional hang on exit
2025-12-18 15:19:23 +01:00
SamoZ256
26e40a4bce
Add Metal backend (#1287)
Some checks are pending
Build check / build (push) Waiting to run
Generate translation template / generate-pot (push) Waiting to run
2025-12-06 17:14:25 +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
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
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
SSimco
67de63bed6
UI+build: Isolate wxWidgets code from non-GUI code (#1633) 2025-07-15 04:28:41 +02:00