ref: 10cfc02dedf38b391f5a79f3201d4ea9f7b6cde2
parent: 1c4ab8e5e3d2f7cefb7b097dbe4d6914a02afd07
author: allkern <lisandroaalarcon@gmail.com>
date: Sun Sep 17 07:43:03 EDT 2023
Fix CDDA hack Don't skip pregap when loading CUE
--- a/psx/dev/cdrom.c
+++ b/psx/dev/cdrom.c
@@ -183,8 +183,6 @@
msf_from_bcd(&msf);
- msf.s -= 24;
-
// Seek to that address and read sector
psx_disc_seek(cdrom->disc, msf);
psx_disc_read_sector(cdrom->disc, cdrom->cdda_buf);
--- a/psx/disc/cue.c
+++ b/psx/disc/cue.c
@@ -360,17 +360,17 @@
fseek(track_file, 0, SEEK_END);
// Account for index 1 offset
- track->size = ftell(track_file) - data_offset;
+ track->size = ftell(track_file);
cue->buf_size += track->size;
// Calculate track MS(F)
- msf_from_address(&track->disc_offset, offset);
+ msf_from_address(&track->disc_offset, offset + data_offset);
msf_add_s(&track->disc_offset, 2);
cue->buf = cue_alloc_block(cue->buf, &offset, track->size);
- fseek(track_file, data_offset, SEEK_SET);
+ fseek(track_file, 0, SEEK_SET);
fread(cue->buf + (offset - track->size), 1, track->size, track_file);
fclose(track_file);
--
⑨