+@ vim:filetype=armasm\r
+\r
@ memory handlers with banking support for SSF II - The New Challengers\r
@ mostly based on Gens code\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
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
+@ ldr r2, =OtherRead16\r
+@ bx r2\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
+@ ldr r1, =PicoVideoRead\r
+@ bx r1\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
+@ ldr r2, =OtherRead16End\r
+@ bx r2\r
\r
.pool\r
\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