Commit graph

2433 commits

Author SHA1 Message Date
Stenzek a957fb669d
StringUtil: Fix inequal-length EqualNoCase 2024-02-04 15:22:38 +10:00
Stenzek c2c3eac749
Build: Use shared webp/zstd/zlib 2024-02-03 19:41:56 +10:00
Stenzek cdb614a51f
GPU/HW: Fix possible crash (again) 2024-02-03 16:00:24 +10:00
Stenzek cdea4eb68b
GPU/HW: Fix possible crash on setting change 2024-01-31 20:02:34 +10:00
Stenzek ad41c81fa8
ImGuiOverlays: Fix incorrect animation when opening state selector 2024-01-31 00:53:30 +10:00
Stenzek af2042e713
GPU/HW: Fix toggling PGXP depth buffer causing black screen 2024-01-31 00:53:30 +10:00
Stenzek 14e3969736
Misc: Warning fixes 2024-01-26 14:31:03 +10:00
Stenzek b545234152
CPU/NewRec/AArch32: Fix double condition 2024-01-25 13:42:41 +10:00
Stenzek 4f347bf626
Qt: Add missing display setting help text 2024-01-24 13:56:22 +10:00
Hugo Locurcio 1b8e75e90b
Take widescreen hack into account when determining automatic resolution scale
At widescreen aspect ratios, a greater resolution scale factor is required
to maintain crisp visuals. For instance, a 16:9 output requires ~1.333×
the resolution scale of a 4:3 output (as 16:9 is ~1.333× wider than 4:3).

This improves visuals at widescreen aspect ratios when the widescreen hack
is enabled, especially for ultrawide.
2024-01-22 14:41:19 +10:00
athenavr 5e2c6d24b9
Add independent settings for NeGcon axes (#3094)
* Add independent settings for NeGcon axes

* TOSQUASH coverage of the full NeGcon twisting range
2024-01-22 14:41:19 +10:00
Stenzek 37e8d1ab86
GPU/HW: Fix VRAM write replacements 2024-01-22 14:41:19 +10:00
Stenzek a7b7ce2720
System: Fix crash with replacement precaching 2024-01-22 14:41:19 +10:00
Stenzek a231fd4f22
Settings: Fix Match Window on Android 2024-01-22 14:41:19 +10:00
Stenzek 150ab8f4af
GPU: Add host/hardware stats 2024-01-22 14:41:19 +10:00
Stenzek 884c851079
CPU: Fix GTE control register disassembly 2024-01-21 02:45:09 +10:00
Stenzek f66866ed73
GPUDevice: Use Error class for initialization errors 2024-01-21 00:18:33 +10:00
Stenzek 429cb4f351
Qt: Allow toggling fullscreen when VM is paused 2024-01-21 00:07:32 +10:00
Stenzek b98ac8722a
FullscreenUI: Move functionality to Host 2024-01-20 20:29:33 +10:00
Stenzek bc04854ed3
GPU/HW: Bump shader cache version 2024-01-20 02:14:56 +10:00
Stenzek 687e212dfe
GPU/HW: Shader compile fix 2024-01-20 02:14:36 +10:00
Stenzek 37276472eb
Qt: Tidy up Enhancement settings 2024-01-19 21:40:44 +10:00
Stenzek f369724b7c
dep/imgui: Update to v1.90.1 2024-01-19 21:22:26 +10:00
Hugo Locurcio cc94b76037
Add debanding option to improve gradient smoothness with truecolor
This option only has an effect if true color is also enabled.
2024-01-19 01:05:21 +01:00
Stenzek 5f9eef585f
Achievements: Wrap long achievement descriptions 2024-01-14 01:44:21 +10:00
Stenzek eae4f73f94
Achievements: Open cheevo details in browser when selected 2024-01-14 01:44:21 +10:00
Stenzek da9e3064c2
Achievements: Display missable/progression/win icons 2024-01-14 01:44:21 +10:00
Stenzek e86cf51a48
GPU/HW: Handle palette VRAM wrapping
Fixes block colours in The Next Tetris.
2024-01-13 13:54:51 +10:00
Stenzek 73cee9f705
Settings: Add UserResources to EmuFolders
Allowing some resources, such as fonts/sounds to be overridden by the
user.
2024-01-10 22:46:57 +10:00
Stenzek fcbae6cef3
GPU/HW: Fix off-by-one in dirty rect checks
Fixes transitions in Crash 3.
2024-01-08 15:49:05 +10:00
Stenzek 32f5482ad2
CPU: Inhibit debug dispatcher when COP0 BP is invalid 2024-01-01 15:25:48 +10:00
Stenzek cc84952fdc
AnalogController: Minimum deadzone/activation threshold should be 1% 2023-12-31 19:42:52 +10:00
Stenzek 12b9cf1898
GPU: Fix crash when trying to postprocess surfaceless 2023-12-31 19:40:45 +10:00
Connor McLaughlin e60654de38
Merge pull request #3080 from tobiasjakobi/different-types-fix
CPU/Recompiler: Fix build error
2023-12-28 18:54:36 +10:00
Stenzek 6d3e3f78da
System: Shorten libcrypt error on Android 2023-12-28 15:37:22 +10:00
Stenzek 958b033a66
PostProcessing: Fix assertion on some shader/texture formats 2023-12-28 15:31:03 +10:00
Stenzek 98d5b98ab1
GPU/HW: Fix incorrect pipeline layout with texture buffers disabled 2023-12-27 02:03:50 +10:00
Stenzek 044eb589f9
Settings: Expose disable texture buffers/copy to self options 2023-12-27 01:44:08 +10:00
Tobias Jakobi dbe29bd5ca CPU/Recompiler: Fix build error
Build currently fails on a GCC 13.2.x with:

/var/tmp/portage/games-emulation/duckstation-9999/work/duckstation/src/core/cpu_recompiler_code_generator.cpp: In member function ‘bool CPU::Recompiler::CodeGenerator::Compile_Bitwise(CPU::Instruction, const CPU::CodeCache::InstructionInfo&)’:
/var/tmp/portage/games-emulation/duckstation-9999/work/duckstation/src/core/cpu_recompiler_code_generator.cpp:1330:81: error: operands to ‘?:’ have different types ‘BitField<unsigned int, CPU::Reg, 16, 5>’ and ‘BitField<unsigned int, CPU::Reg, 21, 5>’
 1330 |                                PGXP::PackMoveArgs(dest, lhs.HasConstantValue(0) ? instruction.r.rt : instruction.r.rs)),
      |                                                         ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/games-emulation/duckstation-9999/work/duckstation/src/core/cpu_recompiler_code_generator.cpp:1362:81: error: operands to ‘?:’ have different types ‘BitField<unsigned int, CPU::Reg, 16, 5>’ and ‘BitField<unsigned int, CPU::Reg, 21, 5>’
 1362 |                                PGXP::PackMoveArgs(dest, lhs.HasConstantValue(0) ? instruction.r.rt : instruction.r.rs)),
      |                                                         ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2023-12-26 13:07:28 +01:00
