Commit Graph
53 Commits
Author SHA1 Message Date
Henrik RydgårdandClaude Opus 5 bd505b7f1c Interpreter: implement the FPU divide-by-zero exception
div.s now maintains fcr31's Cause.Z and (when the trap is masked) sticky
Flag.Z bits, in the standard MIPS bit positions. Only a finite non-zero
dividend counts, so 0/0, inf/0 and NaN operands are excluded per IEEE 754.

When the guest has the trap unmasked, the new Core_FPUException() reports it
with the usual module suffix and MIPS call stack, and fd is left unwritten as
hardware would. That's gated behind a new developer setting, off by default:
PSP threads start with fcr31 = 0x00000e00, i.e. three of the traps already
enabled, and games divide by zero without meaning anything by it. The fcr31
bits are updated either way, so what the game reads back doesn't depend on
the setting.

Interpreter only - the JITs are unchanged, and none of this is reachable
under them.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R9fKXvYBrnqtp1QQGaGWVv
2026-08-29 23:40:48 +02:00
Henrik Rydgård a317890c08 Remove the GPUDebugInterface class
Just a pointless extra layer in the class hiearchy, making it
unnecessarily hard to modify the interface.

Might as well hit GPUCommon directly.
2026-06-02 11:15:08 +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 a78e0e76de Disable the GPU profiler for OpenGL. Also restrict to in-game. 2026-05-06 00:27:20 +02:00
Henrik Rydgård 75453632f9 Handle inset adjustements on the C++ side, handle them better in the UI. 2026-03-14 18:13:37 +01:00
Henrik Rydgård 160e2c4f9b Refactor: Call GetLayoutBounds on the screen instead of the context where possible.
This will allow screens to influence the layout bounds in a unified way
2026-03-14 13:07:48 +01:00
Henrik Rydgård f2ebcf42cb On the pause screen, ask for confirmation when creating configs. Too easy to slip and do by accident. 2026-03-12 15:41:24 +01:00
Henrik Rydgård 93264b3920 Small tweak of FPS counter position 2026-02-08 18:44:48 +01:00
Henrik Rydgård 45ef8120f3 Minor UX 2025-10-27 13:17:48 +01:00
Henrik Rydgård 9467643bd4 Fix formatting string bug in debug overlay 2025-10-21 15:04:15 +02:00
Henrik Rydgård 042cf87248 Rework the present mode settings, refactor. 2025-10-20 21:28:38 +02:00
Henrik Rydgård 176c55da25 Remove unused "interval" concept from presentation mode 2025-10-19 18:18:06 +02:00
Henrik Rydgård 2cf0ffea73 Allow choosing the frame presentation mode in detail in Vulkan mode 2025-08-21 01:01:16 +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 8d6f8b9399 Cleanup and paranoia 2025-06-06 10:34:13 +02:00
Henrik Rydgård 80147f318e Remove PSP_CancelBoot, assorted cleanup 2025-05-13 13:58:28 +02:00
Henrik Rydgård 1a93d8a1f9 Some work on symbol export, minor cleanups 2025-03-29 14:23:59 +01:00
Henrik Rydgård 9ae8691623 Fix FPS display regression 2025-03-29 11:16:33 +01:00
Henrik Rydgård 89e031fb8a Logging cleanup 2025-03-08 23:39:22 +01:00
Henrik Rydgård 01d96fd949 Linux warning fixes 2025-03-05 17:02:46 +01:00
Henrik Rydgård 2f58084134 Crash screen: Add more suggestions 2025-03-02 13:51:17 +01:00
Henrik Rydgård ee772bb1e2 Refactor querying the battery percentage into a regular sysprop 2025-02-11 10:31:18 -06:00
Henrik Rydgård 419c329b06 Show active compat flags on crash screen 2024-12-10 01:43:44 +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
Henrik Rydgård 204672800c Warning fix 2024-09-07 15:58:03 +02:00
Henrik Rydgård 320a1cfc8f Merge pull request #19325 from Nabile-Rahmani/display-refresh-rate-option
[Feature] Option to override the display refresh rate
2024-07-17 20:25:38 +02:00
Henrik Rydgård e01ca5b057 Logging API change (refactor) (#19324)
* Rename LogType to Log

* Explicitly use the Log:: enum when logging. Allows for autocomplete when editing.

* Mac/ARM64 buildfix

* Do the same with the hle result log macros

* Rename the log names to mixed case while at it.

* iOS buildfix

* Qt buildfix attempt, ARM32 buildfix
2024-07-14 14:42:59 +02:00
Nabile Rahmani 730613ce67 Scale speed percentage calculation to eliminate micro deviations 2024-07-14 11:30:11 +02:00
Nabile Rahmani 480b94f4d2 Fix speed percentage calculation 2024-07-14 05:10:28 +02: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 8397fd6791 Also disable the GPU JIT tests on ARM64, not applicable 2024-04-29 11:13:35 +02:00
Henrik Rydgård c5791764d8 Make the i18n T function use std::string_view
Buildfixes, crashfixes

One more

Android buildfix

Buildfix Qt
2024-02-12 18:44:39 +01:00
Henrik Rydgård 8670dafdf5 Fix duplicate in th, fix case of "JIT using IR" 2024-01-28 17:26:26 +01:00
Henrik Rydgård 622aeaab6d Hopefully robustify some logic in EmuScreen enough 2024-01-24 00:06:01 +01:00
Henrik Rydgård f7785a56f4 Add some tips to the crash screen 2024-01-19 17:05:30 +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 3621529df9 Debug: Add quick "Framebuffer List" overlay. 2023-12-02 14:07:31 +01:00
Henrik Rydgård 95e86c73b8 SasAudio: Some cleanup and debug overlay improvements
Shows "BAD" in the overlay if address out of range.

Which does happen in Afterburner, see issue #14010.
2023-09-05 12:15:13 +02:00
Henrik Rydgård 3be0ebce6d Debug overlay: Move Sas data to the audio debug screen. Disable text wrapping. 2023-08-17 15:18:50 +02:00
Henrik Rydgård 572595cc7b Refactor: Lift the frame time history data up one level into thin3d 2023-08-16 11:45:26 +02:00
Henrik Rydgård ff6e118fff Get rid of a lot of ifdefs around presentation mode. Instead, set things dynamically. 2023-08-14 11:02:29 +02:00
Henrik Rydgård 870c45edd7 Fix flipped check for debug overlays 2023-08-14 11:02:29 +02:00
Henrik Rydgård dc4de340b3 Some debug overlays don't make sense when not in-game, disable them. Minor feedback fixes. 2023-08-13 21:54:24 +02:00
Henrik Rydgård 8fec4fb02f wip 2023-08-08 13:26:27 +02:00
Henrik Rydgård c6c79a98c7 Merge pull request #17855 from hrydgard/more-achievement-ui-fixes
Achievement list: Support the more detailed categorization.
2023-08-07 01:26:09 +02:00
Henrik Rydgård cd0f2eb401 Achievement list: Support the more detailed categorization, RC_CLIENT_ACHIEVEMENT_LIST_GROUPING_PROGRESS 2023-08-06 15:43:33 +02:00
Nemoumbra c2f9ae2e16 Buildfix for VS2017 2023-08-06 15:06:54 +03: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 0530dc57a8 Implement frame time measurement on Android using VK_GOOGLE_display_timing 2023-08-03 12:59:25 +02:00
Henrik Rydgård e16cac6548 Initial work on supporting VK_GOOGLE_display_timing. Not working yet. 2023-08-03 11:11:16 +02:00