Commit graph

2410 commits

Author SHA1 Message Date
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
Stenzek 538266aacd
System: Fix Discord Rich Presence 2023-10-29 22:46:02 +10:00
Stenzek bd49e0df63
System: Fix playlist memory card handling
But you really don't need to use them these days.
2023-10-29 20:37:42 +10:00
Stenzek 117cbeecaa
CPU/CodeCache: Fix NewRec on Apple Silicon 2023-10-28 14:41:29 +10:00
Stenzek f786138175
CPU/CodeCache: Fix crash on Apple Silicon 2023-10-24 18:30:34 +10:00
Stenzek 06c4dc5e1b
GPU/OpenGL: Fix incorrect 1/4 blend on Mali 2023-10-22 00:07:46 +10:00
Stenzek 6592cafadc
CPU/NewRec: Add speculative constants 2023-10-22 00:07:46 +10:00
Stenzek b3cbe5a7ee
CPU/NewRec: Add AArch32 backend 2023-10-21 20:22:51 +10:00
Stenzek 41bb9fddfc
CMake: Fix Debug x64 builds on Linux 2023-10-21 13:49:35 +10:00
Stenzek d00ed000f9
CPU/NewRec/AArch64: Don't recreate assembler every time 2023-10-21 13:49:35 +10:00
Stenzek 52e0d8d473
CPU/Recompiler/AArch32: Load membase on demand 2023-10-21 13:49:35 +10:00
Stenzek cce1ec598c
CPU/Recompiler/AArch32: Reduce register usage of Mul 2023-10-21 13:49:35 +10:00
Stenzek 23dff0a9b6
Bus: Properly set unmapped pages to NULL for LUT fastmem 2023-10-21 13:49:35 +10:00
Stenzek e36130158c
CPU/Recompiler: Fix incorrect shift in LUT fastmem 2023-10-21 13:49:35 +10:00
Stenzek c727ac33c7
CPU/CodeCache: Include hi/lo in state logging 2023-10-21 13:49:35 +10:00
Stenzek 9501439d6b
CPU: Add new experimental recompiler 2023-10-18 00:49:01 +10:00
Stenzek c179473c2b
Bus: Allow LUT fastmem on mirrors 2023-10-18 00:49:01 +10:00
Stenzek 9d40164f84
CPU/Recompiler: Offset LUT fastmem pointers 2023-10-18 00:49:01 +10:00
Stenzek a062b00c1a
Bus: Protect main RAM buffer
Get rid of write-time checks.
2023-10-18 00:49:01 +10:00
Stenzek 79e1ae3e54
CPU/CodeCache: Rewrite using new-rec's block management 2023-10-18 00:49:01 +10:00
Stenzek f82d08e223
TimingEvents: Reset downcount when head is resorted 2023-10-17 13:14:05 +10:00
Stenzek 78959f6339
MemoryCardImage: Swap over to fmt 2023-10-17 13:08:44 +10:00
Stenzek ad04f79e57
FullscreenUI: Fix controller strings not translating 2023-10-12 19:30:23 +10:00
Stenzek f9d8a49324
CPU: Fix incorrect writing of unaligned words via cheats 2023-10-11 01:10:31 +10:00