Stenzek 62d2f12236
Settings: Expose exclusive fullscreen control 2023-12-25 23:44:15 +10:00
Silent 8d491d3faa
System: Mark the VM as Stopping in ShutdownSystem unconditionally
Fixes an issue where Discord RPC didn't revert to "No Game Running"
on shutdown.
2023-12-23 15:27:10 +01:00
Silent d08a40bcd8
DiscordRPC: Show session time in Discord Rich Presence 2023-12-23 15:19:22 +01:00
Stenzek 8fe6ef1fa8
CPU/NewRec: Allocate callee-saved registers before caller-saved 2023-12-21 02:00:19 +10:00
Stenzek b7c3c76014
CPU/NewRec/RISCV64: Implement PGXP 2023-12-21 02:00:19 +10:00
Stenzek 36643fe78b
GameList: Add "File Size" field 2023-12-20 23:40:28 +10:00
Stenzek bbd021bd5f
DMA: Memory wraparound is unlikely 2023-12-20 22:44:50 +10:00
Stenzek 48a1282a08
GPU/HW: Fix incorrect layout for non-buffer VRAM write 2023-12-20 22:42:32 +10:00
Stenzek dc5e4120cd
GPUDevice: Improve texture pooling 2023-12-20 22:42:32 +10:00
Stenzek 5ef2ba0eb2
GPU/HW: Add fallback path for no-texture-buffers
Yay, old Mali drivers without SSBOs...
2023-12-19 22:38:36 +10:00
Stenzek f5ddd7ba32
DMA: Template transfer functions
~20% speedup in FMV playback on a Ryzen 9 7950X3D. CPUs hate branches.
2023-12-19 22:38:36 +10:00
Stenzek b9665e83a3
MSBuild: Only link with Zydis in Debug builds 2023-12-19 22:38:35 +10:00
Stenzek cf45047463
CI/Windows: Use Clang-CL instead of MSVC 2023-12-19 22:38:35 +10:00
Stenzek 21bbe5c76c
CPU/CodeCache: Fix page error when rewinding 2023-12-19 22:38:27 +10:00
Stenzek 6a7dea6908
CPU/CodeCache: Fix rewinding on Apple Silicon 2023-12-18 21:01:57 +10:00
Stenzek 7829abc014
MSBuild: We don't need WinPixEventRuntime in Release builds 2023-12-18 20:50:36 +10:00
Stenzek df08e122c3
System: Fix rewind throttling at half speed 2023-12-18 20:50:36 +10:00
Stenzek 87d24d3259
System: Fix crash on emptying rewind buffer 2023-12-18 20:50:36 +10:00
Stenzek e6be0532cb
System: Fix incorrect rewind VRAM estimation 2023-12-18 20:50:35 +10:00
Stenzek 8842a46a90
CPU: Fix namespacing in disassembler 2023-12-17 13:40:38 +10:00
Stenzek 73968ac526
SaveStateSelectorUI: Decouple current slot from list 2023-12-17 13:33:51 +10:00
Stenzek cffb383c10
CPU: Add disassembly of GTE instructions 2023-12-17 00:38:11 +10:00
Stenzek 6328d08c14
System: Don't unconditionally refresh save state UI 2023-12-17 00:09:15 +10:00
Stenzek e93fec49bb
Achievements: Reload settings after hardcode disabled 2023-12-16 21:12:05 +10:00
Stenzek fb0ad26de8
Achievements: Fix incorrect fallback message 2023-12-15 23:54:31 +10:00
Stenzek aa658047f6
CPU/Recompiler: Fix jal/jalr to load delayed register
NewRec already handled this correctly.
2023-12-15 21:46:30 +10:00
Stenzek 87a7c09466
GPU/HW: Improve heuristics for draw/write when copying 2023-12-15 16:05:44 +10:00
Stenzek a499e21453
CPU/CodeCache: Don't try to compile direct double branches
Invalidation nightmare.
2023-12-15 13:46:48 +10:00
Stenzek 98a96db1bd
GPU: Remove redundant fields 2023-12-14 20:23:49 +10:00
Stenzek 23d5b20da6
GPU/HW: Split dirty rect into draw/write
Significant performance improvement in Persona 2.
2023-12-14 20:23:49 +10:00
Stenzek 5218ac6944
GPU/HW: Fix incorrect mask in VRAM offset calc 2023-12-14 20:23:48 +10:00
Stenzek adfde45dc1
System: Add unsafe settings summary 2023-12-14 20:23:48 +10:00
Stenzek 57aa138808
PostProcessing: Add compile progress indicator 2023-12-14 20:23:48 +10:00
Stenzek 7e2afe82b5
FullscreenUI: Fix opening while paused 2023-12-14 20:23:48 +10:00
Stenzek 710698f7e1
Misc: Remove StringUtil::{Starts,Ends}With, use C++20 2023-12-13 21:18:19 +10:00
Stenzek 79c226efff
SmallString: fmt -> format, format -> sprintf 2023-12-13 21:06:15 +10:00
Stenzek bc2c334370
Misc: Combine some redundant functions 2023-12-13 20:56:40 +10:00
Stenzek ad96b1ec75
FullscreenUI: Improve menu button borders 2023-12-13 01:12:55 +10:00
Stenzek c467825791
SaveStateSelectorUI: Make less ugly 2023-12-13 01:00:13 +10:00
Stenzek 39913b2a39
GPUDevice: Fix incorrect positioning with PostFX and GL 2023-12-10 23:26:43 +10:00
Stenzek f1604db4a3
GPU/HW: Dynamically size downsampling textures 2023-12-09 22:08:14 +10:00
Stenzek 6b00bf016d
GPU/HW: Dynamically size display texture 2023-12-09 22:08:14 +10:00
Stenzek a907e1f550
GPUDevice: Pool textures 2023-12-09 22:08:13 +10:00
Stenzek 3b2c70cda5
GPUDevice: Get rid of framebuffer abstraction 2023-12-09 22:08:13 +10:00
Stenzek 61783d4a34
GPU/HW: Remove unused variable 2023-12-08 20:24:59 +10:00
Stenzek b7c53102c6
GameDB: P2 2023-12-07 20:16:22 +10:00
Stenzek 6557033b98
FullscreenUI: Replace some std::string instances with TinyString 2023-12-06 20:12:20 +10:00
Stenzek e835f118b7
Hotkeys: Fix toggle CPU PGXP with Interpreter 2023-12-06 20:12:20 +10:00
Stenzek 591a2228d6
GTE: Add register names for debugging 2023-12-06 20:12:20 +10:00
Stenzek 185af2b039
CPU/NewRec: Fix lui/mfc0 not getting called in CPU PGXP mode 2023-12-06 20:12:20 +10:00
Stenzek b166ec3403
CPU/NewRec: Allocate callee-saved before flush in lwx/swx
It might move a callee-saved -> caller-saved reg, in which case it's
going to get clobbered when the loadstore function is called.

