Commit graph

666 commits

Author SHA1 Message Date
Henrik Rydgård
ec411e0ecb Change when we call rc_client_do_frame to something that matches libretro
There's conflicting advice on when to do it, but to avoid people testing
their cheats twice, let's match as closely as we can.

This means that 30hz games will only have the callback run at 30hz.

The duplicate frames option may interfere, just like it may on libretro.
2024-01-22 19:35:26 +01:00
Henrik Rydgård
5bf6625740 Translation string 2024-01-20 23:11:30 +01:00
Henrik Rydgård
55adcb1a13 Warn the user if they try to run an extracted ISO, with a very in-your-face message.
Fixes #18735
2024-01-20 23:01:08 +01:00
Henrik Rydgård
7feae30c41 Move the crash and FPS overlays to DebugOverlay.cpp/h 2024-01-19 16:52:42 +01:00
Henrik Rydgård
902b73698f Slight improvement to extra assert info (set special info on pause screen) 2024-01-18 23:00:43 +01:00
Henrik Rydgård
e5339bdaa2 Fix issue on EmuScreen after a crash 2024-01-18 22:08:33 +01:00
Henrik Rydgård
bfe16fdf4e EmuScreen: Need to call UIContext::BeginFrame at some point in all cases. 2024-01-18 18:49:16 +01:00
Henrik Rydgård
1304d04161 Fix a particular type of race condition in file dialog requests
It seems to be possible for a user to back out of a screen before
receiving the "dialog completed" callback on Android, in which case
things pointed to by the callback might be gone.

In this case, it's better to simply not call the callback, rather than
crashing.

This is accomplished by assigning "Tokens" to screens that cause
requests, and in ~Screen, invalidate any pending requests belonging to
that token.
2024-01-18 12:25:55 +01:00
Henrik Rydgård
3967d074bf EmuScreen: Use CLEAR instead of DONT_CARE to help the render pass merger.
Should fix #18720

We need to annotate store mode properly too, in order to merge passes
that load with DONT_CARE.

The reason it's a problem that we fail to merge renderpasses is that old
Mali drivers get things in a terribly wrong state if you submit an empty
renderpass.
2024-01-18 09:44:40 +01:00
Henrik Rydgård
cbb4236cd8 Vulkan: Attempt to fix some more shutdown race conditions, simplify. 2024-01-17 14:49:49 +01:00
Henrik Rydgård
739f22f721 Add a possibly missing check in EmuScreen 2024-01-15 10:47:16 +01:00
Henrik Rydgård
acd719448e Wrap g_Config.bRunBehindPauseMenu behind a function, so we can add conditions 2023-12-30 21:50:20 +01:00
Henrik Rydgård
4e90d82e23 Fix sceKernelExitGame (regressed with the run-in-background stuff) 2023-12-30 11:58:29 +01:00
Henrik Rydgård
679b8330ff Add bindings for toggling mouse control and touch screen controls. Not bound by default.
I think I'll find myself using both of these for testing, feel worthwhile.

Suggested in #18464
2023-12-29 17:40:57 +01:00
Henrik Rydgård
4609df40c9 Update gamepad opacity once per frame, not once per button 2023-12-29 17:09:38 +01:00
Henrik Rydgård
cd00d06842 Add reload button to GameBrowser. Fix assert if game load failed 2023-12-29 00:18:04 +01:00
Henrik Rydgård
91b5956fc4 Fix background color of crash screen 2023-12-20 17:03:06 +01:00
Henrik Rydgård
dd1396e2fd
Merge pull request #18581 from GermanAizek/lower-scope
Reduced lower scope for local objects
2023-12-20 14:53:36 +01:00
Herman Semenov
95f535dab0 [UI/Windows] Object out of scope optimization for better codegeneration (lower level scope) 2023-12-20 12:35:02 +03:00
Henrik Rydgård
50bcb2a77a Add "Disable culling" as a speedhack for experimentation
Range culling (which we'll just call culling in the setting
name) still is problematic enough that it can be useful to have this
way to turn it off as an escape route. Since disabling it can break some
games like famously TOCA, it needs to be under speedhacks, though likely
the performance change is minimal.

