notaz.gp2x.de
/
picodrive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge pull request #22 from DSkywalk/master
[picodrive.git]
/
pico
/
32x
/
draw_arm.s
diff --git
a/pico/32x/draw_arm.s
b/pico/32x/draw_arm.s
index
ccb6d49
..
ba66fbf
100644
(file)
--- a/
pico/32x/draw_arm.s
+++ b/
pico/32x/draw_arm.s
@@
-1,4
+1,10
@@
-@ vim:filetype=armasm
+@*
+@* PicoDrive
+@* (C) notaz, 2010
+@*
+@* This work is licensed under the terms of MAME license.
+@* See COPYING file in the top-level directory.
+@*
.extern Pico32x
.extern PicoDraw2FB
.extern Pico32x
.extern PicoDraw2FB
@@
-69,7
+75,10
@@
Pico32xNativePal:
ldr r10,[r10, #0x40] @ Pico32x.vdp_regs[0]
ldr r11,[r11]
ldr r9, =HighPal @ palmd
ldr r10,[r10, #0x40] @ Pico32x.vdp_regs[0]
ldr r11,[r11]
ldr r9, =HighPal @ palmd
- add r11,r11,#(328*8) @ r11 = pmd: md data
+ and r4, r2, #0xff
+ mov r5, #328
+ lsl r3, #26 @ mdbg << 26
+ mla r11,r4,r5,r11 @ r11 = pmd = PicoDraw2FB + offs*328: md data
tst r10,#P32XV_PRI
moveq r10,#0
movne r10,#0x8000 @ r10 = inv_bit
tst r10,#P32XV_PRI
moveq r10,#0
movne r10,#0x8000 @ r10 = inv_bit
@@
-99,7
+108,7
@@
Pico32xNativePal:
subs r6, r6, #1
blt 0b @ loop_outer
ldrh r8, [r5], #2 @ 32x pixel
subs r6, r6, #1
blt 0b @ loop_outer
ldrh r8, [r5], #2 @ 32x pixel
- cmp r
7, r3
@ MD has bg pixel?
+ cmp r
3, r7, lsl #26
@ MD has bg pixel?
beq 3f @ draw32x
eor r12,r8, r10
ands r12,r12,#0x8000 @ !((t ^ inv) & 0x8000)
beq 3f @ draw32x
eor r12,r8, r10
ands r12,r12,#0x8000 @ !((t ^ inv) & 0x8000)
@@
-135,7
+144,10
@@
Pico32xNativePal:
ldr r11,[r11]
ldr r10,[r10]
ldr r9, =HighPal @ palmd
ldr r11,[r11]
ldr r10,[r10]
ldr r9, =HighPal @ palmd
- add r11,r11,#(328*8) @ r11 = pmd: md data
+ and r4, r2, #0xff
+ mov r5, #328
+ lsl r3, #26 @ mdbg << 26
+ mla r11,r4,r5,r11 @ r11 = pmd = PicoDraw2FB + offs*328: md data
call_scan_prep \call_scan
mov r4, #0 @ line
call_scan_prep \call_scan
mov r4, #0 @ line
@@
-181,14
+193,14
@@
Pico32xNativePal:
tst r12,#0x20
ldrneb r12,[r11,#-2] @ MD pixel 0
eor lr, r8, #0x20
tst r12,#0x20
ldrneb r12,[r11,#-2] @ MD pixel 0
eor lr, r8, #0x20
- cmpne r
12,r3
@ MD has bg pixel?
+ cmpne r
3, r12, lsl #26
@ MD has bg pixel?
.if \do_md
mov r12,r12,lsl #1
ldrneh r7, [r9, r12] @ t = palmd[pmd[0]]
tst lr, #0x20
ldrneb lr, [r11,#-1] @ MD pixel 1
strh r7, [r0], #2
.if \do_md
mov r12,r12,lsl #1
ldrneh r7, [r9, r12] @ t = palmd[pmd[0]]
tst lr, #0x20
ldrneb lr, [r11,#-1] @ MD pixel 1
strh r7, [r0], #2
- cmpne
lr, r3
@ MD has bg pixel?
+ cmpne
r3, lr, lsl #26
@ MD has bg pixel?
mov lr, lr, lsl #1
ldrneh r8, [r9, lr] @ t = palmd[pmd[1]]
strh r8, [r0], #2
mov lr, lr, lsl #1
ldrneh r8, [r9, lr] @ t = palmd[pmd[1]]
strh r8, [r0], #2
@@
-197,7
+209,7
@@
Pico32xNativePal:
tst lr, #0x20
ldrneb lr, [r11,#-1] @ MD pixel 1
add r0, r0, #4
tst lr, #0x20
ldrneb lr, [r11,#-1] @ MD pixel 1
add r0, r0, #4
- cmpne
lr, r3
@ MD has bg pixel?
+ cmpne
r3, lr, lsl #26
@ MD has bg pixel?
streqh r8, [r0, #-2]
.endif
b 2b @ loop_inner
streqh r8, [r0, #-2]
.endif
b 2b @ loop_inner
@@
-255,12
+267,12
@@
Pico32xNativePal:
9: @ bg_mode:
ldrb r12,[r11],#1 @ MD pixel
ldrb lr, [r11],#1
9: @ bg_mode:
ldrb r12,[r11],#1 @ MD pixel
ldrb lr, [r11],#1
- cmp r
12,r3
@ MD has bg pixel?
+ cmp r
3, lr, lsl #26
@ MD has bg pixel?
.if \do_md
mov r12,r12,lsl #1
ldrneh r12,[r9, r12] @ t = palmd[*pmd]
moveq r12,r7
.if \do_md
mov r12,r12,lsl #1
ldrneh r12,[r9, r12] @ t = palmd[*pmd]
moveq r12,r7
- cmp
lr, r3
+ cmp
r3, lr, lsl #26
mov lr, lr, lsl #1
ldrneh lr, [r9, lr]
moveq lr, r7
mov lr, lr, lsl #1
ldrneh lr, [r9, lr]
moveq lr, r7
@@
-268,7
+280,7
@@
Pico32xNativePal:
strh lr, [r0], #2
.else
streqh r7, [r0]
strh lr, [r0], #2
.else
streqh r7, [r0]
- cmp
lr, r3
+ cmp
r3, lr, lsl #26
streqh r7, [r0, #2]
add r0, r0, #4
.endif
streqh r7, [r0, #2]
add r0, r0, #4
.endif
@@
-290,7
+302,10
@@
Pico32xNativePal:
ldr r11,[r11]
ldr r10,[r10]
ldr r9, =HighPal @ palmd
ldr r11,[r11]
ldr r10,[r10]
ldr r9, =HighPal @ palmd
- add r11,r11,#(328*8) @ r11 = pmd: md data
+ and r4, r2, #0xff
+ mov r5, #328
+ lsl r3, #26 @ mdbg << 26
+ mla r11,r4,r5,r11 @ r11 = pmd = PicoDraw2FB + offs*328: md data
call_scan_prep \call_scan
mov r4, #0 @ line
call_scan_prep \call_scan
mov r4, #0 @ line
@@
-323,7
+338,7
@@
Pico32xNativePal:
ldrb r7, [r11], #1 @ MD pixel
subs r6, r6, #1
blt 0b @ loop_outer
ldrb r7, [r11], #1 @ MD pixel
subs r6, r6, #1
blt 0b @ loop_outer
- cmp r
7, r3
@ MD has bg pixel?
+ cmp r
3, r7, lsl #26
@ MD has bg pixel?
mov r7, r7, lsl #1
tstne lr, #0x20
.if \do_md
mov r7, r7, lsl #1
tstne lr, #0x20
.if \do_md
@@
-355,3
+370,4
@@
make_do_loop_rl do_loop_rl_md, 0, 1
make_do_loop_rl do_loop_rl_scan, 1, 0
make_do_loop_rl do_loop_rl_scan_md, 1, 1
make_do_loop_rl do_loop_rl_scan, 1, 0
make_do_loop_rl do_loop_rl_scan_md, 1, 1
+@ vim:filetype=armasm