summaryrefslogtreecommitdiff
path: root/libpcsxcore
diff options
context:
space:
mode:
Diffstat (limited to 'libpcsxcore')
-rwxr-xr-xlibpcsxcore/psxcommon.h1
-rwxr-xr-xlibpcsxcore/sio.c13
2 files changed, 9 insertions, 5 deletions
diff --git a/libpcsxcore/psxcommon.h b/libpcsxcore/psxcommon.h
index 9fc1628b..bd12ef51 100755
--- a/libpcsxcore/psxcommon.h
+++ b/libpcsxcore/psxcommon.h
@@ -150,6 +150,7 @@ typedef struct {
boolean RCntFix;
boolean UseNet;
boolean VSyncWA;
+ boolean NoMemcard;
boolean Widescreen;
boolean HideCursor;
boolean SaveWindowPos;
diff --git a/libpcsxcore/sio.c b/libpcsxcore/sio.c
index deca287a..22ca23e5 100755
--- a/libpcsxcore/sio.c
+++ b/libpcsxcore/sio.c
@@ -718,19 +718,22 @@ void sioWrite8(unsigned char value) {
SIO_INT(SIO_CYCLES);
return;
case 0x81: // start memcard
+ //case 0x82: case 0x83: case 0x84: // Multitap memcard access
StatReg |= RX_RDY;
-#if 0
+
// Chronicles of the Sword - no memcard = password options
- if( Config.Memcard == 1 ) return;
-#endif
- memcpy(buf, cardh, 4);
+ if( Config.NoMemcard || ((strlen(Config.Mcd1) <=0) && (strlen(Config.Mcd2) <=0)) ) {
+ memset(buf, 0x00, 4);
+ } else {
+ memcpy(buf, cardh, 4);
+ }
+
parp = 0;
bufcount = 3;
mcdst = 1;
rdwr = 0;
SIO_INT(SIO_CYCLES);
return;
-
case 0xae: // GameShark CDX - start dongle
StatReg |= RX_RDY;
gsdonglest = 1;