Open SuperSamus opened 3 months ago
I've merged the dynamic patches pr https://github.com/PCSX2/pcsx2/pull/11801
Know that I've added a version field since you've last commented on the pr. The pr explains it.
The patches are now in the new format!
I'm still a little hesitant to undraft until the 3/4 player modes are more tested... (Only a little.) Unfortunately, the PC required to play 3/4 players at full speed is... not something I own.
Tested the new format patch on 2.1.174 for Ratchet Deadlocked co-op (2 hour test) Finished up to and including Dark Cathedral (approx 28% game completion)
Overall experience was stable other than some expected performance dips. It would potentially be worth enabling fine-tuning the EE Overclock to allow 190%/200% etc... but that's outside the scope of this PR.
These patches allow "Ratchet & Clank: Up Your Arsenal" and "Ratchet: Deadlocked" to play at 60 FPS during splitscreen modes, instead of the regular 30 FPS. In reality, it was two physics steps per frame, so the physics aren't changed. What the patch does is simply removing a physics step and a Vsync in the splitscreen loop.
Usage notes
Testing done
For reviewers
REG_RCNT1_COUNT
reaches a certain threshold, I only lowered its threshold because the regular one was too high. The value I inserted was obtained through trial and error, I don't know if I could use math to get a better value.(Original post on https://forums.pcsx2.net/Thread-60-fps-codes?pid=640315#pid640315, but I can't update it anymore)
Documentation
#### Up Your Arsenal ``` + dynaPatches: + - pattern: + - { offset: 0x50, value: 0x24022D00 } + - { offset: 0x54, value: 0x0044180B } + - { offset: 0x58, value: 0x00A3182A } + - { offset: 0x68, value: 0x0000202D } + replacement: + - { offset: 0x08, value: 0x00000000 } # Remove the first physics step (not the second one: it does things like drawing the aiming reticle) + - { offset: 0x80, value: 0x00000000 } # Always take the "not 3/4 players" branch (I don't know what it's actually for, but without this, 3/4 players is broken) + - { offset: 0xF8, value: 0x00000000 } # Same, but for the frameskip branch (only useful if starting the match underclocked) + - { offset: 0x64, value: 0x00000000 } # Remove the first VSync (leaving the one that is never skipped) + # Feel free to tweak the last 4 digits of the value. + # If too low: the game will frameskip when it doesn't need to. + # If too high: the game may not realize that it needs to frameskip, and run at half speed. Avoid! + - { offset: 0xbc, value: 0x24032470 } # Reduce the time required to do another framestep (so that the game will frameskip if it can't keep up) ``` #### Deadlocked ``` + - pattern: + - { offset: 0x58, value: 0xA2B01680 } + - { offset: 0x6C, value: 0xA2A01680 } + - { offset: 0x70, value: 0x3C030022 } + - { offset: 0x74, value: 0x8C63DDA4 } + replacement: + - { offset: 0x04, value: 0x00000000 } # Remove the first physics step (not the second one: it does things like drawing the aiming reticle) + - { offset: 0x50, value: 0x00000000 } # Always take the "not 3/4 players" branch (I don't know what it's actually for, but without this, 3/4 players is broken) + - { offset: 0x34, value: 0x00000000 } # Remove the first VSync (leaving the one that is never skipped) + # Feel free to tweak the last 4 digits of the value. + # If too low: the game will frameskip when it doesn't need to. + # If too high: the game may not realize that it needs to frameskip, and run at half speed. Avoid! + - { offset: 0x94, value: 0x24032470 } # Reduce the time required to do another framestep (so that the game will frameskip if it can't keep up) ```