Commit Graph

7171 Commits

Author SHA1 Message Date
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
Stenzek 406cd1b6a1
Qt: Shuffle a couple of graphics options
Save a tiny bit of vertical space.
2024-12-23 14:24:17 +10:00
Stenzek 9e04b0bf55
GPU/TextureCache: Add 'Always Track Uploads' option 2024-12-23 13:52:23 +10:00
Stenzek a8361f985e
GPU: CLUT should not be saved on CPU thread memory state 2024-12-22 16:48:45 +10:00
Stenzek 7f1ebd3767
PageFaultHandler: Warning fix 2024-12-22 16:48:45 +10:00
Stenzek 448009f4ef
CPU/CodeCache: Fastmem RAM faults are always writes 2024-12-22 16:48:45 +10:00
Stenzek 515a4d07fb
System: Fix pre-frame sleep getting stuck 2024-12-22 16:48:45 +10:00
Stenzek 0b4e302c22
GPU: Implement PGXP for lines 2024-12-22 16:48:45 +10:00
Stenzek b81287efd2
GPUBackend: Remove duplicate num_vertices 2024-12-22 16:48:45 +10:00
Stenzek 9b62632951
Achievements: Re-add NeedsIdleUpdate()
Forgot I needed this on Android..
2024-12-22 16:48:24 +10:00
Anderson Cardoso 556a53e564
Fix Typo in Russian tr (#3346) 2024-12-22 16:48:00 +10:00
Stenzek 080d30bf0c
GPU: Slightly adjust PAL active range
Gets the PAR closer to the expected value of 59/94 with a divider of 4.
2024-12-21 23:05:30 +10:00
Stenzek ad980a7004
GPU: Fix 480i resolution display in OSD 2024-12-21 22:20:41 +10:00
Stenzek 0aa89ec7b0
System: Fix some GPU settings not updating 2024-12-21 18:29:56 +10:00
Stenzek e1bd5690ac
Misc: Slightly reduce include pollution from settings.h 2024-12-21 15:28:27 +10:00
Stenzek 62285dcf33
Settings: Split into GPU and main settings
That way the GPU thread copy doesn't need fields it never touches.
2024-12-21 14:53:15 +10:00
Stenzek 6b754e6759
FullscreenUI: Fix CPU/GPU thread race on achievements toggle 2024-12-21 14:40:24 +10:00
Stenzek 26db661a05
GPU: Remove global indirection 2024-12-21 14:35:12 +10:00
Stenzek c4b0430d5e
System: Remove unused SetExpansionROM() 2024-12-19 23:32:15 +10:00
Stenzek 7826c258b0
System: Frame step after runahead
Makes it behave as expected.
2024-12-19 23:32:15 +10:00
Stenzek 2d659fc3eb
GPU: Move backend work off CPU thread 2024-12-19 23:32:15 +10:00
Stenzek 831c982f3b
System: Rewrite memory save state handling
Makes it more friendly to GPU thread.
2024-12-19 22:42:28 +10:00
Stenzek 6993e6c31f
GPU/SW: Fix double draws of polyline vertices 2024-12-19 22:42:02 +10:00
Stenzek 10e2079ee4
CPU/Recompiler: Don't use far code for mtc0 cache check
Redundant for a few instructions.
2024-12-19 18:44:08 +10:00
Stenzek fe1fa765f7
CPU/Recompiler: Don't back up value to stack in mtc0
Fixes misaligned stack that could crash in log messages.
2024-12-19 18:44:08 +10:00
Stenzek 568667753d
CPU/CodeCache: Avoid log calls in faults outside of JIT code
Could be in other functions that are unsafe to call log functions from.
2024-12-19 18:44:08 +10:00
Stenzek 7116a80435
Common: Add RESTRICT macro
Gotta coerce the compiler into generating better code.
2024-12-19 16:50:03 +10:00
Stenzek 31c1cfa650
Achievements: Remove unused NeedsIdleUpdate() 2024-12-19 12:46:59 +10:00
Stenzek 7442ec2f19
JogCon: Implement command 0x44 2024-12-19 12:42:01 +10:00
Daniel Nylander fa2442deaf
Updating Swedish translation (#3345)
* Updated Swedish translation
2024-12-19 12:06:06 +10:00
Anderson Cardoso 8df2a2c446
Atualização Português do Brasil (#3344)
Atualizado para última versão
2024-12-17 14:28:15 +10:00
Stenzek f010d81652
ISOReader: Add XA and raw extraction modes 2024-12-17 14:19:41 +10:00
Stenzek b68370dff7
Mouse: Move s8 clamp to after subtraction
Stops the mouse from accumulating long distances which are applied
over several frames. Seems to "feel" slightly better.
2024-12-16 01:53:03 +10:00
Stenzek cc52320dfe
FullscreenUI: Update translation string list 2024-12-16 01:30:20 +10:00
Daniel Nylander 4216eef420
Updated Swedish translation (#3343) 2024-12-16 01:29:24 +10:00
Stenzek b634eecd21
System: Allow separate configuration for multi-disc games 2024-12-16 01:22:48 +10:00
Stenzek fda10a6978
FullscreenUI: Remove legacy 'Enable Cheats' option
It did nothing.
2024-12-16 01:02:04 +10:00
Stenzek 43af57d735
System: Fix UpdateGTEAspectRatio() during initialization 2024-12-15 22:12:43 +10:00
Stenzek 1f1a664908
InputManager: Add missing call to UpdateHostMouseMode() 2024-12-15 22:12:43 +10:00
Stenzek 6e2223b517
OpenGLDevice: Fix surfaceless context switch 2024-12-15 22:09:21 +10:00
Stenzek fbb411a946
OpenGLDevice: Blacklist fbfetch on PowerVR as well
Apparently it's broken, and I don't have any devices with this chip
so I can't find a potential workaround anyway.
2024-12-15 22:07:47 +10:00
Stenzek 4e1e07a93c
Qt: Shrink BIOS settings page height
Move open/refresh buttons.
2024-12-15 16:09:02 +10:00
Stenzek 9d52e27e16
CPU/Recompiler: Use condition select for ICache updates
Tidy ~4% perf boost.
2024-12-15 16:00:25 +10:00
Stenzek 03e24637af
Qt: Simplify Host::CommitBaseSettingChanges() 2024-12-15 13:00:08 +10:00
Stenzek 5e21234966
Qt: Fix deadlock in Game Properties -> Post-Processing 2024-12-15 12:59:30 +10:00
Stenzek 90e9634c19
FullscreenUI: Enable DrawStringListSetting() 2024-12-14 18:07:33 +10:00
Stenzek c0c2e69b59
CPU/Recompiler: Document ARM32 code size
Yikes, it's huge..
2024-12-14 16:43:29 +10:00
Stenzek 5cbb6b6163
Qt: Purge unused {start,stop}dumpingAudio 2024-12-14 16:00:13 +10:00
Stenzek e91ae5f1b9
GPU/HW: Only compile page texture shaders if TC is enabled
Knocks about 1/4 off the total pipelines with the default config.
2024-12-14 15:56:46 +10:00
Stenzek dcaee9b87e
Qt: Add ISO Browser to Tools menu 2024-12-14 14:10:07 +10:00
Stenzek 726aa67d1b
CPU/CodeCache: Only cache EXP1 blocks up to 0x1F060000
Neither cart type has code mapped above this address.

Saves ~91MB of memory.
2024-12-14 14:10:06 +10:00
Anderson Cardoso b99fb22522
Atualização Português do Brasil (#3342)
atualizado para a última versão
2024-12-14 13:47:46 +10:00
Stenzek b832dfbb3a
CDROM: Zero out seek start/end after read 2024-12-14 13:47:20 +10:00
Stenzek c25c0067af
CDROM: Handle repeated SeekL to same target
Fixes more lockups in Resident Evil 3.
2024-12-14 13:36:20 +10:00
Stenzek e683c89770
CPU/Recompiler: Fix ICache updates on ARM32 2024-12-14 01:05:42 +10:00
Stenzek 5687dd22bd
PIO: Add basic flash cartridge support 2024-12-13 23:22:57 +10:00
Stenzek 2f6eaa1d43
CPU/Interpreter: Address ICache lines in words
Might help on ARM32, because no unaligned access.

Otherwise, ~23% perf boost in debug builds. But this is pretty
meaningless.
2024-12-13 23:22:57 +10:00
Stenzek 25ffc5a248
GameDatabase: Warn if multitap enabled on unsupported game
Fear Effect sends a multitap read command, but doesn't know how to
handle it. There's probably others.

Also add a DisableMultitap trait for these games to force it off.
2024-12-13 18:41:00 +10:00
Stenzek 50fbaf90e6
Qt: Add debug menu options for log sinks/timestamps 2024-12-13 18:08:44 +10:00
Stenzek 8f19912c64
GPU/ShaderGen: Use sample instead of load at 1x as well
Consistency. Mali ends up ever-so-slightly faster with sample versus
texel loads, apparently.

Also fixes compile errors when using texture filtering on GLSL ES.
2024-12-13 14:36:21 +10:00
Stenzek db848d1381
System: Remove redundant GameDB lookup 2024-12-12 17:43:00 +10:00
Stenzek 5577328f35
Controller: Allow !compatsettings to always start in analog mode 2024-12-12 17:42:37 +10:00
Stenzek 99f133223c
CPU/Recompiler: Create block links for self-looping blocks
This way invalidation will rewrite the jump back to the compiler.
Otherwise a SMC block can end up looping itself indefinitely.

Might help with Spyro 2/3. I can't seem to make them crash anymore.
2024-12-12 16:28:51 +10:00
Stenzek 2e805d56dd
CPU/CodeCache: Always backpatch KSEG2 writes 2024-12-12 16:24:54 +10:00
Stenzek c3a2156c79
CPU/CodeCache: Fix event kicking for Cached Interpreter 2024-12-12 16:24:19 +10:00
Stenzek cdcf05a878
CPU/Recompiler: Only truncate block for future writes
If we overwrite an instruction that has already executed, it
should invalidate the block next time.
2024-12-12 16:23:32 +10:00
Stenzek e507fdcb1f
System: Load state before calling OnSystemStarted()
Needed for transitent state cleanup on Android.
2024-12-11 22:04:21 +10:00
Stenzek d8af8e4a60
GPU/HW: Fix possibly-stale display with MSAA+Show VRAM 2024-12-11 22:04:21 +10:00
Stenzek 9743ce01a0
OpenGLDevice: Support GLES 3.0
Android emulator still doesn't have GLES 3.1...
2024-12-11 22:04:21 +10:00
Stenzek 69947fb907
GPU/TextureCache: Look for replacements outside of subdirectory
i.e. old setups that do not have the `replacements` subdirectory.
2024-12-11 15:02:55 +10:00
Stenzek d871c17f3f
Settings: Set sprite texture filter on reset 2024-12-11 14:54:26 +10:00
Stenzek 5eac1e4800
VulkanDevice: Blacklist FSI on AMD Windows
Yay for random GPU resets, it's fine on NVIDIA.
2024-12-11 12:46:25 +10:00