ISO mounting code now defaults to 2048 bytes per sector Mode 1 if it can not read the PVD rather than refusing to load the ISO, fixes mounting of Apple Rhapsody ISO's.
This commit is contained in:
@@ -247,7 +247,11 @@ bool CDROM_Interface_Image::LoadIsoFile(char* filename)
|
||||
} else if (CanReadPVD(track.file, RAW_SECTOR_SIZE, true)) {
|
||||
track.sectorSize = RAW_SECTOR_SIZE;
|
||||
track.mode2 = true;
|
||||
} else return false;
|
||||
} else {
|
||||
/* Unknown mode: Assume regular 2048-byte sectors, this is needed so Apple Rhapsody ISO's can be mounted. */
|
||||
track.sectorSize = COOKED_SECTOR_SIZE;
|
||||
track.mode2 = false;
|
||||
}
|
||||
|
||||
track.length = track.file->getLength() / track.sectorSize;
|
||||
tracks.push_back(track);
|
||||
|
||||
@@ -171,4 +171,6 @@ typedef std::vector<Track>::iterator track_it;
|
||||
std::string mcn;
|
||||
};
|
||||
|
||||
void cdrom_image_log(const char *format, ...);
|
||||
|
||||
#endif /* __CDROM_INTERFACE__ */
|
||||
|
||||
@@ -988,6 +988,7 @@ int image_open(uint8_t id, wchar_t *fn)
|
||||
wcstombs(afn, fn, sizeof(afn));
|
||||
if (!cdimg[id]->SetDevice(afn, false))
|
||||
{
|
||||
pclog("Image failed to load\n");
|
||||
image_close(id);
|
||||
cdrom_set_null_handler(id);
|
||||
return 1;
|
||||
|
||||
Reference in New Issue
Block a user