SaGa Frontier 2 with PGXP on x64.
2023-12-05 00:27:55 +10:00
Stenzek 2071addce0
CPU/NewRec: Fix OOB reads on InstructionInfo 2023-12-05 00:27:55 +10:00
Stenzek dc6bb357d4
Achievements: Handle dynamically-sized leaderboard trackers 2023-12-04 14:12:32 +10:00
Stenzek 90b14d6237
GPU/HW: Skip per-primitive flush for BG-FB with fbfetch 2023-12-03 21:37:26 +10:00
Connor McLaughlin e5af7fefde
Merge pull request #3059 from CookiePLMonster/fix-total-unofficial-achievements
Achievements: Fix the percentage counter when only unofficial achievements exist
2023-12-02 16:17:26 +10:00
Silent 888582713b
Achievements: Fix the percentage counter when only unofficial achievements exist
Now correctly shows "This game has no achievements" and no percentage bar,
as per the RetroAchievements integration guide.
2023-12-01 22:24:59 +01:00
Silent 4854031a1c
FullscreenUI: Properly account for multiline Rich Presence in Title Info 2023-12-01 18:08:19 +01:00
Stenzek 2ca503639d
GPU/HW: Avoid extra texture copy in Vulkan/GL 2023-12-01 19:08:50 +10:00
Stenzek d43efebcc5
GameDB: Add DisableTextureFiltering option 2023-12-01 17:36:37 +10:00
Stenzek dc72f7a7af
GPU/HW: Fix texturing-and-drawing overlap
Worms Pinball.
2023-12-01 17:36:23 +10:00
Stenzek df91c63b31
CDROM: Add PVD/directory entries to file map 2023-11-30 14:38:38 +10:00
Stenzek 7d5e2bf50c
FullscreenUI: More localization fixes 2023-11-30 14:21:44 +10:00
Stenzek 28556ee3e9
Achievements: Fix multiple leaderboard trackers 2023-11-30 14:10:28 +10:00
Stenzek dfb27c14be
FullscreenUI: More localization fixes 2023-11-29 23:11:28 +10:00
Stenzek 4ac4388b08
GameDatabase: Fix identification of misnamed-exe games 2023-11-29 23:05:27 +10:00
Stenzek 35799aba47
CDROM: Add current file to debug window 2023-11-29 22:01:45 +10:00
Stenzek 5442242c64
IsoReader: Add GetEntriesInDirectory() 2023-11-29 21:56:40 +10:00
Stenzek 325dcc81ca
FullscreenUI: Allow changing UI language 2023-11-29 20:26:36 +10:00
Stenzek 8ce2be57c5
CPU/CodeCache: Call Block constructor/destructor
Fixes crash in MSVC Debug build.
2023-11-29 19:16:33 +10:00
Stenzek eab9f57a5d
GameDB: Widescreen rendering disables 2023-11-29 16:08:05 +10:00
Stenzek 0b6cd330e5
System: Add missing controller poll while rewinding 2023-11-29 15:41:29 +10:00
Stenzek 26f3d5ba56
FullscreenUI: Add missing translation strings 2023-11-29 02:18:20 +10:00
Stenzek 5ff44ebcf5
CPU: Panic process on memory alloc fail 2023-11-29 02:01:24 +10:00
Stenzek 667b11121c
Qt: Update glyph ranges 2023-11-29 02:00:31 +10:00
Stenzek 08fcee2f56
CPU: Flush load delays before PCDrv calls 2023-11-28 18:25:12 +10:00
Stenzek c482dfd27a
Qt: Fix 'Edit Memory Cards' using disc-specific cards 2023-11-28 15:06:12 +10:00
Stenzek e382f2b64a
Settings: Add option to disable DSB/fbfetch 2023-11-28 14:38:38 +10:00
Stenzek afe8384b6d
System: Use Async HC mode disable for resuming 2023-11-27 00:45:00 +10:00
Stenzek c40cc4ef43
Hotkeys: Throttle pause requests 2023-11-27 00:15:52 +10:00
Stenzek 72716719b3
Achievements: Use big picture for confirm hardcore disable 2023-11-26 23:57:49 +10:00
Stenzek c1d0419361
FullscreenUI: Use icon font for bindings 2023-11-26 23:57:49 +10:00
Stenzek 43c0ce0b3e
FullscreenUI: Put bindings on one line 2023-11-26 23:57:49 +10:00
Stenzek fc6359457b
ImGuiManager: Use PromptFont icons for input OSD 2023-11-26 21:35:29 +10:00
Stenzek 8446856ecf
GPU/HW: Trace min/max UVs for hazards 2023-11-26 17:35:48 +10:00
Stenzek dc75afeb3d
RegTest: Fix directory creation always failing 2023-11-25 22:04:05 +10:00
Stenzek ff17444074
GPU/HW: Add framebuffer fetch blending path 2023-11-25 21:22:35 +10:00
Stenzek a456741ae6
GPU/HW: Don't blend binary alpha texture filters 2023-11-25 19:49:05 +10:00
Stenzek 7cc52bba23
CMake: Support multiple CMAKE_OSX_ARCHITECTURES 2023-11-25 00:50:12 +10:00
Stenzek cc6f22163c
HTTPDownloader: Add support for progress updates/cancelling 2023-11-25 00:50:12 +10:00
Stenzek ca1dd27d4a
CPU/NewRec: Fix SR interrupts on non-x64 2023-11-24 20:35:12 +10:00
Stenzek e10ff550d5
CPU/NewRec: Handle inside-block SMC
i.e. Spyro 2/3 PAL.
2023-11-21 22:31:18 +10:00
Stenzek 20de40a597
RegTest: Fix build on Mac 2023-11-21 22:31:18 +10:00
Stenzek dbd052528e
CPU/NewRec: Fix build for AArch32 2023-11-18 17:16:51 +10:00
Stenzek cce7be4723
Misc: Make struct member functions file-local 2023-11-18 16:46:11 +10:00
Stenzek bee1f986a9
CMake: Fix incorrect library for HTTPDownloaderCurl 2023-11-18 14:58:45 +10:00
Stenzek ad1716e376
GPU/HW: Correct OSD message 2023-11-15 19:26:02 +10:00
Stenzek 5fff97c9e1
GPU/HW: Clear instead of invalidating adaptive downsample RTs 2023-11-15 19:14:27 +10:00
Stenzek 3093d40869
Qt: Update link 2023-11-11 13:35:26 +10:00
Stenzek 312790c9a6
CPU/NewRec: Handle mtc0 rt, sr 2023-11-10 21:19:45 +10:00
Stenzek 3ab27e7220
FullscreenUI: Remove Pause on Menu open
And always pause. The option never really worked correctly.
2023-11-06 23:17:58 +10:00
Stenzek b459a42fb7
Achievements: Use a 60 second timeout for server calls 2023-11-06 23:17:58 +10:00
Stenzek 0fe6e9170b
HTTPDownloader: Move to util project 2023-11-06 23:17:57 +10:00
Stenzek 3c6b6c5770
Achievements: Use retryable client error status code 2023-11-06 23:17:57 +10:00
Stenzek 3dfc3bd2ba
CPU: Fix incorrect scratchpad masking 2023-11-06 18:09:27 +10:00
Stenzek 928d137111
System: Add missing icons to some OSD messages 2023-11-05 22:38:25 +10:00
Stenzek 38bc2bd057
CDROM: Add option to choose emulated mechacon version 2023-11-05 14:43:38 +10:00
Stenzek edae13d9e4
CDROM: Log command parameters 2023-11-05 13:32:25 +10:00
Stenzek dde54fbba9
Settings: Fix incorrect type for Display/Scaling 2023-11-05 02:33:42 +10:00
Stenzek 9d88a373bd
GPU: Fix Guncon positioning with window padding 2023-11-04 20:11:51 +10:00
Stenzek 0e2c6676a3
Build: Compiling x64 builds on Apple Silicon host 2023-11-04 20:11:51 +10:00
Stenzek f05ff4103e
Misc: Build fixes for Android 2023-11-04 20:11:51 +10:00