X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=Pico%2FMemory.s;h=93c503d5a66c28399cfc9022a52ed8a1a5b8d0dc;hb=c5b61ac25d64d5fb1e8d825e6b44c6c50b05ab34;hp=88b8c43e118aa0e3d48fb202ff91cd6d58841762;hpb=7969166ef66a8623cb4d8c609eb6e67314aefd79;p=picodrive.git diff --git a/Pico/Memory.s b/Pico/Memory.s index 88b8c43..93c503d 100644 --- a/Pico/Memory.s +++ b/Pico/Memory.s @@ -435,6 +435,19 @@ m_read8_ram: bx lr m_read8_above_rom: + @ might still be SRam (Micro Machines, HardBall '95) + ldr r2, =(SRam) + ldr r3, =(Pico+0x22200) + ldr r1, [r2, #8] @ SRam.end + cmp r0, r1 + bgt m_read8_ar_nosram + ldr r1, [r2, #4] @ SRam.start + cmp r0, r1 + blt m_read8_ar_nosram + ldrb r1, [r3, #0x11] @ Pico.m.sram_reg + tst r1, #5 + bne SRAMRead +m_read8_ar_nosram: stmfd sp!,{r0,lr} bic r0, r0, #1 mov r1, #8 @@ -566,7 +579,24 @@ m_read16_ram: bx lr m_read16_above_rom: + @ might still be SRam + ldr r2, =(SRam) + ldr r3, =(Pico+0x22200) + ldr r1, [r2, #8] @ SRam.end bic r0, r0, #1 + cmp r0, r1 + bgt m_read16_ar_nosram + ldr r1, [r2, #4] @ SRam.start + cmp r0, r1 + blt m_read16_ar_nosram + ldrb r1, [r3, #0x11] @ Pico.m.sram_reg + tst r1, #5 + beq m_read16_ar_nosram + stmfd sp!,{lr} + bl SRAMRead + orr r0, r0, r0, lsl #8 + ldmfd sp!,{pc} +m_read16_ar_nosram: mov r1, #16 b OtherRead16End @@ -861,7 +891,8 @@ m_write8_z80_not_ram: ldr r2, =emustatus ldmfd sp!,{lr} ldr r1, [r2] - orr r1, r0, r2 + and r0, r0, #1 + orr r1, r0, r1 str r1, [r2] @ emustatus|=YM2612Write(a&3, d); bx lr