bugfixes in sram memhandlers
[picodrive.git] / Pico / Memory.s
index 732e6b8..7f3c2cb 100644 (file)
@@ -386,17 +386,14 @@ m_read8_misc2:
     cmp     r2, #0x4000\r
     mvnne   r0, #0\r
     bxne    lr                @ invalid\r
-.if EXTERNAL_YM2612\r
     ldr     r1, =PicoOpt\r
     ldr     r1, [r1]\r
     tst     r1, #1\r
-    beq     m_read8_fake_ym2612\r
-    tst     r1, #0x200\r
-    beq     YM2612Read_\r
-    b       YM2612Read_940\r
-.else\r
-    b       YM2612Read_\r
-.endif\r
+\r
+    ldrne   r1, =ym2612_st\r
+    ldrne   r1, [r1]\r
+    ldrneb  r0, [r1, #0x11]   @ ym2612_st->status\r
+    bxne    lr\r
 \r
 m_read8_fake_ym2612:\r
     ldr     r3, =(Pico+0x22200)\r
@@ -505,8 +502,7 @@ m_read16_rom4: @ 0x200000 - 0x27ffff, SRAM area (NBA Live 95)
     tst     r1, #5\r
     beq     m_read16_nosram\r
     stmfd   sp!,{lr}\r
-    bl      SRAMRead\r
-    orr     r0, r0, r0, lsl #8\r
+    bl      SRAMRead16\r
     ldmfd   sp!,{pc}\r
 m_read16_nosram:\r
     ldr     r1, [r3, #4]    @ romsize\r
@@ -596,8 +592,7 @@ m_read16_above_rom:
     tst     r1, #5\r
     beq     m_read16_ar_nosram\r
     stmfd   sp!,{lr}\r
-    bl      SRAMRead\r
-    orr     r0, r0, r0, lsl #8\r
+    bl      SRAMRead16\r
     ldmfd   sp!,{pc}\r
 m_read16_ar_nosram:\r
     mov     r1, #16\r
@@ -650,14 +645,13 @@ m_read32_rom4: @ 0x200000 - 0x27ffff, SRAM area (does any game do long reads?)
     tst     r1, #5\r
     beq     m_read32_nosram\r
     stmfd   sp!,{r0,lr}\r
-    bl      SRAMRead\r
+    bl      SRAMRead16\r
     ldmfd   sp!,{r1,lr}\r
     stmfd   sp!,{r0,lr}\r
     add     r0, r1, #2\r
-    bl      SRAMRead\r
+    bl      SRAMRead16\r
     ldmfd   sp!,{r1,lr}\r
     orr     r0, r0, r1, lsl #16\r
-    orr     r0, r0, r0, lsl #8\r
     bx      lr\r
 m_read32_nosram:\r
     ldr     r1, [r3, #4]    @ romsize\r