Commit Graph
887 Commits
Author SHA1 Message Date
Henrik Rydgård c65eb7d54f Fix the point in time in the frame that we run and render the ImDebugger
Turns out it matters quite a lot. Will see if I can clean this up later.
2026-08-09 18:29:33 +02:00
Henrik Rydgård 8cd7e1b2c0 Delete all support for Qt
Our Qt backend has long been left behind and doesn't even support Vulkan
currently. There would be a lot of work to make it viable, and I don't
think anyone is really interested.

ImGui on SDL will soon fulfill the need for a more classic user interface
with a menu bar on Linux, and on Mac we already have a native UI.
2026-08-08 18:18:28 +02:00
Henrik RydgårdandClaude Sonnet 5 5df8c14f1e Core_RunOnCPUThread: drain the queue from NativeFrame(), not just Core_RunLoopUntil()
Core_RunLoopUntil() is only reached while a game is actually loaded and
running (via EmuScreen). Anything calling Core_RunOnCPUThread() while at
the main menu with no game loaded would hang forever waiting for a queue
that was never drained. Call Core_ProcessCPUQueue() directly from
NativeFrame(), just before screenManager->render(), so it always runs;
Core_RunLoopUntil() still also drains it for the tight-spin-while-stepping
case once a game is running.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Hqm11k99viLfbJm2MkH4BH
2026-08-08 17:22:12 +02:00
Henrik RydgårdandClaude Sonnet 5 f72709feb0 Legacy Win32 debugger: fix the painting problem with a frame-scoped mutex
Debugger windows (register list, disassembly view, memory view, breakpoint/
thread/module/stack lists, watch list) read CPU-thread-owned state directly
from the GUI thread's WM_PAINT/list-fill handlers, racing against the CPU
thread. Routing every read through Core_RunOnCPUThread would be too slow for
something invoked continuously on paint/list-refresh.

Add g_frameMutex (Core.h/Core.cpp), held by NativeFrame() only across the
span where it actually touches that state (running the CPU, processing
breakpoints, running the ImGui debugger) - not across input handling or the
present/frame-pacing waits. Debugger windows now hold the same mutex while
reading, giving synchronized reads without the round-trip cost of queuing
to the CPU thread.

