"Implement register mirroring"
https://github.com/mupen64plus/mupen64plus-core/pull/1119

Index: src/device/rcp/rdp/rdp_core.c
--- src/device/rcp/rdp/rdp_core.c.orig
+++ src/device/rcp/rdp/rdp_core.c
@@ -128,7 +128,10 @@ void read_dps_regs(void* opaque, uint32_t address, uin
     struct rdp_core* dp = (struct rdp_core*)opaque;
     uint32_t reg = dps_reg(address);
 
-    *value = dp->dps_regs[reg];
+    if (reg < DPS_REGS_COUNT)
+    {
+        *value = dp->dps_regs[reg];
+    }
 }
 
 void write_dps_regs(void* opaque, uint32_t address, uint32_t value, uint32_t mask)
@@ -136,7 +139,10 @@ void write_dps_regs(void* opaque, uint32_t address, ui
     struct rdp_core* dp = (struct rdp_core*)opaque;
     uint32_t reg = dps_reg(address);
 
-    masked_write(&dp->dps_regs[reg], value, mask);
+    if (reg < DPS_REGS_COUNT)
+    {
+        masked_write(&dp->dps_regs[reg], value, mask);
+    }
 }
 
 void rdp_interrupt_event(void* opaque)
