diff options
| author | SND\shalma_cp <SND\shalma_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2010-09-26 13:36:54 +0000 |
|---|---|---|
| committer | SND\shalma_cp <SND\shalma_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2010-09-26 13:36:54 +0000 |
| commit | f90c726e013a832cea1ce213e5251b9a013ad8a1 (patch) | |
| tree | 5de84777ff55323cf940e5559abb46df25475238 /libpcsxcore | |
| parent | 2ac114fd69d0b748d3cf527b49cc152b6c141483 (diff) | |
| download | pcsxr-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.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; |
