cebix / psximager

Tools for dumping and mastering PlayStation 1 ("PSX") CD-ROM images
GNU General Public License v2.0
156 stars 26 forks source link

Incompatible with Multi-Track/Multi-File Images #9

Open RibShark opened 6 years ago

RibShark commented 6 years ago

psxrip is incompatible with images that contain multiple tracks split across different files (example), which is common and in the specification for .cue files. Redump.org (a disc preservation group) specifies that all discs are dumped in this fashion and are the go-to source for verifying whether a disc image is good.

When attempting to rip an image with psxrip, it will search for a .bin file with the same name as the .cue file given rather than parsing the .cue and looking for the track. Additionally it will look for audio tracks in that same .bin file, rather than the separate ones.

EDIT: It seems to fail even when the tracks are combined into one .bin file, showing the error "No ISO 9660 filesystem on data track"

tetracorp commented 3 years ago

A solution I've found to work in at least certain circumstances is to fake a one-track bin/cue, then analyze that. For example, name your .bin file example.bin, then make an example.cue like this:

FILE "example.bin"
  TRACK 01 MODE2/2352
    INDEX 01 00:00:00
Ripper55555 commented 1 month ago

I tried to fix this issue, but only managed to make it work partially. The problem is libcdio having an unfinished .cue parser and they default to assume both the cue/bin have the same name. My fork makes a win32 standalone build that work around a few issues by patching libcdio itself. A way to fix this in pure psximager is to create a temporary .cue file and name it the same as track1. Then it should load that temporary .cue file instead and delete it afterwards. That way the filename assumption is tackled. It should also drop all audio tracks 2+ from the .cue to make sure the disk mode is set correctly and filesystem detection works. I haven't found where libcdio messes things up. 1 track .cue file: INFO: Disc mode = 2 INFO: Filesystem type = 10013 2+ track .cue file: INFO: Disc mode = 3 INFO: Filesystem type = 10003

Lots of pesky bugs.

[edit] I'm still looking into writing a cue parser in psximager if i can't find the problem. Work around libcdio by just dumping tracks 2+ (if audio) by using the .bin files of those tracks. [/edit]