grumpycoders / grumpycoders/pcsx-redux

Stuttering issue in Castlevania Symphony of the Night after " Delaying reads after a seek" commit

Open
#643 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
994
Forks
151
Avg merge
1d 15h
Merged PRs (30d)
18

Description

This commit... :
https://github.com/grumpycoders/pcsx-redux/commit/5730e04f0183f37038bc1d133cf9f9092425b90a
while it fixed a bunch of games (Ctr's intro music no longer being cutoff, Worms Pinball booting, the freeze after FF8 lunar cry FMV is not there anymore), it regressed in a bunch of other games that play ADPCM tracks it seems.
One of the most noticeable one is Castlevania Symphony of the Night during the speech samples but it also happens in other instances (such as the menu music).

See the issue for yourself and listen carefully to Dracula saying "It was not by my hand":
https://youtu.be/g6sT0DggNRI

My fix, which you can find https://github.com/gameblabla/pcsx-redux/commit/64d811fbcd4f61202950747063842f51720f2747, simply sets m_locationChanged = false; before playADPCM.
This is what it sounds like after my "fix":
https://youtu.be/TIbi3nRH6xw

Now, i'm aware that this is a hack of sorts, which is why i opened this issue in the first place and not just a PR.

This is what the game does when it plays a speech sample
```
CD1 write: 1 (CdlNop)
CD1 write: 1 (CdlNop)
CD1 write: 9 (CdlPause)
CD1 write: e (CdlSetmode) Param[1] = { c8,}
CD1 write: 1 (CdlNop)
CD1 write: d (CdlSetfilter) Param[2] = { b, 6,}
CD1 write: 1 (CdlNop)
CD1 write: 2 (CdlSetloc) Param[3] = { 26, 1, 39,}
CD1 write: 1 (CdlNop)
CD1 write: 6 (CdlReadN)
CD1 write: 1 (CdlNop)
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.