CDImage: Fix incorrect pregap file offset calculation
Should fix repeating audio at the start of some tracks.
This commit is contained in:
parent
5a955a4fdc
commit
10f23667c9
|
@ -99,7 +99,7 @@ bool CDImageCHD::Open(const char* filename)
|
||||||
m_filename = filename;
|
m_filename = filename;
|
||||||
|
|
||||||
u32 disc_lba = 0;
|
u32 disc_lba = 0;
|
||||||
u64 disc_frame = 0;
|
u64 file_lba = 0;
|
||||||
|
|
||||||
// for each track..
|
// for each track..
|
||||||
int num_tracks = 0;
|
int num_tracks = 0;
|
||||||
|
@ -187,9 +187,9 @@ bool CDImageCHD::Open(const char* filename)
|
||||||
}
|
}
|
||||||
|
|
||||||
pregap_index.file_index = 0;
|
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;
|
pregap_index.file_sector_size = CHD_SECTOR_DATA_SIZE;
|
||||||
disc_frame += pregap_frames;
|
file_lba += pregap_frames;
|
||||||
frames -= pregap_frames;
|
frames -= pregap_frames;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -209,7 +209,7 @@ bool CDImageCHD::Open(const char* filename)
|
||||||
index.index_number = 1;
|
index.index_number = 1;
|
||||||
index.file_index = 0;
|
index.file_index = 0;
|
||||||
index.file_sector_size = CHD_SECTOR_DATA_SIZE;
|
index.file_sector_size = CHD_SECTOR_DATA_SIZE;
|
||||||
index.file_offset = disc_frame;
|
index.file_offset = file_lba;
|
||||||
index.mode = mode.value();
|
index.mode = mode.value();
|
||||||
index.control.bits = control.bits;
|
index.control.bits = control.bits;
|
||||||
index.is_pregap = false;
|
index.is_pregap = false;
|
||||||
|
@ -217,7 +217,7 @@ bool CDImageCHD::Open(const char* filename)
|
||||||
m_indices.push_back(index);
|
m_indices.push_back(index);
|
||||||
|
|
||||||
disc_lba += index.length;
|
disc_lba += index.length;
|
||||||
disc_frame += index.length;
|
file_lba += index.length;
|
||||||
num_tracks++;
|
num_tracks++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue