summaryrefslogtreecommitdiff
path: root/libpcsxcore
diff options
context:
space:
mode:
Diffstat (limited to 'libpcsxcore')
-rwxr-xr-xlibpcsxcore/cdriso.c6
-rwxr-xr-xlibpcsxcore/cdrom.c6
-rwxr-xr-xlibpcsxcore/psxcommon.h8
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();