PCSX2 / pcsx2

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

[BUG]: Audio in Sanyo Pachinko Paradise 10 - Gen-san Okaeri! (Japan) is broken screeching #6987

Open drachenschanze opened 2 years ago

drachenschanze commented 2 years ago

Describe the Bug

As soon as you press a button on the memory card screen the sound effect gets much louder and stuck playing forever. I couldn't find a way to record audio in PCSX2 unfortunately or I'd post a recording. As soon as you get here move from the yes to no option.

Capture

Reproduction Steps

Start the game and interact with the memory card screen.

Expected Behavior

No response

PCSX2 Revision

pcsx2-v1.7.3273-windows-64bit-AVX2-Qt

Operating System

Windows 10 (64bit)

If Linux - Specify Distro

No response

CPU

Intel i5

GPU

GTX 1070

GS Settings

Default

Emulation Settings

Default

GS Window Screenshots

No response

Logs & Dumps

No response

Mrlinkwii commented 1 year ago

can this be double checked on lastest nightly ?

Mrlinkwii commented 1 year ago

still an issue of v1.7.4043

Goatman13 commented 1 year ago

Sound work fine with +3 cyclerate. Even if bug is already triggered, setting +3 workaround it.

Goatman13 commented 1 year ago

Seems like a game bug, but i'm not really good in SIF stuff. Game is disabling voice only if sceSifDmaStat return non negative value. I'm not familiar with that function but internally its testing SIF1 CHCR.STR, and return -1 if dma is not running. Problem starts when EE is too slow, and transfer already finished. Voice that should be disabled here is just still playing. More than that if you push any button, next dma is send without disabling old voices.

0x1181A4 jal          sceSifDmaStat
0x1181A8 move         $a0, $v0
0x1181AC bltz         $v0, skip_disable <-- Less than zero is returned if sif1 chcr str bit is 0
0x1181B0 addu         $v0, $s0, $s5
0x1181B4 sw           $zero, 4($v0)     <-- Disable voices send by that dma.

Patch to workaround it, not sure there is anything else that can fix it. Beside +3 cyclerate, or proper cycle counting. patch=1,EE,001181AC,word,00000000

Mrlinkwii commented 1 year ago

interesting :thinking:

seta-san commented 1 year ago

this is still happening. it's a CD based game.