CtrlRegisterList::onPaint() goes back to always reading live values (now
safe under the lock) and grays them out by color alone while the core is
running, rather than the earlier snapshot-caching approach.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Hqm11k99viLfbJm2MkH4BH
2026-08-08 17:22:12 +02:00
Henrik Rydgård 8d2c1e7a66 Make the ImDebugger a bit less crash prone outside of games 2026-08-07 22:40:05 +02:00
Henrik Rydgård 25a146a11c Make the PPSSPP UI fit inside the imgui desktop 2026-08-07 17:56:09 +02:00
Henrik Rydgård db8ff4391e Enable ImDebugger everywhere, on top of the regular UI. 2026-08-07 17:35:15 +02:00
Henrik Rydgård ca3fc0fa9e Change the screenmanager input interface 2026-08-07 16:15:02 +02:00
Henrik Rydgård a47edbf6ef Move event queueing out of ScreenManager. This is a prerequisite for an upcoming change. 2026-08-07 14:42:17 +02:00
Henrik Rydgård 7219cd2f5a Split off ScreenManager from Screen.cpp 2026-08-07 14:30:36 +02:00
Henrik RydgårdandClaude Sonnet 5 5bd1ff8066 Move remaining manual command line parsing into CmdLine.cpp
Headless.cpp, NativeApp.cpp, and SDLMain.cpp each still hand-parsed a few
argv flags directly (mount/log/state/ignore/loglevel in headless and the
app, xres/yres/dpi/scale in SDL), duplicating and in some cases conflicting
with the shared CommandLineOptions parser. Consolidate all of it into
CmdLine.cpp/.h so there's a single source of truth, and drop the now-dead
remain_argc/remain_argv filtering in SDLMain.cpp since NativeInit no longer
reads argv itself.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PfFvWzpHxErWgRhKqqSewN
2026-08-05 16:02:49 +02:00
Henrik Rydgård be922eca62 Make OpenGL render thread shutdown more robust. 2026-08-04 16:44:55 +02:00
Henrik Rydgård b6d7c18f39 Try to eliminate a race condition 2026-08-03 23:09:07 +02:00
Henrik Rydgård 55eee26c52 Assorted warning fixes 2026-08-03 18:55:35 +02:00
Henrik Rydgård cab9a4fcd7 Remove obsolete code 2026-07-30 18:27:38 +02:00
Henrik Rydgård 4bf36fc7f8 Add command line option --vsh to try to boot the VSH. Logspam reduction, improve printf logs. 2026-07-27 14:58:59 +02:00
Henrik Rydgård 3eb056ad86 Move Common/GraphicsContext.h to Common/GPU/GraphicsContext.h 2026-07-26 13:58:17 +02:00
Henrik Rydgård 7f218acc53 Change the GraphicsContext interface to be more consistent 2026-07-26 10:22:00 +02:00
Henrik Rydgård 71e2a87611 Fix Android CMakeLists.txt build 2026-07-24 16:59:41 +02:00
Henrik Rydgård 85f8715660 Break the circular dependency caused by putting EmuThread in core using an interface 2026-07-24 15:31:42 +02:00
Henrik Rydgård 86c98c2d23 Prepare EmuThread for other users 2026-07-24 15:31:41 +02:00
Henrik Rydgård 4b24c187f2 Move more command line parameters to the new parser 2026-07-20 17:44:19 +02:00
Henrik Rydgård 650a59f964 Migrate more config parsing to the new parser 2026-07-20 16:50:34 +02:00
Henrik Rydgård bd25962cbe Convert more options to the new command line parser 2026-07-20 16:33:03 +02:00
Henrik Rydgård a59637975a Call the new command line parser from all backends 2026-07-20 12:02:07 +02:00
Henrik Rydgård acc0a19786 wip 2026-07-20 12:02:07 +02:00
Henrik Rydgård 29836ea74e Move the new incomplete command line parser to Core 2026-07-20 12:02:07 +02:00
Henrik Rydgård fdf186e43b Windows: Refactor console positioning, moving the code out of EmuThread.cpp 2026-07-18 20:58:29 +02:00
Henrik Rydgård 78f80a0010 Some tweaks to avoid name collisions in upcoming commits 2026-07-10 12:11:17 +02:00
Henrik Rydgård 72ee82844d Doesn't yet work 2026-06-24 23:04:17 +02:00
Henrik Rydgård 729f11ecbe Simplify away some nonsense 2026-06-24 22:55:34 +02:00
Henrik Rydgård 02e9deb232 Fix some input behavior that got lost in the previous commits. 2026-06-24 21:48:44 +02:00
Henrik Rydgård b01812e671 Fix AnalogCalibrationScreen 2026-06-24 20:41:10 +02:00
Henrik Rydgård 0840e292ab Move some logic out to a per-frame poll instead of per input event 2026-06-24 20:41:10 +02:00
Henrik Rydgård 5ab3d6042b Move modifier key tracking out from the screen system 2026-06-16 10:57:55 +02:00
Henrik Rydgård ea8a648737 Refactor UI shader presets, prepare for some updates to the ImGe debugger 2026-06-14 11:08:56 +02:00
Henrik Rydgård eaadb8aa31 Merge pull request #21762 from hrydgard/misc-fixes
Fix imgui upside down, some logging changes etc
2026-06-01 11:16:11 +02:00
Henrik Rydgård 054a10d46b Fix imgui being upside down on some backends.
Fixes #21761
2026-06-01 10:53:41 +02:00
david.schkalee d477afa9b2 Android: add achievements host override receiver 2026-06-01 01:44:04 +02:00
Henrik Rydgård 231aefe476 Code cleanup for save state notification, add metadata field 2026-05-19 11:07:07 +02:00
Henrik Rydgård 6f0a16a4a4 Fix Y flip 2026-05-18 14:14:25 +02:00
Henrik Rydgård d2c2ee337e Remove the mfplat.dll hard dependency (now dynamic). 2026-05-11 16:09:22 +02:00
Henrik Rydgård 2428b58eee In Debug android builds, force logging on so we have it on the memstick setup screen. Minor tweaks. 2026-05-11 11:45:04 +02:00
Henrik Rydgård 9a7346b10e Fix bug with key event filtering (when text input enabled) for UWP.
Fixes #21635
2026-05-04 22:15:07 +02:00
Henrik Rydgård b4698eabfe Support launching directly with the deep link, instead of just launching while already running. 2026-04-28 23:06:23 +02:00
Henrik Rydgård 6a977bd27f Fix bug preventing us from loading the server list from the server 2026-03-30 13:51:27 -06:00
Henrik Rydgård b7f257152d Fix logging to file
Fixes #21411
2026-03-11 14:14:58 +01:00
Henrik Rydgård 14ef83f06a Implement iOS "bookmark" support, to preserve permissions to recent files from iCloud 2026-03-07 15:04:49 +01:00
Henrik Rydgård d6ca0378b6 Move DarwinFileSystemServices.mm/h to Core/Util 2026-03-07 11:35:34 +01:00
Henrik Rydgård 04b86a0d87 Address Kethen's feedback 2026-03-06 13:34:16 +01:00