summaryrefslogtreecommitdiff
path: root/libpcsxcore
diff options
context:
space:
mode:
authorSND\dario86_cp <SND\dario86_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2014-02-26 19:59:12 +0000
committerSND\dario86_cp <SND\dario86_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2014-02-26 19:59:12 +0000
commitfb2006a065129496c7f223ccab2008be4da4b8f8 (patch)
tree4c4da2012cdc779e46bcb01a486a9a1d218d846f /libpcsxcore
parentb2a6f1a70027737fd34df818be1310ca1d965234 (diff)
downloadpcsxr-fb2006a065129496c7f223ccab2008be4da4b8f8.tar.gz
- fixed region autodetection for some rare discs;
- fixed copy protection regression in r82129 by notaz from one year ago; I hope this won't break anything (issue #11594). git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@89219 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'libpcsxcore')
-rwxr-xr-xlibpcsxcore/cdrom.c5
-rwxr-xr-xlibpcsxcore/misc.c8
2 files changed, 6 insertions, 7 deletions
diff --git a/libpcsxcore/cdrom.c b/libpcsxcore/cdrom.c
index 2cac3a75..69d665a6 100755
--- a/libpcsxcore/cdrom.c
+++ b/libpcsxcore/cdrom.c
@@ -445,9 +445,6 @@ static void ReadTrack(const u8 *time) {
cdr.RErr = CDR_readTrack(tmp);
memcpy(cdr.Prev, tmp, 3);
- if (CheckSBI(time))
- return;
-
subq = (struct SubQ *)CDR_getBufferSub();
if (subq != NULL && cdr.CurTrack == 1) {
crc = calcCrc((u8 *)subq + 12, 10);
@@ -851,6 +848,8 @@ void cdrInterrupt() {
SetResultSize(8);
memcpy(&cdr.Result, &cdr.subq, 8);
+ if (!cdr.Play && CheckSBI(cdr.Result+5))
+ memset(cdr.Result+2, 0, 6);
if (!cdr.Play && !cdr.Reading)
cdr.Result[1] = 0; // HACK?
break;
diff --git a/libpcsxcore/misc.c b/libpcsxcore/misc.c
index 152123a4..02b28467 100755
--- a/libpcsxcore/misc.c
+++ b/libpcsxcore/misc.c
@@ -337,10 +337,10 @@ int CheckCdrom() {
if (Config.PsxAuto) { // autodetect system (pal or ntsc)
if((CdromId[2] == 'e') || (CdromId[2] == 'E') ||
- !strncmp(CdromId, "\0DTLS3035", 10) ||
- !strncmp(CdromId, "PBPX95001", 10) || // according to redump.org, these PAL
- !strncmp(CdromId, "PBPX95007", 10) || // discs have a non-standard ID;
- !strncmp(CdromId, "PBPX95008", 10)) // add more serials if they are discovered.
+ !strncmp(CdromId, "DTLS3035", 8) ||
+ !strncmp(CdromId, "PBPX95001", 9) || // according to redump.org, these PAL
+ !strncmp(CdromId, "PBPX95007", 9) || // discs have a non-standard ID;
+ !strncmp(CdromId, "PBPX95008", 9)) // add more serials if they are discovered.
Config.PsxType = PSX_TYPE_PAL; // pal
else Config.PsxType = PSX_TYPE_NTSC; // ntsc
}