From b3f5eecbcd660065b8d1c92029e5e6fa0a74ecdb Mon Sep 17 00:00:00 2001 From: "SND\\ckain_cp" Date: Wed, 16 Apr 2014 18:04:29 +0000 Subject: 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 --- libpcsxcore/cdriso.c | 6 +++--- libpcsxcore/cdrom.c | 6 +++--- libpcsxcore/psxcommon.h | 8 +++++++- 3 files changed, 13 insertions(+), 7 deletions(-) (limited to 'libpcsxcore') 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(); -- cgit v1.2.3