summaryrefslogtreecommitdiff
path: root/libpcsxcore
diff options
context:
space:
mode:
Diffstat (limited to 'libpcsxcore')
-rw-r--r--libpcsxcore/cdrom.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/libpcsxcore/cdrom.c b/libpcsxcore/cdrom.c
index 96d9faac..325e3866 100644
--- a/libpcsxcore/cdrom.c
+++ b/libpcsxcore/cdrom.c
@@ -1360,14 +1360,15 @@ void cdrReadInterrupt() {
if ((!cdr.Muted) && (cdr.Mode & 0x40) && (!Config.Xa) && (cdr.FirstSector != -1)) { // CD-XA
// Firemen 2: Multi-XA files - briefings, cutscenes
- if( cdr.FirstSector == 1 && (cdr.Mode & 0x8)==0 ) {
- cdr.File = cdr.Transfer[4 + 0];
- }
-
- if ((cdr.Transfer[4 + 2] & 0x4) &&
- ((cdr.Mode & 0x8) ? (cdr.Transfer[4 + 1] == cdr.Channel) : 1) &&
- (cdr.Transfer[4 + 0] == cdr.File)) {
- int ret = xa_decode_sector(&cdr.Xa, cdr.Transfer+4, cdr.FirstSector);
+ if( cdr.FirstSector == 1 && (cdr.Mode & 0x8)==0 ) {
+ cdr.File = cdr.Transfer[4 + 0];
+ cdr.Channel = cdr.Transfer[4 + 1];
+ }
+
+ if((cdr.Transfer[4 + 2] & 0x4) &&
+ (cdr.Transfer[4 + 1] == cdr.Channel) &&
+ (cdr.Transfer[4 + 0] == cdr.File)) {
+ int ret = xa_decode_sector(&cdr.Xa, cdr.Transfer+4, cdr.FirstSector);
if (!ret) {
SPU_playADPCMchannel(&cdr.Xa);