notaz.gp2x.de
/
picodrive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
eliminate texrels (wip2)
[picodrive.git]
/
pico
/
draw_arm.S
diff --git
a/pico/draw_arm.S
b/pico/draw_arm.S
index
2c1db10
..
23c522b
100644
(file)
--- a/
pico/draw_arm.S
+++ b/
pico/draw_arm.S
@@
-10,15
+10,7
@@
\r
#include "pico_int_o32.h"
\r
\r
\r
#include "pico_int_o32.h"
\r
\r
-.extern PicoOpt
\r
-.extern HighCol
\r
-.extern HighSprZ
\r
-.extern HighPreSpr
\r
-.extern DrawLineDest
\r
.extern DrawStripInterlace
\r
.extern DrawStripInterlace
\r
-.extern HighCacheS_ptr
\r
-
\r
-.equiv OVERRIDE_HIGHCOL, 1
\r
\r
.equ PDRAW_SPRITES_MOVED, (1<<0)
\r
.equ PDRAW_WND_DIFF_PRIO, (1<<1)
\r
\r
.equ PDRAW_SPRITES_MOVED, (1<<0)
\r
.equ PDRAW_WND_DIFF_PRIO, (1<<1)
\r
@@
-395,17
+387,12
@@
DrawLayer:
sub r10,r10,r9, lsl #16 @ cells-=cellskip
\r
\r
@ cache some stuff to avoid mem access
\r
sub r10,r10,r9, lsl #16 @ cells-=cellskip
\r
\r
@ cache some stuff to avoid mem access
\r
-.if OVERRIDE_HIGHCOL
\r
- ldr r11,=HighCol
\r
- mov r0, #0xf
\r
- ldr r11,[r11]
\r
-.else
\r
- ldr r11,=HighCol
\r
+ ldr r11,[sp, #9*4] @ est
\r
mov r0, #0xf
\r
mov r0, #0xf
\r
-.endif
\r
+ ldr r11,[r11, #OFS_HighCol]
\r
\r
mvn r9, #0 @ r9=prevcode=-1
\r
\r
mvn r9, #0 @ r9=prevcode=-1
\r
- add r1, r11, r7 @ r1=pdest
\r
+ add r1, r11, r7
@ r1=pdest
\r
\r
\r
@ r4 & r7 are scratch in this loop
\r
\r
\r
@ r4 & r7 are scratch in this loop
\r
@@
-548,14
+535,9
@@
DrawLayer:
add r10,r10,r9, lsl #16 @ cell+=cellskip
\r
\r
@ cache some stuff to avoid mem access
\r
add r10,r10,r9, lsl #16 @ cell+=cellskip
\r
\r
@ cache some stuff to avoid mem access
\r
-.if OVERRIDE_HIGHCOL
\r
- ldr r11,=HighCol
\r
- mov r0, #0xf
\r
- ldr r11,[r11]
\r
-.else
\r
- ldr r11,=HighCol
\r
+ ldr r11,[sp, #9*4] @ est
\r
mov r0, #0xf
\r
mov r0, #0xf
\r
-.endif
\r
+ ldr r11,[r11, #OFS_HighCol]
\r
\r
mvn r9, #0 @ r9=prevcode=-1
\r
add r1, r11, r7 @ r1=pdest
\r
\r
mvn r9, #0 @ r9=prevcode=-1
\r
add r1, r11, r7 @ r1=pdest
\r
@@
-722,23
+704,17
@@
DrawLayer:
\r
@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
\r
\r
\r
@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
\r
\r
+@ void BackFill(int reg7, int sh, struct PicoEState *est)
\r
\r
\r
-.global BackFill
@ int reg7, int sh
\r
+.global BackFill
\r
\r
BackFill:
\r
stmfd sp!, {r4-r9,lr}
\r
\r
\r
BackFill:
\r
stmfd sp!, {r4-r9,lr}
\r
\r
-.if OVERRIDE_HIGHCOL
\r
- ldr lr, =HighCol
\r
mov r0, r0, lsl #26
\r
mov r0, r0, lsl #26
\r
- ldr lr, [
lr
]
\r
+ ldr lr, [
r2, #OFS_HighCol
]
\r
mov r0, r0, lsr #26
\r
add lr, lr, #8
\r
mov r0, r0, lsr #26
\r
add lr, lr, #8
\r
-.else
\r
- ldr lr, =(HighCol+8)
\r
- mov r0, r0, lsl #26
\r
- mov r0, r0, lsr #26
\r
-.endif
\r
\r
orr r0, r0, r1, lsl #6
\r
orr r0, r0, r0, lsl #8
\r
\r
orr r0, r0, r1, lsl #6
\r
orr r0, r0, r0, lsl #8
\r
@@
-764,8
+740,8
@@
BackFill:
stmia lr!, {r0-r7}
\r
stmia lr!, {r0-r7}
\r
\r
stmia lr!, {r0-r7}
\r
stmia lr!, {r0-r7}
\r
\r
- ldmfd sp!, {r4-r9,
r12
}
\r
- bx
r12
\r
+ ldmfd sp!, {r4-r9,
lr
}
\r
+ bx
lr
\r
\r
\r
@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
\r
\r
\r
@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
\r
@@
-778,14
+754,8
@@
DrawTilesFromCache:
stmfd sp!, {r4-r9,r11,lr}
\r
\r
@ cache some stuff to avoid mem access
\r
stmfd sp!, {r4-r9,r11,lr}
\r
\r
@ cache some stuff to avoid mem access
\r
-.if OVERRIDE_HIGHCOL
\r
- ldr r11,=HighCol
\r
+ ldr r11,[r3, #OFS_HighCol]
\r
mov r12,#0xf
\r
mov r12,#0xf
\r
- ldr r11,[r11]
\r
-.else
\r
- ldr r11,=HighCol
\r
- mov r12,#0xf
\r
-.endif
\r
ldr lr, [r3, #OFS_Pico_vram]
\r
mov r9, r3 @ est
\r
\r
ldr lr, [r3, #OFS_Pico_vram]
\r
mov r9, r3 @ est
\r
\r
@@
-964,14
+934,8
@@
DrawSpritesSHi:
add r10,r0, #3 @ r10=HighLnSpr end
\r
add r10,r10,r3 @ r10=HighLnSpr end
\r
\r
add r10,r0, #3 @ r10=HighLnSpr end
\r
add r10,r10,r3 @ r10=HighLnSpr end
\r
\r
-.if OVERRIDE_HIGHCOL
\r
- ldr r11,=HighCol
\r
- mov r12,#0xf
\r
- ldr r11,[r11]
\r
-.else
\r
- ldr r11,=HighCol
\r
+ ldr r11,[r1, #OFS_HighCol]
\r
mov r12,#0xf
\r
mov r12,#0xf
\r
-.endif
\r
ldr lr, [r1, #OFS_Pico_vram]
\r
\r
\r
ldr lr, [r1, #OFS_Pico_vram]
\r
\r
\r
@@
-979,7
+943,7
@@
DrawSpriteSHi:
@ draw next sprite
\r
ldrb r0, [r10,#-1]!
\r
ldr r7, [sp] @ est
\r
@ draw next sprite
\r
ldrb r0, [r10,#-1]!
\r
ldr r7, [sp] @ est
\r
- ldr r1,
=HighPreSpr
\r
+ ldr r1,
[r7, #OFS_HighPreSpr]
\r
cmp r0, #0xff
\r
ldmeqfd sp!, {r1,r4-r11,pc} @ end of list
\r
and r0, r0, #0x7f
\r
cmp r0, #0xff
\r
ldmeqfd sp!, {r1,r4-r11,pc} @ end of list
\r
and r0, r0, #0x7f
\r
@@
-1159,14
+1123,8
@@
das_no_prep:
add r10,r0, #3
\r
add r10,r10,r2 @ r10=HighLnSpr end
\r
\r
add r10,r0, #3
\r
add r10,r10,r2 @ r10=HighLnSpr end
\r
\r
-.if OVERRIDE_HIGHCOL
\r
- ldr r11,=HighCol
\r
- mov r12,#0xf
\r
- ldr r11,[r11]
\r
-.else
\r
- ldr r11,=HighCol
\r
+ ldr r11,[r3, #OFS_HighCol]
\r
mov r12,#0xf
\r
mov r12,#0xf
\r
-.endif
\r
ldr lr, [r3, #OFS_Pico_vram]
\r
\r
@ + 0 : hhhhvvvv ----hhvv yyyyyyyy yyyyyyyy // v, h: horiz. size
\r
ldr lr, [r3, #OFS_Pico_vram]
\r
\r
@ + 0 : hhhhvvvv ----hhvv yyyyyyyy yyyyyyyy // v, h: horiz. size
\r
@@
-1182,7
+1140,7
@@
DrawSprite:
ldmeqfd sp!, {r1,r3-r11,pc} @ end of list
\r
cmp r2, r8, lsr #1
\r
bne DrawSprite @ wrong priority
\r
ldmeqfd sp!, {r1,r3-r11,pc} @ end of list
\r
cmp r2, r8, lsr #1
\r
bne DrawSprite @ wrong priority
\r
- ldr r1,
=HighPreSpr
\r
+ ldr r1,
[r7, #OFS_HighPreSpr]
\r
and r0, r0, #0x7f
\r
add r0, r1, r0, lsl #3
\r
\r
and r0, r0, #0x7f
\r
add r0, r1, r0, lsl #3
\r
\r
@@
-1352,17
+1310,10
@@
DrawWindow:
sub r8, r1, r0
\r
\r
@ cache some stuff to avoid mem access
\r
sub r8, r1, r0
\r
\r
@ cache some stuff to avoid mem access
\r
-.if OVERRIDE_HIGHCOL
\r
- ldr r11,=HighCol
\r
+ ldr r11, [r11, #OFS_HighCol]
\r
mov r8, r8, lsl #1 @ cells
\r
mov r8, r8, lsl #1 @ cells
\r
- ldr r11,[r11]
\r
- mvn r9, #0 @ r9=prevcode=-1
\r
add r11,r11,#8
\r
add r11,r11,#8
\r
-.else
\r
- ldr r11,=(HighCol+8)
\r
- mov r8, r8, lsl #1 @ cells
\r
mvn r9, #0 @ r9=prevcode=-1
\r
mvn r9, #0 @ r9=prevcode=-1
\r
-.endif
\r
add r1, r11, r0, lsl #4 @ r1=pdest
\r
mov r0, #0xf
\r
b .dwloop_enter
\r
add r1, r11, r0, lsl #4 @ r1=pdest
\r
mov r0, #0xf
\r
b .dwloop_enter
\r
@@
-1632,17
+1583,9
@@
FinalizeLineRGB555_pal_done:
tstne r12,#PDRAW_ACC_SPRITES
\r
movne lr, #0x3f
\r
\r
tstne r12,#PDRAW_ACC_SPRITES
\r
movne lr, #0x3f
\r
\r
-.if OVERRIDE_HIGHCOL
\r
- ldr r1, =HighCol
\r
- ldr r0, =DrawLineDest
\r
- ldr r1, [r1]
\r
- ldr r0, [r0]
\r
+ ldr r1, [r10, #OFS_HighCol]
\r
+ ldr r0, [r10, #OFS_DrawLineDest]
\r
add r1, r1, #8
\r
add r1, r1, #8
\r
-.else
\r
- ldr r0, =DrawLineDest
\r
- ldr r1, =(HighCol+8)
\r
- ldr r0, [r0]
\r
-.endif
\r
\r
ldrb r12, [r8, #12]
\r
mov lr, lr, lsl #1
\r
\r
ldrb r12, [r8, #12]
\r
mov lr, lr, lsl #1
\r
@@
-1650,7
+1593,7
@@
FinalizeLineRGB555_pal_done:
tst r12, #1
\r
movne r2, #320/8 @ len
\r
bne .fl_no32colRGB555
\r
tst r12, #1
\r
movne r2, #320/8 @ len
\r
bne .fl_no32colRGB555
\r
- ldr r4,
=PicoOpt
\r
+ ldr r4,
[r10, #OFS_PicoOpt]
\r
mov r2, #256/8
\r
ldr r4, [r4]
\r
tst r4, #0x4000
\r
mov r2, #256/8
\r
ldr r4, [r4]
\r
tst r4, #0x4000
\r