gdrom: don't reset current cdda sector on cd_play if already playing

Issue #690
This commit is contained in:
Flyinghead 2022-07-12 15:33:11 +02:00
parent 19112aecb2
commit 7f9d9b81aa
1 changed files with 6 additions and 4 deletions

View File

@ -841,11 +841,8 @@ void gd_process_spi_cmd()
if (param_type == 1 || param_type == 2)
{
cdda.status = cdda_t::Playing;
SecNumber.Status = GD_PLAY;
bool min_sec_frame = param_type == 2;
cdda.StartAddr.FAD = cdda.CurrAddr.FAD = GetFAD(&packet_cmd.data_8[2], min_sec_frame);
cdda.StartAddr.FAD = GetFAD(&packet_cmd.data_8[2], min_sec_frame);
cdda.EndAddr.FAD = GetFAD(&packet_cmd.data_8[8], min_sec_frame);
if (cdda.EndAddr.FAD == 0)
{
@ -856,6 +853,11 @@ void gd_process_spi_cmd()
cdda.EndAddr.FAD = ses_inf[3] << 16 | ses_inf[4] << 8 | ses_inf[5];
}
cdda.repeats = packet_cmd.data_8[6] & 0xF;
if (cdda.status == cdda_t::Terminated || cdda.CurrAddr.FAD < cdda.StartAddr.FAD || cdda.CurrAddr.FAD > cdda.EndAddr.FAD)
cdda.CurrAddr.FAD = cdda.StartAddr.FAD;
cdda.status = cdda_t::Playing;
SecNumber.Status = GD_PLAY;
GDStatus.DSC = 1;
}
else if (param_type == 7)