summaryrefslogtreecommitdiff
path: root/libpcsxcore
diff options
context:
space:
mode:
authorSND\shalma_cp <SND\shalma_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2010-09-26 13:36:54 +0000
committerSND\shalma_cp <SND\shalma_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2010-09-26 13:36:54 +0000
commitf90c726e013a832cea1ce213e5251b9a013ad8a1 (patch)
tree5de84777ff55323cf940e5559abb46df25475238 /libpcsxcore
parent2ac114fd69d0b748d3cf527b49cc152b6c141483 (diff)
downloadpcsxr-f90c726e013a832cea1ce213e5251b9a013ad8a1.tar.gz
BIOS: cache flushing
- Only affects interpreter git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@57733 e17a0e51-4ae3-4d35-97c3-1a29b211df97
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;