libretro / libretro/RetroArch

RA v1.8.6 does not properly parse TG-16/PCE CDs under Windows 10

Open
#10,639 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
14.1k
Forks
2.2k
Avg merge
7h 35m
Merged PRs (30d)
51

Description

Description

When dumping (or playing) an original TG-16 or PCE CD-ROM disc, RetroArch improperly reads the disc layout. The causes in-game CD audio playback to be slightly out of sync with game audio effects. This is most noticeable with games that use voiced cutscenes, like the intro to Castlevania: Rondo of Blood.

Behavior is identical when playing from an original disc or a dump made in RetroArch from that disc.

Multiple dumps were made on two difference drives (one internal, one external) and the results of all the dumps were identical.

The original game CD and the dumps were tested on Beetle PCE Fast and Beetle PCE. Behavior was identical across the cores.

This issue was mentioned once on Reddit about 10 months ago. The solution for that poster was to download a copy from somewhere rather than using RetroArch to dump or play the original disc.

Expected behavior

I will use Rondo of Blood in these examples just because it is very easy to see the issue immediately.

Play from disc:

  1. Insert PCE CD (Rondo).
  2. Load Beetle PCE Fast core.
  3. Load Disc.
  4. Run game.
  5. Watch game intro.
  6. Start playing game.

Dump disc and play:

  1. Insert PCE CD (Rondo).
  2. Dump Disc to hard drive using RA.
  3. Load Beetle PCE Fast core.
  4. Load Content (select newly dumped game).
  5. Run game.
  6. Watch game intro.
  7. Start game.
Actual behavior

Play from disc:

  1. Insert PCE CD (Rondo).
  2. Load Beetle PCE Fast core.
  3. Load Disc.
  4. Run game.
  5. Watch game intro. <----- Audio is not synced with subtitles. Beginning of next audio track briefly (and incorrectly) plays at title screen.
  6. Start playing game.

Dump disc and play:

  1. Insert PCE CD (Rondo).
  2. Dump Disc to hard drive using RA.
  3. Load Beetle PCE Fast core.
  4. Load Content (select newly dumped game).
  5. Run game.
  6. Watch game intro. <----- Audio is not synced with subtitles. Beginning of next audio track briefly (and incorrectly) plays at title screen.
  7. Start game.
Example CUE file produced by RetroArch

This CUE file was created by RetroArch from an original PCE Rondo of Blood game CD (ring marker FABT). It does not match the ReDump CUE file for the same game.

FILE "cdrom-200511-194511 (Track 01).bin" BINARY
  TRACK 01 AUDIO
    INDEX 00 00:00:00
    INDEX 01 00:02:00
FILE "cdrom-200511-194511 (Track 02).bin" BINARY
  TRACK 02 MODE1/2352
    INDEX 01 00:00:00
FILE "cdrom-200511-194511 (Track 03).bin" BINARY
  TRACK 03 AUDIO
    INDEX 00 00:00:00
    INDEX 01 00:02:00
FILE "cdrom-200511-194511 (Track 04).bin" BINARY
  TRACK 04 AUDIO
    INDEX 00 00:00:00
    INDEX 01 00:02:00
FILE "cdrom-200511-194511 (Track 05).bin" BINARY
  TRACK 05 AUDIO
    INDEX 00 00:00:00
    INDEX 01 00:02:00
FILE "cdrom-200511-194511 (Track 06).bin" BINARY
  TRACK 06 AUDIO
    INDEX 00 00:00:00
    INDEX 01 00:02:00
FILE "cdrom-200511-194511 (Track 07).bin" BINARY
  TRACK 07 AUDIO
    INDEX 00 00:00:00
    INDEX 01 00:02:00
FILE "cdrom-200511-194511 (Track 08).bin" BINARY
  TRACK 08 AUDIO
    INDEX 00 00:00:00
    INDEX 01 00:02:00
FILE "cdrom-200511-194511 (Track 09).bin" BINARY
  TRACK 09 AUDIO
    INDEX 00 00:00:00
    INDEX 01 00:02:00
FILE "cdrom-200511-194511 (Track 10).bin" BINARY
  TRACK 10 AUDIO
    INDEX 00 00:00:00
    INDEX 01 00:02:00
