gdrom, hle: don't restart cdda if paused or playing
Fix regression due to ab791d1b9c
(unpausing restarts the current track)
Issue #690
This commit is contained in:
parent
1cadd4e923
commit
9d17fc15a3
|
@ -853,7 +853,9 @@ 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::Playing || cdda.CurrAddr.FAD < cdda.StartAddr.FAD || cdda.CurrAddr.FAD > cdda.EndAddr.FAD)
|
||||
if ((cdda.status != cdda_t::Playing && cdda.status != cdda_t::Paused)
|
||||
|| 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;
|
||||
|
|
|
@ -358,7 +358,9 @@ static void GD_HLE_Command(gd_command cc)
|
|||
DEBUG_LOG(REIOS, "GDROM: CMD PLAY first_track %x last_track %x repeats %x start_fad %x end_fad %x", first_track, last_track, cdda.repeats,
|
||||
cdda.StartAddr.FAD, cdda.EndAddr.FAD);
|
||||
cdda.status = cdda_t::Playing;
|
||||
if (SecNumber.Status != GD_PAUSE || cdda.CurrAddr.FAD < cdda.StartAddr.FAD || cdda.CurrAddr.FAD > cdda.EndAddr.FAD)
|
||||
if ((SecNumber.Status != GD_PLAY && SecNumber.Status != GD_PAUSE)
|
||||
|| cdda.CurrAddr.FAD < cdda.StartAddr.FAD
|
||||
|| cdda.CurrAddr.FAD > cdda.EndAddr.FAD)
|
||||
cdda.CurrAddr.FAD = cdda.StartAddr.FAD;
|
||||
SecNumber.Status = GD_PLAY;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue