diff options
Diffstat (limited to 'libpcsxcore')
| -rwxr-xr-x | libpcsxcore/cdriso.c | 6 | ||||
| -rwxr-xr-x | libpcsxcore/cdrom.c | 6 | ||||
| -rwxr-xr-x | libpcsxcore/psxcommon.h | 8 |
3 files changed, 13 insertions, 7 deletions
diff --git a/libpcsxcore/cdriso.c b/libpcsxcore/cdriso.c index 4481b33d..95a787b4 100755 --- a/libpcsxcore/cdriso.c +++ b/libpcsxcore/cdriso.c @@ -1980,8 +1980,8 @@ long CALLBACK ISOreadCDDA(unsigned char m, unsigned char s, unsigned char f, uns break; } - // data tracks play silent - if (ti[track].type != CDDA) { + // data tracks play silent (or CDDA set to silent) + if (ti[track].type != CDDA || Config.Cdda == CDDA_DISABLED) { memset(buffer, 0, CD_FRAMESIZE_RAW); return 0; } @@ -2006,7 +2006,7 @@ long CALLBACK ISOreadCDDA(unsigned char m, unsigned char s, unsigned char f, uns return -1; } - if (cddaBigEndian) { + if (Config.Cdda == CDDA_ENABLED_BE || cddaBigEndian) { int i; unsigned char tmp; diff --git a/libpcsxcore/cdrom.c b/libpcsxcore/cdrom.c index 69d665a6..2aa6f9ad 100755 --- a/libpcsxcore/cdrom.c +++ b/libpcsxcore/cdrom.c @@ -703,7 +703,7 @@ void cdrInterrupt() { ReadTrack(cdr.SetSectorPlay); cdr.TrackChanged = FALSE; - if (!Config.Cdda) + if (Config.Cdda != CDDA_DISABLED) CDR_play(cdr.SetSectorPlay); // Vib Ribbon: gameplay checks flag @@ -1582,7 +1582,7 @@ void cdrReset() { int cdrFreeze(gzFile f, int Mode) { u8 tmpp[3]; - if (Mode == 0 && !Config.Cdda) + if (Mode == 0 && Config.Cdda != CDDA_DISABLED) CDR_stop(); gzfreeze(&cdr, sizeof(cdr)); @@ -1600,7 +1600,7 @@ int cdrFreeze(gzFile f, int Mode) { if (cdr.Play) { Find_CurTrack(cdr.SetSectorPlay); - if (!Config.Cdda) + if (Config.Cdda != CDDA_DISABLED) CDR_play(cdr.SetSectorPlay); } } diff --git a/libpcsxcore/psxcommon.h b/libpcsxcore/psxcommon.h index b6f83e74..8def3612 100755 --- a/libpcsxcore/psxcommon.h +++ b/libpcsxcore/psxcommon.h @@ -141,7 +141,7 @@ typedef struct { boolean SioIrq; boolean Mdec; boolean PsxAuto; - boolean Cdda; + u8 Cdda; boolean HLE; boolean SlowBoot; boolean Debug; @@ -189,6 +189,12 @@ enum { CPU_INTERPRETER }; // CPU Types +enum { + CDDA_ENABLED_LE = 0, + CDDA_DISABLED, + CDDA_ENABLED_BE +}; // CDDA Types + int EmuInit(); void EmuReset(); void EmuShutdown(); |
