+@ vim:filetype=armasm\r
+\r
@ memory handlers with banking support for SSF II - The New Challengers\r
@ mostly based on Gens code\r
\r
-@ (c) Copyright 2006, notaz\r
+@ (c) Copyright 2006-2007, Grazvydas "notaz" Ignotas\r
@ All Rights Reserved\r
\r
\r
stmfd sp!,{r0,lr}\r
bic r0, r0, #1\r
mov r1, #8\r
- bl UnusualRead16\r
+ bl OtherRead16End\r
ldmfd sp!,{r1,lr}\r
tst r1, #1\r
moveq r0, r0, lsr #8\r
mov r0, r0, lsr #8\r
orr r0, r0, r1, lsl #8\r
bx lr\r
+\r
m_read16_nosram:\r
ldr r1, [r3, #4] @ 1ci\r
cmp r0, r1\r
m_read16_rom 0xF\r
\r
m_read16_misc:\r
- mov r1, #16\r
- ldr r2, =OtherRead16\r
bic r0, r0, #1\r
- bx r2\r
+ mov r1, #16\r
+ b OtherRead16\r
\r
m_read16_vdp:\r
tst r0, #0x70000\r
tsteq r0, #0x000e0\r
bxne lr @ invalid read\r
- ldr r1, =PicoVideoRead\r
bic r0, r0, #1\r
- bx r1\r
+ b PicoVideoRead\r
\r
m_read16_ram:\r
ldr r1, =Pico\r
bx lr\r
\r
m_read16_above_rom:\r
- mov r1, #16\r
- ldr r2, =UnusualRead16\r
bic r0, r0, #1\r
- bx r2\r
+ mov r1, #16\r
+ b OtherRead16End\r
\r
.pool\r
\r
and r1, r1, #0xff\r
orr r0, r0, r1, lsl #8\r
bx lr\r
+\r
m_read32_nosram:\r
ldr r1, [r3, #4] @ (1ci)\r
cmp r0, r1\r
tsteq r0, #0x000e0\r
bxne lr @ invalid read\r
bic r0, r0, #1\r
- stmfd sp!,{r0,lr}\r
+ add r1, r0, #2\r
+ stmfd sp!,{r1,lr}\r
bl PicoVideoRead\r
- mov r1, r0\r
- ldmfd sp!,{r0}\r
- stmfd sp!,{r1}\r
- add r0, r0, #2\r
+ swp r0, r0, [sp]\r
bl PicoVideoRead\r
ldmfd sp!,{r1,lr}\r
orr r0, r0, r1, lsl #16\r
bic r0, r0, #1\r
stmfd sp!,{r0,lr}\r
mov r1, #32\r
- bl UnusualRead16\r
+ bl OtherRead16End\r
mov r1, r0\r
ldmfd sp!,{r0}\r
stmfd sp!,{r1}\r
add r0, r0, #2\r
mov r1, #32\r
- bl UnusualRead16\r
+ bl OtherRead16End\r
ldmfd sp!,{r1,lr}\r
orr r0, r0, r1, lsl #16\r
bx lr\r
\r
@ sram register\r
ldr r2, =(Pico+0x22211) @ Pico.m.sram_reg\r
+ ldrb r0, [r2]\r
and r1, r1, #3\r
- strb r1, [r2]\r
+ bic r0, r0, #3\r
+ orr r0, r0, r1\r
+ strb r0, [r2]\r
bx lr\r
\r
pwr_banking:\r
str r12, [r2, r0, lsl #2]\r
\r
bx lr\r
+\r