summaryrefslogtreecommitdiff
path: root/libpcsxcore
diff options
context:
space:
mode:
Diffstat (limited to 'libpcsxcore')
-rw-r--r--libpcsxcore/psxbios.c2
-rw-r--r--libpcsxcore/psxmem.c5
2 files changed, 6 insertions, 1 deletions
diff --git a/libpcsxcore/psxbios.c b/libpcsxcore/psxbios.c
index f2751b86..a63741d6 100644
--- a/libpcsxcore/psxbios.c
+++ b/libpcsxcore/psxbios.c
@@ -1070,6 +1070,8 @@ void psxBios_FlushCache() { // 44
#ifdef PSXBIOS_LOG
PSXBIOS_LOG("psxBios_%s\n", biosA0n[0x44]);
#endif
+
+ psxRegs.ICache_valid = 0;
pc0 = ra;
}
diff --git a/libpcsxcore/psxmem.c b/libpcsxcore/psxmem.c
index feb69b4f..dd18e48e 100644
--- a/libpcsxcore/psxmem.c
+++ b/libpcsxcore/psxmem.c
@@ -325,13 +325,16 @@ void psxMemWrite32(u32 mem, u32 value) {
} else {
int i;
+ // a0-44: used for cache flushing
switch (value) {
case 0x800: case 0x804:
if (writeok == 0) break;
writeok = 0;
memset(psxMemWLUT + 0x0000, 0, 0x80 * sizeof(void *));
memset(psxMemWLUT + 0x8000, 0, 0x80 * sizeof(void *));
- memset(psxMemWLUT + 0xa000, 0, 0x80 * sizeof(void *));
+ memset(psxMemWLUT + 0xa000, 0, 0x80 * sizeof(void *));
+
+ psxRegs.ICache_valid = 0;
break;
case 0x00: case 0x1e988:
if (writeok == 1) break;