~libretro/pcsxr/+git/pcsx_rearmed:cdrom_audio_fix_attempt

Last commit made on 2021-10-12
Get this branch:
git clone -b cdrom_audio_fix_attempt https://git.launchpad.net/~libretro/pcsxr/+git/pcsx_rearmed

Branch merges

Branch information

Name:
cdrom_audio_fix_attempt
Repository:
lp:~libretro/pcsxr/+git/pcsx_rearmed

Recent commits

f2585a3... by gameblabla <email address hidden>

Fix stutter before speech samples in Castlevania Symphony of the Night

A regression was introduced by the CDROM timings changes
https://github.com/libretro/pcsx_rearmed/commit/068a6133171b026956bbfd91e9bf4666def8823d

This was done to fix some games such as :
- Crash Team Racing's intro music cutting off too soon
- FF8 Lunar Cry FMV freeze (Disc 3)
- Worms Pinball not booting
- Xenogears (Deus fight)

However for whatever reason, this also caused ADPCM speech samples
in Castlevania Symphony of the Night to stutter.

This could be caused by another underlying issue however.
Here are the commands being run by Castlevania for speech samples :

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)

According to nicolasnoble, we shouldn't cause a delay
if the seek destination is already close to the current location.
Implementing that properly is a lot more work so for now,
i am doing this instead.

I tested it against Castlevania and Megaman X4 and it didn't cause a
regression. (at least it's better than it is right now)
CTR's intro also seems fine as well (this did not work properly
before the new CDROM timing changes)

45c3a59... by gameblabla <email address hidden>

Merge pull request #567 from gameblabla/fix_minor_close_iso

Fix minor issue when closing ISO.

6e537c6... by gameblabla <email address hidden>

Fix minor issue when closing ISO.

beb23a2... by gameblabla <email address hidden>

Merge pull request #566 from gameblabla/neon_fix_libretro

Always look up verify_dirty literals from offsets by neonloop

12aa995... by gameblabla <email address hidden>

Always look up verify_dirty literals from offsets by neonloop

Literals are deduplicated, so there's no guarantee they will be stored
next to each other, even if they're written sequentially. verify_dirty
and get_bounds must use the offsets on each instruction, instead of
assuming values are stored sequentially.

Thanks neonloop for the fix

Co-authored-by: neonloop <email address hidden>

f5b7bb8... by twinaphex <email address hidden>

drflac - assume DRFLAC_NO_STDIO by default

2af909e... by gameblabla <email address hidden>

Merge pull request #563 from gameblabla/remove_junk

Remove junk files and fix lack of clearing icache when loading new games

952943a... by gameblabla <email address hidden>

Remove junk files and fix regression in icache mode with Armored Core.

7381743... by gameblabla <email address hidden>

Merge pull request #562 from gameblabla/cdrom_fixes_libretro_precautions

Revert some changes as they were not tested or are not required

6087d7e... by gameblabla <email address hidden>

Revert some changes as they were not tested or are not required

Per feedback from notaz, thanks to him.