See for example #17061
2023-12-18 13:13:44 +01:00
Henrik Rydgård
ef149bd9f3 Allow EmuScreen to run behind the DevMenu popup 2023-12-18 12:59:18 +01:00
Henrik Rydgård
41bbc83b6d EmuScreen: Fix some cases where we didn't set viewport or scissor 2023-12-15 11:31:40 +01:00
Henrik Rydgård
e62614498e Buildfix mac (name collision with NO...) 2023-12-13 16:48:07 +01:00
Henrik Rydgård
caec201c4d Make "Skip GPU readbacks" a multi-choice option, for easier experimentation by users 2023-12-13 16:18:44 +01:00
Henrik Rydgård
75e96df448 Don't use ManagedTexture in GameInfoCache, not needed. 2023-12-12 22:34:31 +01:00
Henrik Rydgård
79ab67e3b2 Run-behind-pause: Fix some edge cases with the transparent background setting 2023-12-11 17:47:19 +01:00
Henrik Rydgård
25ab7b9170 Fix a bunch of edge cases 2023-12-11 15:58:08 +01:00
Henrik Rydgård
8d8ff5886b Fix issue where nothing had started a render pass when we wanted to clear the screen. 2023-12-11 13:06:15 +01:00
Henrik Rydgård
e8f70594a4 Implement running the game in the background on the pause screen. Fix some bugs. 2023-12-11 12:41:44 +01:00
Henrik Rydgård
6d51fbc1e6 Refactor UI background rendering. There's now a BackgroundScreen. 2023-12-10 22:26:46 +01:00
Henrik Rydgård
0ff0ad9140 Remove preRender/postRender methods from screens, in favor of a mode parameter. 2023-12-10 14:09:55 +01:00
Henrik Rydgård
22295a6412 Plumb through a ScreenRenderMode parameter 2023-12-10 13:05:17 +01:00
Henrik Rydgård
b22e27a537 Compat: Enforce "RequireDefaultCPUClock" by disabling overclocking for these games
Instead of just warning.

Fixes #12811
2023-12-07 14:06:41 +01:00
Henrik Rydgård
aed8bc6d7b RetroAchievements: Finish the Challenge->Hardcore rename 2023-12-03 16:41:29 +01:00
Henrik Rydgård
b629c99dbf Change "Challenge Mode" to "Hardcore Mode", according to RetroAchievements guidelines 2023-11-30 18:11:03 +01:00
Henrik Rydgård
707670cfcf Fix time tracking during pause 2023-11-26 19:49:21 +01:00
Henrik Rydgård
31c85ae0a5 Add the basics of a played-time tracker. 2023-11-26 19:15:38 +01:00
Henrik Rydgård
bd08fdd566 Forgot some cases where I need to enable save (but not load) state in challenge mode, if the option is set 2023-11-16 20:13:47 +01:00
Henrik Rydgård
d4833b72b1 Fix the last place where we were processing UI input events on the wrong thread 2023-11-11 11:21:36 +01:00
Henrik Rydgård
0ad2827e14 Vulkan: Fix synchronization when shutting the GPU down in-game. 2023-10-11 12:27:39 +02:00
Henrik Rydgård
12de5bdead Add hotkey to exit the app from within gameplay
Requested by bluemonkeyinsuit07 and trivial to implement, so..
2023-10-04 14:10:14 +02:00
Henrik Rydgård
008055d242 Prevent duplicate alternate-speed status messages 2023-10-01 18:00:04 +02:00
Henrik Rydgård
19e4de5088 Change global UI messages to use an enum instead of strings.
Makes it easier to add new ones and delete outdated ones without missing
any uses.
2023-09-30 11:37:02 +02:00
Henrik Rydgård
ee93e4a2ca Batch axis events all the way into ControlMapper 2023-09-29 11:14:19 +02:00
Henrik Rydgård
8784ece623 Fix the chat window closing on pressing the X key.
It's better to handle the chat window on the queued event path.
2023-09-12 10:25:04 +02:00
Henrik Rydgård
4df4adb936 Fix closing the chat window with ESC, see #18134 2023-09-11 17:37:50 +02:00
Henrik Rydgård
109205a56a Add return value to UnsyncTouch 2023-09-04 11:00:06 +02:00
Henrik Rydgård
ca40de852a
Merge pull request #17960 from hrydgard/control-mapping-fixes
Controls: Make the analog/digital mapping clash resolution more gentle.
2023-08-24 09:52:40 +02:00
Henrik Rydgård
feb0ea245e Add mappable key to toggle networking
Fixes #17352

Requested in #17343
2023-08-23 22:14:51 +02:00
Henrik Rydgård
be2f81c3eb Controls: Make the analog/digital mapping clash resolution more gentle.
Now takes the time into account, so clashing digital input will only shrink
analog inputs once it's a few seconds old.

Also fixes a bug where if there are both inputs, it was hard to reach
the limits because the digital input itself ended up getting shrunk.

This might help #17860
2023-08-23 18:51:27 +02:00