summaryrefslogtreecommitdiff
path: root/libpcsxcore
diff options
context:
space:
mode:
authorSND\ckain_cp <SND\ckain_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2014-04-16 18:04:29 +0000
committerSND\ckain_cp <SND\ckain_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2014-04-16 18:04:29 +0000
commitb3f5eecbcd660065b8d1c92029e5e6fa0a74ecdb (patch)
tree57c3edede233016ba0464665e1af127794fa1e29 /libpcsxcore
parente09dfb4e415fa52df9aaeed4b8c1d3ea06d880ce (diff)
downloadpcsxr-b3f5eecbcd660065b8d1c92029e5e6fa0a74ecdb.tar.gz
Big endian CDDA support. Uses Config.Cdda (previously bool). Now enum. Gtk gui was modified for new enum, but compatibility was kept so that other guis don't go nuts.
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@90008 e17a0e51-4ae3-4d35-97c3-1a29b211df97
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();