From 10f23667c90364e6c54e34fbc25b4733c095d246 Mon Sep 17 00:00:00 2001 From: Connor McLaughlin Date: Fri, 24 Jul 2020 13:47:19 +1000 Subject: [PATCH] CDImage: Fix incorrect pregap file offset calculation Should fix repeating audio at the start of some tracks. --- src/common/cd_image_chd.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/common/cd_image_chd.cpp b/src/common/cd_image_chd.cpp index 7d3345ce6..d4e78fd5b 100644 --- a/src/common/cd_image_chd.cpp +++ b/src/common/cd_image_chd.cpp @@ -99,7 +99,7 @@ bool CDImageCHD::Open(const char* filename) m_filename = filename; u32 disc_lba = 0; - u64 disc_frame = 0; + u64 file_lba = 0; // for each track.. int num_tracks = 0; @@ -187,9 +187,9 @@ bool CDImageCHD::Open(const char* filename) } pregap_index.file_index = 0; - pregap_index.file_offset = disc_lba; + pregap_index.file_offset = file_lba; pregap_index.file_sector_size = CHD_SECTOR_DATA_SIZE; - disc_frame += pregap_frames; + file_lba += pregap_frames; frames -= pregap_frames; } @@ -209,7 +209,7 @@ bool CDImageCHD::Open(const char* filename) index.index_number = 1; index.file_index = 0; index.file_sector_size = CHD_SECTOR_DATA_SIZE; - index.file_offset = disc_frame; + index.file_offset = file_lba; index.mode = mode.value(); index.control.bits = control.bits; index.is_pregap = false; @@ -217,7 +217,7 @@ bool CDImageCHD::Open(const char* filename) m_indices.push_back(index); disc_lba += index.length; - disc_frame += index.length; + file_lba += index.length; num_tracks++; }