lightrec: handle some 32bit-only addresses
authornotaz <notasas@gmail.com>
Thu, 16 Nov 2023 23:48:29 +0000 (01:48 +0200)
committernotaz <notasas@gmail.com>
Thu, 16 Nov 2023 23:48:29 +0000 (01:48 +0200)
notaz/pcsx_rearmed#327

libpcsxcore/lightrec/plugin.c

index 22342fe..70d01bf 100644 (file)
@@ -335,6 +335,14 @@ static void lightrec_enable_ram(struct lightrec_state *state, bool enable)
 
 static bool lightrec_can_hw_direct(u32 kaddr, bool is_write, u8 size)
 {
+       if (is_write && size != 32) {
+               // force32 so must go through handlers
+               if (0x1f801000 <= kaddr && kaddr < 0x1f801024)
+                       return false;
+               if ((kaddr & 0x1fffff80) == 0x1f801080) // dma
+                       return false;
+       }
+
        switch (size) {
        case 8:
                switch (kaddr) {