Commit Graph
24 Commits
Author SHA1 Message Date
Henrik RydgårdandClaude Opus 5 14e8ba8486 Make numVBlanks atomic
The WebSocket debugger reads it from its own thread (input.buttons.press counts
down frames against it) while the CPU thread bumps it.

Note the input subscriber and broadcaster need no other changes for thread
safety: __CtrlUpdateButtons, __CtrlSetAnalogXY, __CtrlPeekButtons and
__CtrlPeekAnalog all take ctrlMutex internally, so routing them through
Core_RunOnCPUThread() would only add a blocking round trip.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GZq8ZtJmFY7bkX5FVkr3P9
2026-08-17 13:11:16 +02:00
Henrik Rydgård 2096179dce Drive-by code cleanup 2026-08-15 18:31:20 +02:00
Henrik Rydgård e9a3449ede More MIPSState * plumbing (manual) 2026-08-12 14:02:19 +02:00
Henrik Rydgård f60e27a9b7 Just some refactoring of the GPUStatistics struct, and more use of StringWriter 2026-05-29 14:40:31 +02:00
Henrik Rydgård 811c4bc577 Remove the VblankListener callback mechanism, do direct calls instead
Should fix #21575
2026-04-28 16:27:12 +02:00
Henrik Rydgård 22b07849cf Add a missing lock 2026-03-13 11:35:10 +01:00
Henrik Rydgård f5b2df6111 Only clear vblank listeners on exec start, not flip listeners.
This needs kind of a different type of cleanup, actually, but that's for
later (I want to get rid of this registration mechanism entirely).

Fixes #21239
2026-02-11 15:38:18 +01:00
Henrik Rydgård 09b087f16f Resume gameplay immediately after choosing Reset on the pause screen. 2026-02-10 00:22:09 +01:00
Henrik Rydgård 5aeab28e9b Remove the "Percentage of framerate" frameskip type 2025-10-20 11:49:41 +02:00
Henrik Rydgård cc3fbb22e4 Change some stat arrays from double to float (to save mem bandwidth) 2025-06-18 11:00:27 +02:00
Henrik Rydgård d00f8f9401 Display: Don't clear display callback listeners when starting a new exec.
Fixes https://github.com/RetroAchievements/RAIntegration/issues/1186
2025-06-07 17:43:18 +02:00
Henrik Rydgård 0f18f054ab Make the frame-time budget for uploading replacement textures take framerate into account 2025-04-22 20:19:43 +02:00
Henrik Rydgård 3e198c53b2 More include cleanup 2024-12-18 13:57:26 +01:00
Henrik Rydgård 0df2a40487 Remove the "GPUInterface" base class. Not really useful, GPUCommon is pretty much the same thing. 2024-12-02 11:12:14 +01:00
Nabile Rahmani 7af15c73bc [Feature] Option to override the display refresh rate
This adds a per-game graphics option, `DisplayRefreshRate`, to override the display refresh rate.

It defaults to 60 Hz, and is located in Dev tools.

Games using variable timesteps benefit from higher refresh rates.

Closes #19319
2024-07-13 15:04:20 +02:00
Henrik Rydgård fae1f4acd3 A null check and a locking simplification 2024-01-30 19:15:19 +01:00
Henrik Rydgård a32249a3cf Move DebugOverlay rendering to the overlay screen, allowing drawing it on top of the menu 2023-08-03 16:19:18 +02:00
Henrik Rydgård fc6879674e Refactor overlays into an enum 2023-08-02 13:03:04 +02:00
Henrik Rydgård 3800e88ecb Fix wrong "game is running slow" warning on high-refresh-rate devices. 2023-04-30 11:01:09 +02:00
lainon 3cdf72b68b Better readability and optimization insertion into container by replacing 'insert' -> 'emplace', 'push_back' -> 'emplace_back' 2022-09-30 12:35:28 +03:00
Unknown W. Brackets 2479d52202 Global: Reduce includes of common headers.
In many places, string, map, or Common.h were included but not needed.
2022-01-30 16:35:33 -08:00
Unknown W. Brackets 3df6cb704f Global: Fix some type conversion warnings.
Hidden by some warning disables.
2022-01-30 16:09:33 -08:00
Unknown W. Brackets 48b597a1b9 Display: Move core counters/stats to HW file.
This separates things better, so not everything is pulling in HLE.
2022-01-30 11:53:48 -08:00
Unknown W. Brackets ad2e380987 Display: Move listeners to separate HW file.
Mixing this in with the HLE management funcs was messy.
2022-01-30 09:41:08 -08:00