asm code updated, Bass Masters fix
[picodrive.git] / Pico / Memory.s
index 7f3c2cb..368b640 100644 (file)
@@ -448,10 +448,13 @@ m_read8_above_rom:
     tst     r1, #5\r
     bne     SRAMRead\r
 m_read8_ar_nosram:\r
+    ldr     r2, =PicoRead16Hook\r
     stmfd   sp!,{r0,lr}\r
+    ldr     r2, [r2]\r
     bic     r0, r0, #1\r
     mov     r1, #8\r
-    bl      OtherRead16End\r
+    mov     lr, pc\r
+    bx      r2\r
     ldmfd   sp!,{r1,lr}\r
     tst     r1, #1\r
     moveq   r0, r0, lsr #8\r
@@ -595,8 +598,10 @@ m_read16_above_rom:
     bl      SRAMRead16\r
     ldmfd   sp!,{pc}\r
 m_read16_ar_nosram:\r
+    ldr     r2, =PicoRead16Hook\r
+    ldr     r2, [r2]\r
     mov     r1, #16\r
-    b       OtherRead16End\r
+    bx      r2\r
 \r
 .pool\r
 \r
@@ -748,16 +753,20 @@ m_read32_ram:
     bx      lr\r
 \r
 m_read32_above_rom:\r
+    ldr     r2, =PicoRead16Hook\r
     bic     r0, r0, #1\r
-    stmfd   sp!,{r0,lr}\r
+    ldr     r2, [r2]\r
     mov     r1, #32\r
-    bl      OtherRead16End\r
+    stmfd   sp!,{r0,r2,lr}\r
+    mov     lr, pc\r
+    bx      r2\r
     mov     r1, r0\r
-    ldmfd   sp!,{r0}\r
+    ldmfd   sp!,{r0,r2}\r
     stmfd   sp!,{r1}\r
     add     r0, r0, #2\r
     mov     r1, #32\r
-    bl      OtherRead16End\r
+    mov     lr, pc\r
+    bx      r2\r
     ldmfd   sp!,{r1,lr}\r
     orr     r0, r0, r1, lsl #16\r
     bx      lr\r