diff options
Diffstat (limited to 'libpcsxcore')
| -rw-r--r-- | libpcsxcore/psxbios.c | 2 | ||||
| -rw-r--r-- | libpcsxcore/psxmem.c | 5 |
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; |
