Commit Graph

7242 Commits

Author SHA1 Message Date
Stenzek 40589dcd93
Settings: Add advanced option to set delay for max CD speedup
Affects both seeks and reads.
2025-01-09 21:21:12 +10:00
Stenzek 4449ae7904
Settings: Rearrange fields to avoid padding 2025-01-09 21:21:12 +10:00
Stenzek 9b339d4bff
PostProcessing: Remove StageCount key for game settings
Potentially removes the ini file if it's otherwise empty.
2025-01-09 21:21:12 +10:00
Stenzek 2b4e60a5bf
FullscreenUI: Fix loading screen font 2025-01-09 21:21:12 +10:00
Stenzek bed3dd6950
FullscreenUI: Use span for DrawIntListSetting() 2025-01-09 17:54:12 +10:00
Stenzek b76ebd2a7b
FullscreenUI: Fix scrollbar rounding in choice dialogs 2025-01-09 17:53:52 +10:00
Stenzek 561397a53c
CDROM: Add 'maximum' read speedup option
"Instant" seek is now renamed to Maximum as well, for consistency.
2025-01-09 15:23:47 +10:00
Anderson Cardoso 0ad0859e9d
Atualização Português do Brasil (#3351)
Atualizado para a última versão
2025-01-09 15:23:25 +10:00
Stenzek fc8fbd8f08
Qt: Disable shared memcard settings outside of shared mode 2025-01-08 16:36:05 +10:00
Stenzek 08a3c31bff
CMake: Fix scmversion PRE_BUILD warning 2025-01-08 15:34:21 +10:00
Stenzek 87743c776d
FullscreenUI: Fix crash reloading postfx shaders 2025-01-08 15:29:56 +10:00
Stenzek 45afc8f7b1
OpenGLDevice: Add map-based stream buffer paths
MapAndSync ends up around 25% faster on ancient Mali drivers without
ARB_buffer_storage support.
2025-01-08 14:14:06 +10:00
Stenzek 1daa60c64d
GPU: Use tristrips for presentation as well 2025-01-08 00:14:15 +10:00
Stenzek 670dc461c1
GPU/HW: Slight re-shuffling of field offsets
Free up some bits in the middle.
2025-01-07 23:20:26 +10:00
Stenzek 0030bc2699
GPUDevice: Ensure 16 byte minimum UBO alignment 2025-01-07 23:20:25 +10:00
Stenzek 4c801c3ff3
GPUDevice: Move size-matches check into ResizeTexture() 2025-01-07 23:20:25 +10:00
Stenzek b9186139d0
GPU/HW: Use sized tristrips instead of fullscreen quads 2025-01-07 23:20:25 +10:00
Stenzek 9bc5ffe091
Common: Add Vector4i xyxy(Vector2i) 2025-01-07 23:20:25 +10:00
Stenzek 1063c3da7f
Qt: Add 'Enable Touchpad' to Controller Settings
Have to shuffle a few other things around to fit in 768p.
2025-01-07 13:42:45 +10:00
Stenzek 0a124ee839
SDLInputSource: Support forwarding touchpad to pointer 2025-01-07 13:40:42 +10:00
Stenzek 2b7b3d8729
SDLInputSource: Allow inverting pad axes
Not really sure where this would happen, but whatever.
2025-01-07 13:01:37 +10:00
Stenzek dacbb7c718
Qt: Behaviour -> Behavior
US English is used everywhere else, consistency > *.
2025-01-07 12:50:48 +10:00
Stenzek 6318223f58
Qt: Remove Apperance/Update settings from Game Properties 2025-01-07 12:48:27 +10:00
Stenzek 092e819a07
ImGuiFullscreen: Move texture loading to async tasks
Two threads instead of one, speeds things up a bit.
2025-01-07 12:40:08 +10:00
Stenzek cae1ddc971
GPU: Ensure batches are flushed before presenting frame
Fixes occasional assertion failing when using the debugger.
2025-01-07 12:28:15 +10:00
Stenzek dc9cdddd4c
Qt: Add zst/xz GPU dumps to file filter 2025-01-06 21:18:13 +10:00
Stenzek 0960160589
System: Don't check for subchannel with GPU dump 2025-01-06 21:17:27 +10:00
Stenzek 1765590a6f
Qt: Add 'Disable Window Rounded Corners' option 2025-01-05 16:39:57 +10:00
Stenzek 5ee069fc63
FullscreenUI: Add option to display PS buttons instead of Xbox 2025-01-05 16:00:15 +10:00
Stenzek 4d6124d41b
Platform: Fix AppImage dbus library mismatch 2025-01-05 14:08:22 +10:00
Stenzek 6043b2331f
Platform: Fix incorrect dbus shared library name
Fixes screensaver inhibit on Linux.
2025-01-04 21:14:46 +10:00
Stenzek 886040b257
Qt: Display 'No Image' instead of 0x0 in status 2025-01-04 19:21:47 +10:00
Stenzek 8353a33e89
X11Tools: Fix refresh rate query failing with XLib handle 2025-01-04 18:35:15 +10:00
Stenzek 076f4a6293
Qt: Fix delay in progress dialog opening
Applies to updater, verify, etc.
2025-01-04 16:59:33 +10:00
Stenzek 920f25427e
Qt: Simplify Fullscreen UI state tracking
Fixes application closing if the system was shut down while fullscreen.
2025-01-04 16:09:35 +10:00
Stenzek 78ccbc710c
Cheats: Fix error while exporting 2025-01-04 12:52:26 +10:00
Anderson Cardoso 548f1da5af
Atualização Português do Brasil (#3350) 2025-01-04 12:51:08 +10:00
Stenzek 9054801341
ImGuiManager: Update viewport and display size
Fixes the single frame of incorrect draw size when resizing
the window with the Big Picture UI.
2025-01-03 20:16:38 +10:00
Stenzek 80855090d5
Qt: Rewrite cover loading/generation
This was always wrong, QPixmaps shouldn't be manipulated outside of
the UI thread, and it used to crash in debug builds.

Also uses a placeholder image instead of a black image while covers
are loading/generating.
2025-01-03 20:16:38 +10:00
Stenzek db14824d61
System: Use task queue for saving states/screenshots/gpudumps
System shutdown no longer needs to block. Gets rid of the slight
hitch when shutting down and saving state with the Big Picture UI.
2025-01-03 20:16:38 +10:00
Stenzek 547601559c
Common: Add TaskQueue class 2025-01-03 20:16:37 +10:00
Stenzek 52e6e8ff1e
PostProcessing: Compile warning fix 2025-01-03 18:19:12 +10:00
Stenzek f9bb413a40
Qt: Enable clear button on hotkey search 2025-01-03 15:28:43 +10:00
Stenzek dda10d3576
Qt: Add search box to hotkey settings 2025-01-03 14:58:50 +10:00
Stenzek b2c8d25638
GPUBackend: Only display CPU thread blocked messages if queueing 2025-01-03 14:49:53 +10:00
Stenzek 88cd086633
Cheats: Eliminate extra newlines during code editing 2025-01-03 13:36:58 +10:00
Daniel Nylander e096827df8
Updated Swedish translation (#3349) 2025-01-03 13:36:40 +10:00
Stenzek e08dda0a0a
CPU: Declare state with constinit 2025-01-02 21:42:41 +10:00
Stenzek 87e367076d
PostProcessing: Get rid of Timer global 2025-01-02 21:40:01 +10:00
Stenzek ba15a76d7b
ImGuiManager: Pack state in struct 2025-01-02 21:33:53 +10:00
Stenzek d3fe1dfc2c
ImGuiManager: Separate debug and OSD fonts
Don't need to rasterize the former if it's not used, and saves blowing
up the debug window font size if the OSD scale is not 100%.
2025-01-02 21:25:25 +10:00
Stenzek fc5553a8c7
GTE: Improve reverse transform freecam
Transform the move direction, that way it behaves more FPS-camera like.
2025-01-02 20:56:22 +10:00
Stenzek 90cb266886
Common: Small tidy-up and constexpr-ify GSMatrix4x4 2025-01-02 20:52:19 +10:00
Stenzek 83b4757788
Qt: Controller Test should be disabled while running 2025-01-02 02:11:50 +10:00
Stenzek 08cd649187
InputManager: Fix pointer-bound bind movement
i.e. psmouse

Regression from c4e0e7fade
2025-01-02 02:10:31 +10:00
Stenzek cd873eb6c1
GTE: Add 'Reverse Transform Order' option to freecam 2025-01-02 02:09:02 +10:00
Stenzek 3a64c5e4b3
FullscreenUI: Improve field alignment in achievements login 2025-01-02 01:07:18 +10:00
Stenzek b21312867b
FullscreenUI: Fix popup sizes for postfx settings 2025-01-02 01:07:11 +10:00
Stenzek 179e2f1999
FullscrenUI: Fix field spacing scaling in game list view 2025-01-02 00:52:40 +10:00
Stenzek 0fdf984b71
GTE: Disable freecam on Android
Freecam is disabled on Android because there's no windowed UI for it.
And because users can't be trusted to not crash games and complain.
2025-01-02 00:38:29 +10:00
Stenzek e036318559
Qt: Add 'Controller Test' to tools menu 2025-01-02 00:31:15 +10:00
Stenzek c11468b9f1
Qt: Drop log messages if rate is too high
Prevents the application locking up and memory usage going bananas
if log messages do end up spammed at crazy rates.
2025-01-02 00:14:11 +10:00
Stenzek 37e5e64ddc
System: Move state display updates to call sites
Fixes black frames when changing settings with runahead/rewind enabled.
2025-01-01 23:05:08 +10:00
Stenzek f3b7686457
System: Fix crash with memory save states + renderer switch 2025-01-01 22:55:31 +10:00
Stenzek 5ac5a1d246
Hotkeys: Fix resolution scale with memory save states 2025-01-01 22:02:55 +10:00
Stenzek 1d63648d68
Qt: Forward text input to aux render windows
Fixes text input in freecam window.
2025-01-01 22:02:55 +10:00
Stenzek dcd439e7d8
GTE: Add 'Free Camera' feature 2025-01-01 22:02:55 +10:00
Stenzek 22202f1607
Common: Fix vector blend32() and dot() on SSE2 2025-01-01 22:02:55 +10:00
Stenzek d0e1efb1fd
Common: Add more GSMatrix ops 2025-01-01 21:28:16 +10:00
Stenzek f51dda3e66
GPUDevice: Allow this-frame pooled textures when not uploading data
It won't break the render pass.
2025-01-01 19:38:48 +10:00
Stenzek a08acdb93a
System: Improve texture recycling when changing rewind/runahead settings
Fix suprious failures when changing rewind settings when low on VRAM.
2025-01-01 19:33:01 +10:00
Stenzek 57be62ffd1
FullscreenUI: Remove a couple of untranslated titles 2025-01-01 14:28:05 +10:00
Stenzek 884459d1cf
FullscreenUI: Fade alpha change when switching to postfx settings 2025-01-01 14:25:56 +10:00
Stenzek ffef0c2e38
CPU/CodeCache: Don't compile invalid jumps via block links 2025-01-01 14:10:55 +10:00
Stenzek d69d25431e
VulkanDevice: Hopefully fix init under Vulkan 1.0 drivers 2024-12-31 23:43:38 +10:00
Stenzek f25302c847
CPU/Recompiler: Actually use fetch ticks for uncached EXP1 2024-12-31 17:29:40 +10:00
Stenzek 34f2600f99
CPU/Recompiler: Fix ICache update codegen on RISCV64 2024-12-31 16:12:19 +10:00
Stenzek 4c08c716c4
CPU/Recompiler: Fix dispatcher crash on RISCV64 2024-12-31 15:33:34 +10:00
Stenzek a4b359672c
Common: Switch fastjmp.cpp asm to tabs
Consistency.
2024-12-31 15:33:17 +10:00
Stenzek 79b0533df2
Common: Fix RISC-V/64 fastjmp buffer size 2024-12-31 15:30:26 +10:00
Stenzek b76618fdf4
System: Should call PGXP Reset not Initialize() in InternalReset() 2024-12-31 15:24:36 +10:00
Stenzek 1bf076c74f
VulkanDevice: Fix crash on shutdown if swapchain creation fails 2024-12-31 15:10:55 +10:00
Stenzek e0877c1922
System: Add IsUsingPS2BIOS() 2024-12-31 14:58:31 +10:00
Stenzek 69826f2101
FullscreenUI: Fix incorrect section for Deinterlacing Mode 2024-12-31 14:15:42 +10:00
Stenzek 7228f6f1cf
System: Don't fail startup if cpuinfo init fails 2024-12-30 18:11:56 +10:00
Stenzek 3c5db39ee4
GPU/SW: Remove polygon size checks from backend
It's already checked before the draw is handed off.
2024-12-30 18:11:52 +10:00
Stenzek 4d4523dc04
GPU: Use same early culling rules for lines as polygons 2024-12-30 18:11:52 +10:00
Stenzek c5bd4101b3
GPU: Refactor and simplify deinterlacing
Both HW and SW deal with half-height buffers coming in now.
2024-12-30 14:36:17 +10:00
Stenzek 4e928d7ce1
Common: Work around LLVM LTO inline asm issue
LLVM bug 61991.
2024-12-30 02:57:22 +10:00
Stenzek 401582bb2b
PlatformMisc: Load libdbus at runtime
The static library can't link to the ARM binary when cross-compiling.
2024-12-30 01:57:08 +10:00
Stenzek 9cba1decad
GPU/HW: Compiler warning fix 2024-12-29 22:34:39 +10:00
Stenzek 468c907fd6
Cheats: Compiler warning fix 2024-12-29 22:34:31 +10:00
Stenzek d4e393f1a8
Common: Fix write overflow with nosimd vector 2024-12-29 22:34:14 +10:00
Stenzek 242561debf
CPU/Recompiler: Align dispatchers and JIT blocks
A couple of percent difference if we're lucky. Practically probably <1%.
2024-12-29 18:11:58 +10:00
Stenzek 82a843c121
RegTest: Log state and RAM hashes on exit
Useful for checking determinism.
2024-12-29 17:25:55 +10:00
Stenzek 1ed9e609a5
RegTest: Support replaying GPU dumps 2024-12-29 17:25:55 +10:00
Stenzek b7832e609f
GPU/HW: Vectorize flipped sprite handling 2024-12-29 17:25:55 +10:00
Stenzek 1a211e0a21
GPU/HW: Fix mask bit regression from FF8 fix
Fixes overbright polygons appearing in Silent Hill.
2024-12-29 17:25:54 +10:00
Stenzek 0e6ade067c
FileSystem: Add error reporting to DeleteDirectory() 2024-12-29 17:25:54 +10:00
Stenzek 5c3abb490d
Common: Fix vector sse2_max_u16()
Fixes UV clamping in SSE2 build, e.g. Jumping Flash.
2024-12-29 13:56:10 +10:00
Stenzek 799f5bdf97
GPU: Assume vertex commands are 8-byte aligned 2024-12-28 20:24:22 +10:00
Stenzek 8c807118c0
GPUDevice: End timer on command flush
Fixes incorrect GPU usage readings in OpenGL, D3D11 is still
problematic, at least on AMD.
2024-12-28 20:24:21 +10:00
Stenzek 7bb0c7d1fb
InputManager: Fix pointer scale loading 2024-12-28 20:24:21 +10:00
Stenzek c2589461e9
GPU/HW: Remove extra debug group pop 2024-12-28 20:24:21 +10:00
Stenzek 74fd217afb
GPU/HW: Always update/load/save CLUT
We have the headroom with multithreading now, and it prevents issues
saving/loading state in loading screens in some games.
2024-12-28 20:24:21 +10:00
Stenzek 25b0bb752a
GPU/HW: Try truncating culled vertices
What is this monstrosity? Final Fantasy VIII relies on X coordinates
being truncated during scanline drawing, with negative coordinates
becoming positive and vice versa. Fortunately the bits that we need
are consistent across the entire polygon, so we can get away with
truncating the vertices. However, we can't do this to all vertices,
because other game's vertices break in various ways. For example,
+1024 becomes -1024, which is a valid vertex position as the ending
coordinate is exclusive. Therefore, 1024 is never truncated, only
1023. Luckily, FF8's vertices get culled as they do not intersect
with the clip rectangle, so we can do this fixup only when culled,
and everything seems happy.
2024-12-28 20:24:21 +10:00
Stenzek c99625e4c3
GPU: Move vertex culling to GPU thread
i.e. push all primitives through unless they are oversized, which the
GPU will definitely skip.

Needed because of coordinate truncation in Final Fantasy VIII, these
scenes will now render correctly with the software renderer again.
2024-12-28 20:24:09 +10:00
Stenzek 58b0ccf3fc
Common: Add 2D vector formatters 2024-12-28 19:59:25 +10:00
Stenzek 69ed6e5e58
Hotkeys: Screenshot should not be present on Android
Since it saves to app-private, users would complain that the app is
using too much data.
2024-12-27 19:39:23 +10:00
Stenzek 2da692b341
CPU/Recompiler: Swap bl{x,r} for b{x,r} on ARM
Not a subroutine call.
2024-12-27 15:02:40 +10:00
Stenzek 2a8cfc7922
CPU/CodeCache: Simplify code LUT addressing
One more instruction on x86/ARM32, no additional instructions on ARM64.

Worth it so that the application doesn't crash if the game jumps to an
invalid PC. Note that the lower 2 bits are truncated, so an unaligned
jump will round down to the closest instruction. Obviously not correct,
but if a game ends up doing this, it's a lost cause anyway.
2024-12-27 15:02:40 +10:00
Stenzek 4e5b4ba071
CPU: Fix AdEL/IBE on instruction fetch
CAUSE and EPC were swapped for the latter.
2024-12-27 15:02:40 +10:00
Stenzek 4b34825afd
CPU/CodeCache: Remove InstructionInfo pc field
No longer needed since oldrecs are gone.
2024-12-27 15:02:40 +10:00
Stenzek ce71b168c3
CPU/CodeCache: Add static to a couple of missing functions 2024-12-27 15:02:40 +10:00
Stenzek a44dd1882f
RegTest: Update CLI help 2024-12-27 15:02:40 +10:00
Anderson Cardoso 7b9664d6f2
Atualização Português do Brasil (#3348)
Atualizado para a última versão.
2024-12-27 15:02:31 +10:00
Stenzek 9921d2074c
Achievements: Fix serialization on Linux 2024-12-26 18:00:29 +10:00
Stenzek 5c83bbe5c5
FullscreenUI: Slight tidy-up to achievements login dialog 2024-12-26 18:00:29 +10:00
Stenzek 272aa4f933
ImGuiManager: Add Begin/EndTextInput() 2024-12-26 18:00:29 +10:00
Stenzek fa993849f7
Qt: Update English/Plural strings 2024-12-26 01:58:24 +10:00
Stenzek 6903abba55
CDROM: Adjust missed INT1 sector behaviour
Max Power Racing and C3 Racing are slow with their DMAs out,
and get confused when an additional INT1 comes inbetween reading
the sector header and data.

Fixes these games crashing during loading. 5000 cycles is more in
line with what the real mech would do anyway, it's pretty slow.
2024-12-26 01:55:55 +10:00
Stenzek 0528ce567c
Achievement: Fix glitchy fade indicator animation 2024-12-25 23:01:58 +10:00
Stenzek 00eb54cd15
Achievements: Refactor state serialization
Fix load failures, and eliminate the buffer copy.
2024-12-25 22:23:09 +10:00
Stenzek d360564cef
GameList: Fix lock not re-acquired on failure 2024-12-25 21:55:19 +10:00
Stenzek 8c2fe430d8
GPU/TextureCache: Apply 'Dump Replaced Textures' option to backgrounds too 2024-12-25 15:53:53 +10:00
Stenzek b03127b206
GPU: Move background dumping to HW+GPU thread
And only dump when the mask bit check is not enabled.

The replacements are gated by the mask bit check anyway, so there's
no point dumping anything that can't be replaced.
2024-12-25 15:53:53 +10:00
Stenzek 6f3e9913f5
GPU/HW: Fix VRAM write dumping only first row
Still has race conditions.
2024-12-25 15:53:53 +10:00
Stenzek dd180f2fd6
System: Fix dump VRAM writes not updating on GPU thread 2024-12-25 15:53:53 +10:00
Stenzek b33aa31db8
FullscreenUI: Update translation strings
I always forget to do this...
2024-12-25 15:53:46 +10:00
Stenzek 8f6db2c8fa
Qt: Add missing icon to System Display 2024-12-25 15:13:50 +10:00
Stenzek b81c87958f
Qt: Fix F3 getting intercepted when game/FSUI active 2024-12-25 15:11:40 +10:00
Stenzek d010f768c4
FullscreenUI: Fix smooth scrolling in game/state/etc lists 2024-12-25 15:02:09 +10:00
Stenzek ad7318f5f9
FullscreenUI: Fix spacing in game list 2024-12-25 14:37:26 +10:00
Stenzek 0565320036
ImGuiFullscreen: Enable smooth scrolling for file/choice selectors 2024-12-24 13:54:23 +10:00
Stenzek c4e0e7fade
InputManager: Fix mouse-mapped axes getting stuck
Regression from f0deab2.
2024-12-24 13:52:04 +10:00
Stenzek dc18ce2c2a
System: Warn if fastmem mode is not optimal 2024-12-24 13:16:37 +10:00
Stenzek f4265edb2d
SmallString: Add append_vformat() 2024-12-24 13:16:12 +10:00
Stenzek 86d78e5eca
GPU/TextureCache: Only use shader bilinear for initial pagefill
Make bilinear replacements behave the same as nearest.
2024-12-24 13:05:38 +10:00
Stenzek 33083cfae1
Settings: Add missing bitfield width 2024-12-24 01:21:07 +10:00
Stenzek 00278fa905
PIO: Fix failure to load state with different cart type 2024-12-24 00:24:37 +10:00
Stenzek b8fa97e1a7
GPU: Fix sprite texture filtering with TC enabled 2024-12-24 00:24:37 +10:00
Stenzek 89f11095bc
CPU: GTE completion cycle should be reset/serialized
Yay more determinism breakage...
2024-12-24 00:24:37 +10:00
Stenzek 9f73e690ad
CPU: Debug mode flag should be updated on state load 2024-12-24 00:24:36 +10:00
Stenzek ac05c35292
CPU: Fix DCIC not being cleared on reset
Stops interpreter mode being unintentionally forced after
restarting some games.
2024-12-24 00:24:36 +10:00
Stenzek 18c509a679
CPU/Recompiler: Exit block early on DCIC/BPCM change
Fixes booting Xplorer cartridge with recompiler.
2024-12-24 00:24:36 +10:00
Stenzek 307bd86b72
SPU: Fix determinism loss when loading state where IRQs differ 2024-12-24 00:24:36 +10:00
Anderson Cardoso 2aa466d1c6
Atualização Português do Brasil (#3347)
Atualizado para a última versão.
2024-12-24 00:24:23 +10:00
Stenzek 9a22ac3c70
GPU/HW: Download VRAM when enabling sw-for-readbacks 2024-12-23 17:55:47 +10:00
Stenzek 8e254c4baf
GPUBackend: Fix VRAM loss with runahead/rewind 2024-12-23 17:55:33 +10:00
Stenzek f3f99f7eac
FullscreenUI: Support renderer swapping without restart 2024-12-23 14:37:38 +10:00