FILE "cdrom-200511-194511 (Track 11).bin" BINARY
  TRACK 11 AUDIO
    INDEX 00 00:00:00
    INDEX 01 00:02:00
FILE "cdrom-200511-194511 (Track 12).bin" BINARY
  TRACK 12 AUDIO
    INDEX 00 00:00:00
    INDEX 01 00:02:00
FILE "cdrom-200511-194511 (Track 13).bin" BINARY
  TRACK 13 AUDIO
    INDEX 00 00:00:00
    INDEX 01 00:02:00
FILE "cdrom-200511-194511 (Track 14).bin" BINARY
  TRACK 14 AUDIO
    INDEX 00 00:00:00
    INDEX 01 00:02:00
FILE "cdrom-200511-194511 (Track 15).bin" BINARY
  TRACK 15 AUDIO
    INDEX 00 00:00:00
    INDEX 01 00:02:00
FILE "cdrom-200511-194511 (Track 16).bin" BINARY
  TRACK 16 AUDIO
    INDEX 00 00:00:00
    INDEX 01 00:02:00
FILE "cdrom-200511-194511 (Track 17).bin" BINARY
  TRACK 17 AUDIO
    INDEX 00 00:00:00
    INDEX 01 00:02:00
FILE "cdrom-200511-194511 (Track 18).bin" BINARY
  TRACK 18 AUDIO
    INDEX 00 00:00:00
    INDEX 01 00:02:00
FILE "cdrom-200511-194511 (Track 19).bin" BINARY
  TRACK 19 AUDIO
    INDEX 00 00:00:00
    INDEX 01 00:02:00
FILE "cdrom-200511-194511 (Track 20).bin" BINARY
  TRACK 20 AUDIO
    INDEX 00 00:00:00
    INDEX 01 00:02:00
FILE "cdrom-200511-194511 (Track 21).bin" BINARY
  TRACK 21 AUDIO
    INDEX 00 00:00:00
    INDEX 01 00:02:00
FILE "cdrom-200511-194511 (Track 22).bin" BINARY
  TRACK 22 MODE1/2352
    INDEX 01 00:00:00

Link to ReDump CUE for comparison: http://redump.org/disc/29878/

Track size comparisons between RA dumped files and ReDump info

Track data sizes are different for selected tracks. All other track file sizes are the same as the ReDump file sizes. None of the MD5s from RetroArch dumped tracks match the values on ReDump. This seems to hint at the fact that RetroArch is starting at an incorrect value when initializing a dump.

Track 1:

  • RA Dump: 9149280
  • ReDump: 8620080

Track 2:

  • RA Dump: 23870448
  • ReDump: 24399648

Track 3:

  • RA Dump: 18778,368
  • ReDump: 19131168

Track 21:

  • RA Dump: 45276000
  • ReDump: 44746800

Track 22:

  • RA Dump: 23167200
  • ReDump: 24049200
Steps to reproduce the bug
  1. Acquire an original TG-16 or PCE game CD.
  2. Dump disc using RetroArch.
  3. Play game using the RetroArch dump with any of the RetroArch PCE cores..

Alternative:

  1. Acquire an original TG-16 or PCE game CD.
  2. Play game from original CD using any of the RetroArch PCE cores.
Bisect Results

I only recently starting using RetroArch with v1.8,6, but this 10 month old Reddit post indicates that the issue may have been ongoing for awhile.

https://www.reddit.com/r/RetroArch/comments/c8f979/akumajou_dracula_x_chi_no_rondo_pc_engine/

Version/Commit

You can find this information under Information/System Information

  • RetroArch: Git Version: 25be09acd3
Environment information
  • OS: Windows 10 x64 Build 18363
  • Compiler: MinGW (9.2.0) 64-bit (as reported by RA, I did not compile myself, used official download)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the issue through RetroArch's disc dumping and playback flow on Windows 10 with Beetle PCE Fast, then compare the generated CUE file and track sizes with the linked ReDump information. The work is done when original and dumped TG-16/PCE CDs have correctly aligned audio and matching track layout data.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.