minor cleanup on gdi / cdi parsers

This commit is contained in:
Anthony Pesch 2017-07-27 23:26:16 -04:00
parent 2591acebd9
commit a151bc22ac
3 changed files with 19 additions and 23 deletions

View File

@ -71,6 +71,10 @@ void dc_suspend(struct dreamcast *dc) {
}
static int dc_load_bin(struct dreamcast *dc, const char *path) {
if (!strstr(path, ".bin")) {
return 0;
}
FILE *fp = fopen(path, "rb");
if (!fp) {
return 0;

View File

@ -49,9 +49,6 @@ static void cdi_read_sector(struct disc *disc, struct track *track, int fad,
res = (int)fread(dst, 1, track->data_size, cdi->fp);
CHECK_EQ(res, track->data_size);
res = fseek(cdi->fp, track->error_size, SEEK_CUR);
CHECK_EQ(res, 0);
}
static void cdi_get_toc(struct disc *disc, int area, struct track **first_track,
@ -194,25 +191,23 @@ static int cdi_parse_track(struct disc *disc, uint32_t version,
track->fad = pregap_length + lba;
track->adr = 0;
track->ctrl = sector_fmt == GD_SECTOR_CDDA ? 0 : 4;
track->sector_fmt = cdi_sector_formats[mode];
track->sector_size = sector_size;
if (track->sector_fmt == GD_SECTOR_CDDA) {
track->header_size = 0;
track->error_size = 0;
track->data_size =
track->sector_size - track->header_size - track->error_size;
CHECK_EQ(track->data_size, 2352);
} else if (track->sector_fmt == GD_SECTOR_M2F1) {
track->header_size = 8;
track->error_size = 280;
track->data_size =
track->sector_size - track->header_size - track->error_size;
CHECK_EQ(track->data_size, 2048);
} else {
LOG_FATAL("unexpected sector format %d", track->sector_fmt);
switch (track->sector_fmt) {
case GD_SECTOR_CDDA:
track->header_size = 0;
track->error_size = 0;
track->data_size = 2352;
break;
case GD_SECTOR_M2F1:
track->header_size = 8;
track->error_size = 280;
track->data_size = 2048;
break;
default:
LOG_WARNING("cdi_parse unexpected sector format %d", track->sector_fmt);
return 0;
}
track->file_offset = data_offset - track->fad * track->sector_size;
LOG_INFO("cdi_parse_track track=%d fad=%d off=%d mode=%s/%d", track->num,

View File

@ -148,14 +148,11 @@ static int gdi_parse(struct disc *disc, const char *filename) {
track->num = gdi->num_tracks;
track->fad = lba + GDROM_PREGAP;
track->ctrl = ctrl;
track->sector_fmt = GD_SECTOR_M1;
track->sector_size = sector_size;
track->header_size = 16;
track->error_size = 288;
track->data_size =
track->sector_size - track->header_size - track->error_size;
track->data_size = 2048;
track->file_offset = file_offset - track->fad * track->sector_size;
snprintf(track->filename, sizeof(track->filename), "%s" PATH_SEPARATOR "%s",
dirname, filename);