Commit graph

15421 commits

Author SHA1 Message Date
elad335 047f71b434 PPU/cellSpurs: MGS4: Fix cellSpursAddUrgentCommand race condition
cellSpursAddUrgentCommand searches in 4 slots for an empty slot to put the command at.
At first, it seems to do so unordered.

Meanwhile, on SPU side, it expects an order between all the commands because it pops them it in FIFO manner.
Not keeping track of how many commands are queued in total.

After second observation of cellSpursAddUrgentCommand, something odd comes takes places here.
Usually, reservation loops are individual and are expected to be closed without any changes of the previous loop affected by the proceeding one.
But in this case, after a single failure, the entire operayion is reset, a loop of 4 reservation operations suddenly is reset completely.

This makes one wonder if it the HW expects sometjing else here, perhaps it caches the reservation internally here?
After some adjustments to LDARX and STDCX to cache the reservation between succeeding loops, Metal Gear Solid 4 no longer freezes!
2025-03-28 19:56:54 +03:00
elad335 91b1ec6d5c SPU LLVM: Dump some funcs 2025-03-28 19:56:54 +03:00
Ani a7df3cfb40 config: Set default Driver Wake-Up Delay to 0 2025-03-28 18:46:41 +03:00
Megamouse 949a80dc0a Loader: deny boot if the firmware is too old 2025-03-28 18:18:09 +03:00
Ian Carpenter 095c884331 unpkg: Restore support for PSP/Vita packages 2025-03-28 14:43:38 +03:00
Ani 32a8bcf525 config: Increase max vblank rate to 6000 2025-03-28 10:47:23 +03:00
Megamouse a469bfd4da overlays: hide friends list in home menu if rpcn is not configured 2025-03-27 18:08:30 +01:00
Megamouse b571978f24 Windows/Qt: do not deploy dx and ffmpeg libs 2025-03-27 02:33:32 +01:00
Megamouse b8236e183c cellMic: log ALCenum error string 2025-03-27 00:51:15 +01:00
Megamouse 2a7e957c61 Qt: fix custom icons when "Prefer game data icons" is set 2025-03-26 18:33:51 +01:00
Megamouse 467c4ba2cf Qt: add option to prefer game data icons in the game list 2025-03-26 12:07:59 +01:00
RipleyTom 324af04426 Set PSN to disconnected when net status is disconnected 2025-03-25 21:46:38 +01:00
Megamouse 1b5d9a34df overlays/rpcn: Create list even if rpcn connection failed 2025-03-25 18:40:25 +01:00
Malcolm Jestadt c52920755a SPU LLVM: Don't use vperm2b256to128 outside of CPUTranslator.h
- The vperm2b function uses vperm2b256to128 when it's ideal
2025-03-25 10:42:02 +02:00
kd-11 ff135384ef Fix for GCC builds 2025-03-24 17:00:07 +03:00
kd-11 a51602018e rsx: Code cleanup and fix fragment texture dirty trigger 2025-03-24 17:00:07 +03:00
kd-11 1616942943 rsx: Always execute pre-draw pipeline analysis regardless of flags 2025-03-24 17:00:07 +03:00
kd-11 ba7b7b65a1 rsx: Bypass sampling cache logic when dealing with host generated textures 2025-03-24 17:00:07 +03:00
RipleyTom 40ff182c31 Fix p2p binding to vport 0 2025-03-23 06:08:09 +01:00
Whatcookie d9071abd8b
Utils: Remove AVX10-256 detection (#16904)
- Intel recently removed 256b AVX10 from the AVX10 spec.
2025-03-22 13:28:45 +02:00
Megamouse b4f453f687 overlays: don't check for hdd dirs if we play a disc game 2025-03-21 20:47:45 +01:00
Megamouse 4c742f7742 Fix typo 2025-03-21 20:47:45 +01:00
Megamouse fda51920b7 overlays: prefer overlay_picture over content_icon 2025-03-21 20:47:45 +01:00
Megamouse 4905fda371 Qt: Don't fetch ICON0.PNG from game data for disc games
ICON0.PNG is not supposed to be updateable, so we can ignore the hdd0 dir for disc games in that case
2025-03-21 20:47:45 +01:00
Megamouse 1ae1288a88 overlays: Look for the overlay in the same dir as the background 2025-03-21 20:47:45 +01:00
Megamouse 6fb0e991ea overlays: Don't use ICON0.PNG from hdd0 if the game is a disc game
ICON0.PNG is not supposed to be updateable, so we can ignore the hdd0 dir for disc games in that case
2025-03-21 20:47:45 +01:00
Megamouse 650176fac7 overlays: Simplify game content search 2025-03-21 20:47:45 +01:00
Megamouse 95aad6ceb5 overlays: adjust size and position of overlay image 2025-03-21 20:47:45 +01:00
Megamouse 7cd5d812d2 overlays: add background overlay image 2025-03-21 20:47:45 +01:00
Megamouse b2ff24453c overlays: fix background image logic
Also make the path getter more generic
2025-03-21 20:47:45 +01:00
Megamouse 12eacfa67b overlays: use std::string instead of raw path argument
It will be converted to string anyway
2025-03-21 20:47:45 +01:00
Megamouse 76495f07b8 Qt: Remove supporters from translations 2025-03-20 08:52:08 +01:00
Megamouse ccecd1a627 Qt: only show shortcut confirmation once 2025-03-20 08:52:08 +01:00
Megamouse 8f3eff293d Remove unnecessary localization 2025-03-20 08:52:08 +01:00
Megamouse 806c9230cd Fix typo 2025-03-20 08:52:08 +01:00
Megamouse 24b6b6cad5 Qt: fix handler not found in pad settings after changing language 2025-03-20 08:52:08 +01:00
Megamouse 971fd40353 Remove some useless translations 2025-03-20 08:52:08 +01:00
Megamouse 2aba8c639e Fix typo 2025-03-20 08:52:08 +01:00
Megamouse 1a51ce1e66 SPU: Add Disable SPU GETLLAR Spin Optimization checkbox 2025-03-18 09:30:28 +02:00
Vestral a45f604cd8 Fix discord-rpc build when ASLR is enabled 2025-03-18 02:32:05 +01:00
Megamouse ec29650029 Fix warning 2025-03-17 23:11:31 +01:00
Megamouse ae83c28bc8 Qt: Simplify hover movie code 2025-03-17 14:41:08 +01:00
Megamouse 58327ca23c Qt/optimization: Don't look for PAM files if the game has a hover gif 2025-03-17 14:41:08 +01:00
Megamouse 5b540aed73 Qt: Do not use gamedata icon if game has custom icon 2025-03-17 14:41:08 +01:00
Megamouse 6e080044a0 Qt: fix code style of some variables 2025-03-17 14:41:08 +01:00
Megamouse 42ba0b6271 Qt: Use localized game icons and titles 2025-03-17 00:47:43 +01:00
kd-11 a1fa8dd701 config: Revert default shader compiler to async with draw-skip 2025-03-16 16:48:20 +01:00
kd-11 aea1efd5f2 rsx: Fix instancing constants lookup layout when running interpreter 2025-03-16 16:33:39 +03:00
kd-11 5ae05e26c4 vk: Implement instancing when running in interpreter mode 2025-03-16 16:33:39 +03:00
kd-11 023221bd3b gl: Reimplement driver capabilities detection in a more sane way 2025-03-16 16:33:39 +03:00
kd-11 14575f3efd rsx: Always initialize CC register in FP interpreter 2025-03-16 16:33:39 +03:00
kd-11 9f3eb33d80 gl: Double instancing buffer size to improve frametimes 2025-03-16 16:33:39 +03:00
kd-11 225d0b9482 gl: Support transform instancing in the shader interpreter 2025-03-16 16:33:39 +03:00
kd-11 65c0d3d425 gl: Add support for hardware instancing 2025-03-16 16:33:39 +03:00
kd-11 3d3fc2f3cd rsx: Fix cache invalidation when instancing state changes 2025-03-16 16:33:39 +03:00
Malcolm Jestadt f9a72e8d75 SPU LLVM: Preserve sign on inf to NaN conversion in spu_re_acc with vfixupimmps 2025-03-15 10:46:08 +02:00
Attila Fidan 7b212e0e57 sys_usbd: Fix null pointer deref on destruction 2025-03-13 01:36:09 +01:00
Megamouse ff40128df6 Qt: Detach markup from dialog translations 2025-03-12 18:49:24 +01:00
kd-11 b2ed787c3a rsx: Invalidate program cache hint if the current vertex or fragment program is re-evaluated 2025-03-12 15:36:29 +03:00
Megamouse ec5b2bc8d2 Fix missing enum in switch case 2025-03-12 01:08:49 +01:00
Megamouse 3a71da35a9 Fix redundant forward declaration warning 2025-03-12 01:08:49 +01:00
Megamouse 4c788abad1 Use named_thread in gui_pad_thread 2025-03-12 01:08:49 +01:00
Megamouse 3737cc37f6 Qt: Hide interpreter_only unless it is selected or the debug mode is active 2025-03-11 06:58:23 +01:00
Megamouse d0c2cb7ae1 main: Fix some warning 2025-03-11 06:58:23 +01:00
DH db945f6aed android: do not invalidate swapchain on VK_SUBOPTIMAL_KHR
Workaround
2025-03-10 21:09:27 +01:00
Megamouse b3f5ed55a1 Set vulkan to default renderer whenever we have vulkan support 2025-03-10 21:09:27 +01:00
Megamouse fa5a16e9fc hid_init: use hid_error in log message 2025-03-10 21:09:27 +01:00
DH 0c233c6578 [android] hid: enumerate by vendor/product ids 2025-03-10 21:09:27 +01:00
DH 8100779512 hid: add support of android devices 2025-03-10 21:09:27 +01:00
DH d766baef12 fs::file: implement release_handle
cleanup
2025-03-10 21:09:27 +01:00
DH 95d0cb18e4 Coding style issues fixes
Thanks @Megamouse
2025-03-10 21:09:27 +01:00
DH 976b0a8f1d cpu stats: do not try parse /proc/stat on android 2025-03-10 21:09:27 +01:00
DH 919cb8e05c android: atomic: do not test SYS_futex_waitv syscall 2025-03-10 21:09:27 +01:00
DH cac068dad9 rsx: implement android swapchain 2025-03-10 21:09:27 +01:00
DH 7520c09087 rsx: reduce shaders_cache::unpacked_type size for android 2025-03-10 21:09:27 +01:00
DH edf096fc13 vm: do not check overcommit_memory on android 2025-03-10 21:09:27 +01:00
DH 2ebf257f84 vm: removed c_page_size, it cannot be used by globals 2025-03-10 21:09:27 +01:00
DH 57e7cee84e android: cfg: vulkan renderer is default 2025-03-10 21:09:27 +01:00
DH adaf24310d add missed include to PUP.h 2025-03-10 21:09:27 +01:00
DH 94f52d6dc0 android: jit: teach fallback_cpu_detection provide meaningful results for aarch64 2025-03-10 21:09:27 +01:00
DH 3080b55d02 cfg: remove string::get() 2025-03-10 21:09:27 +01:00
DH bbb682a440 unpkg: allow package_reader creation with provided fs::file 2025-03-10 21:09:27 +01:00
DH 5084fb82b8 Android stuff 2 2025-03-10 21:09:27 +01:00
DH 798c194025 android stuff 2025-03-10 21:09:27 +01:00
kd-11 11e214f332 rsx: Handle out-of-bounds read/writes from FIFO register IO 2025-03-10 16:07:26 +03:00
AniLeo ddd3ac3663 Settings: Move 'Max Shader Compile Threads' next to the equivalent LLVM setting 2025-03-10 08:16:19 +01:00
AniLeo bacce9bb37 Settings: Move 'Vulkan Queue Scheduler' to Debug 2025-03-10 08:16:19 +01:00
AniLeo aa819c8b97 Settings: Move 'Disable On-Disk Shader Cache' to Debug 2025-03-10 08:16:19 +01:00
AniLeo af768d5c22 Settings: Move 'Disable Asynchronous Memory Manager' to Debug 2025-03-10 08:16:19 +01:00
AniLeo 2bf5ae3272 Settings: Move 'SPU Profiler' to Debug 2025-03-10 08:16:19 +01:00
AniLeo a074b14631 Settings: Move 'PPU Vector NaN Fixup' to Debug 2025-03-10 08:16:19 +01:00
AniLeo ac7d53cc37 Settings: Specify FSR 1 2025-03-10 08:16:19 +01:00
AniLeo 6d46d45983 Settings: Default 'Shader Mode' to Async with Interpreter 2025-03-10 08:16:19 +01:00
AniLeo eea2f19d82 Settings: Move 'SPU Block Size' to the middle column 2025-03-10 08:16:19 +01:00
kd-11 2dfbab457a rsx: Reupload surface if the surface cache denies knowledge of it 2025-03-09 22:01:49 +03:00
Elad 5e4637e15c SPU LLVM: Subtract Timebase from decrementer 2025-03-09 07:42:59 +02:00
kd-11 e6b3c2061e rsx: Fix boundary seek logic for FIFO addresses 2025-03-09 01:36:26 +03:00
schm1dtmac 563a3d3587 Target macOS 14 instead of 13 (fixes camera) 2025-03-09 01:02:49 +03:00
kd-11 3be1e0b6ff rsx: Clean up and simplify texture register manipulation tests 2025-03-08 22:10:55 +03:00
kd-11 93899bf5a9 rsx/FIFO: Reimplement grabbing command args as a contiguous pointer
- Allows grabbing indefinite size of buffer as long as the data is contiguously mapped.
2025-03-08 22:10:55 +03:00
kd-11 ec120d1cbb rsx: Add stubs for FP rehash checks on barrier acquire 2025-03-08 22:10:55 +03:00
kd-11 df7a2ab467 rsx: Unify fragment texture config changes dirty bit tracking
- Reverts unnecessary changes to dirty tracking.
- The GPU keeps a separate set of details, so all dirty bits are treated equal.
2025-03-08 22:10:55 +03:00
kd-11 a39a743abe rsx/prog: Fix compiler warning 2025-03-08 22:10:55 +03:00
kd-11 eca86ad449 rsx: Add program cache lookup ellision rate to overlay 2025-03-08 22:10:55 +03:00
kd-11 a1c8f3a528 rsx/prog: Use a proper cache hint key instead of disjointed counters 2025-03-08 22:10:55 +03:00
Elad 26495a8455 SPU: Fixup 2025-03-08 14:21:57 +02:00
Elad 32df7315be RSX: Do not invalidate FP analysis on same register writes 2025-03-08 14:21:57 +02:00
Elad 7995181235 RSX: Return FP shader as is if no changes were made 2025-03-08 14:21:57 +02:00
Elad 75dc2a12e2 RSX: Return VP shader as is if no changes were made 2025-03-08 14:21:57 +02:00
Elad ae39c5b8cb RSX: Optimize vertex program ucode invalidation 2025-03-08 14:21:57 +02:00
Megamouse eb43fbbb2a Update SDL to 3.2.8 2025-03-08 10:03:00 +01:00
Elad e4ed5c47a3 Fixup 2025-03-08 10:48:21 +02:00
Elad e4b9a21acc SPU Analyzer: Fix for value propagation 2025-03-08 10:36:26 +02:00
Whatcookie bfb9dfea7e
RSX: ProgramStateCache loops optimizations 2025-03-07 09:54:12 +02:00
Elad 8ed2089070 RSX: Fix UB in FIFO_control::get_current_arg_ptr() 2025-03-07 09:41:52 +02:00
JoãoPaulo 583ec5d819
Update FW 4.92 Latest Version (#16811)
Update FW 4.92 Latest Version
Updates the latest FW version according to: https://www.playstation.com/en-us/support/hardware/ps3/system-software/
List of changes:
This system software update improves system performance.
2025-03-05 15:00:07 +02:00
kd-11 59280a133c vk: Do not force strict query scopes by default 2025-03-05 14:40:35 +03:00
Megamouse ba12de867e static analysis: fix memory leak in decompress 2025-03-05 00:12:30 +01:00
Megamouse ca3d02fc61 static analysis: ensure is always false 2025-03-05 00:12:30 +01:00
Megamouse a49c4c7682 static analysis: duplicate assignment 2025-03-05 00:12:30 +01:00
Megamouse 4f52c67566 static analysis: suspicious code 2025-03-05 00:12:30 +01:00
Megamouse 7a6a96254c static analysis: remove unused overrides 2025-03-05 00:12:30 +01:00
Megamouse 6abb863a54 static analysis: std::move 2025-03-05 00:12:30 +01:00
Megamouse e8463403f5 static analysis: uninitialized variables 2025-03-05 00:12:30 +01:00
Megamouse 815a4e7dc1 static analysis: less references 2025-03-05 00:12:30 +01:00
Megamouse df2f68da44 static analysis: more const ref 2025-03-05 00:12:30 +01:00
Megamouse a8fc3f5f74 static analysis: more const 2025-03-05 00:12:30 +01:00
Megamouse 229734e45f VS: add some missing filters 2025-03-04 23:44:45 +01:00
RipleyTom 66952fe301 Add memory breakpoints
RPCS3 needs to be compiled with -DHAS_MEMORY_BREAKPOINTS=ON for it to be available
2025-03-04 15:41:36 +01:00
Megamouse cb659474d9 overlays: fix friends/trophy list input on paused emulation 2025-03-03 18:21:35 +01:00
Megamouse d429776418 Qt/patches: Only consider bootable games 2025-03-03 17:49:31 +01:00
Megamouse d034f6a77f Qt/patches: move game list loop to patch manager
This deduplicates some code
2025-03-03 17:49:31 +01:00
Malcolm Jestadt 1920aee415 RSX: Fix issue where linux builds could hit illegal instruction on machines without AVX-512
- Place avx-512 function attributes in their own functions
2025-03-03 15:58:55 +03:00
Elad 783079266e Emulator: Implement config CLI args, add barrier for host CLI args 2025-03-03 06:54:00 +02:00
Megamouse bd41774960 overlays/osk: implement horizontal scroll 2025-03-02 23:44:08 +01:00
Megamouse 4aa25285a3 overlays: use thread local static vector in get_glyph_data 2025-03-02 23:44:08 +01:00
Megamouse 7fd1f5b5d3 Fix some warning 2025-03-02 23:44:08 +01:00
Megamouse 72ee5ed10d overlays: add ability to hide hidden trophies 2025-03-02 23:02:22 +01:00
Megamouse 048a44cbe5 overlays: add getter for selected entry 2025-03-02 23:02:22 +01:00
Megamouse 6f5f7ece06 overlays: fix and optimize layout exit loops 2025-03-02 23:02:22 +01:00
trigger 1dc3ebf891
SPU Analyzer: A fixup for crash, TODO: proper fix 2025-03-02 10:24:42 +02:00
Malcolm Jestadt 6bd1ab576c RSX: Use AVX-512-ICL code in get_vertecx_program_ucode_hash and in vertex_program_compare
- Code is about 4 times as fast on my zen4 machine
- Should be twice as fast on zen5 machines with full width AVX-512
2025-03-02 09:07:07 +02:00
trigger 8e6272bfee Qt: Fix boot failed dialog 2025-03-01 20:00:21 +01:00
kd-11 0aca5e222f vk: Fix MacOS build 2025-03-01 18:02:32 +03:00
kd-11 b8411a90cd vk/swapchain: Fix WSI swapchain configuration overrides 2025-03-01 18:02:32 +03:00
kd-11 4e9365f76b vk/swapchain: Consolidate native swapchain implementation for platforms where it is not implemented
- NATIVE swapchain only matters in headless scenarios or where we otherwise cannot access WSI properly.
- It is now optional, with a stub provided when WSI is not available.
2025-03-01 18:02:32 +03:00
kd-11 602fe15641 vk/swapchain: Move platform-specific code to appropriate headers 2025-03-01 18:02:32 +03:00
kd-11 8b2e792d31 vk: Refactor swapchain into separate platform headers 2025-03-01 18:02:32 +03:00
kd-11 aca1cdf0b6 vk: Refactor instance management header 2025-03-01 18:02:32 +03:00
trigger af23df842d
PPU: Report encrypted modules with KLIC in main file, opportunistic compilation at exit-spawn (#16743) 2025-03-01 11:45:03 +02:00