PCSX2 / pcsx2

PCSX2 - The Playstation 2 Emulator
https://pcsx2.net
GNU General Public License v3.0
11.7k stars 1.62k forks source link

Mercenaries: Playground of Destruction - Video audio sync issue (skipping) #3603

Open Levan7 opened 4 years ago

Levan7 commented 4 years ago

PCSX2 1.7.0-20200813213500 - compiled on Aug 13 2020 Using speed settings 2 preset

In the first video the audio is really messy it keeps cutting mid speech

https://imgur.com/Hbd76tG

emuLog.txt

MrCK1 commented 3 years ago

@Levan7 Can you retest in latest dev build please? Thanks.

Levan7 commented 3 years ago

@MrCK1 tested on PCSX2 1.7.0-20201216140454 - compiled on Dec 16 2020 still an issue

refractionpcsx2 commented 3 years ago

Setting the EE Cycle Rate to -2 (2 to the left) seems to resolve the audio problem.

MrCK1 commented 1 year ago

Does this behave any differently on master?

DigitalMajestic commented 1 year ago

Still an issue, tested on 1.7.4965

Abbanon commented 2 months ago

Can confirm that the audio issue still persists as of Nightly v2.1.42. Changing the EE Cycle Rate to 60% (underclock) seems to resolve the FMV audio skipping issue. No idea if it impacts any other part of the game.

Farran666 commented 2 months ago

The instruction at "003AD710" is expecting to pull the value 0x2 to register v1, while receiving 0x0.

Here's a patch to manually give it what it wants:

SLUS-20932 patch=1,EE,003AD710,word,24030002

Abbanon commented 2 months ago

The instruction at "003AD710" is expecting to pull the value 0x2 to register v1, while receiving 0x0.

Here's a patch to manually give it what it wants:

SLUS-20932 patch=1,EE,003AD710,word,24030002

This works like a charm!

...Though it doesn't seem to work with the 60fps cheat that's been floating around. I know it's not related to the issue at hand, but would you be willing to take a look at it? patch=1,EE,203AD720,extended,2C420001 I'd much prefer to discuss this outside of this report since it's unrelated, but I'm not sure how to contact you otherwise.

Farran666 commented 2 months ago

@Abbanon The game has a timer that wastes ee cycles to prevent the game from running at 60 fps. The patch you added disables the timer exactly the same way this bug is.

Additionally, the reason why underclocking helped to fix this issue, is because it slowed down the ee to an extent similar to this timer. Now, because the patch clashes with the 60fps patch, they cannot coexist.

If you really want the 60 fps patch to work, you can use this patch:

patch=1,EE,003AD710,word,0803FFC0
patch=1,EE,000FFF00,word,8C6355DC
patch=1,EE,000FFF04,word,10600003
patch=1,EE,000FFF0C,word,24030000
patch=1,EE,000FFF10,word,080EB5C6
patch=1,EE,000FFF18,word,24030002
patch=1,EE,000FFF1C,word,080EB5C6
Abbanon commented 2 months ago

@Farran666 Thank you so much for the insight and this new patch, as well as the audio skipping fix from earlier. But regarding this new 60fps patch, is it meant to be enabled alongside the existing 60fps one + the audio skip fix from earlier? Or is this a replacement that serves the functions of both?

Farran666 commented 2 months ago

@Abbanon It does both, and it's designed to work for as long as this issue is unresolved.

Farran666 commented 2 months ago

The instruction at "003AD710" is expecting to pull the value 0x2 to register v1, while receiving 0x0.

Here's a patch to manually give it what it wants:

SLUS-20932 patch=1,EE,003AD710,word,24030002

Based on hardware tests, I was wrong. The game is working as intended by simply stopping this cycle waster from running when fmvs start. Why it is not needed during fmvs is a mystery. My patch fixes this issue, but not for the correct reason.