|
@@ -287,10 +287,10 @@ DrawLayer:
|
|
ldr r12, [sp] @ est
|
|
ldr r12, [sp] @ est
|
|
stmfd sp!, {r4-r11,lr}
|
|
stmfd sp!, {r4-r11,lr}
|
|
|
|
|
|
- ldr r11, [r12, #OFS_Pico_video]
|
|
|
|
|
|
+ ldr r11, [r12, #OFS_EST_Pico]
|
|
mov r8, #1
|
|
mov r8, #1
|
|
|
|
|
|
- ldrb r7, [r11, #16] @ ??vv??hh
|
|
|
|
|
|
+ ldrb r7, [r11, #OFS_Pico_video_reg+16] @ ??vv??hh
|
|
|
|
|
|
mov r6, r1 @ hcache
|
|
mov r6, r1 @ hcache
|
|
orr r9, r3, r0, lsl #29 @ r9=force[31]|sh[30]|plane[29]
|
|
orr r9, r3, r0, lsl #29 @ r9=force[31]|sh[30]|plane[29]
|
|
@@ -311,13 +311,13 @@ DrawLayer:
|
|
cmp r10, #7
|
|
cmp r10, #7
|
|
subge r10, r10, #1 @ r10=shift[width] (5,6,6,7)
|
|
subge r10, r10, #1 @ r10=shift[width] (5,6,6,7)
|
|
|
|
|
|
- ldr r2, [r12, #OFS_DrawScanline]
|
|
|
|
- ldr lr, [r12, #OFS_Pico_vram]
|
|
|
|
|
|
+ ldr r2, [r12, #OFS_EST_DrawScanline]
|
|
|
|
+ ldr lr, [r12, #OFS_EST_PicoMem_vram]
|
|
|
|
|
|
@ Find name table:
|
|
@ Find name table:
|
|
ands r0, r0, #1
|
|
ands r0, r0, #1
|
|
- ldreqb r12, [r11, #2]
|
|
|
|
- ldrneb r12, [r11, #4]
|
|
|
|
|
|
+ ldreqb r12, [r11, #OFS_Pico_video_reg+2]
|
|
|
|
+ ldrneb r12, [r11, #OFS_Pico_video_reg+4]
|
|
|
|
|
|
@ calculate xmask:
|
|
@ calculate xmask:
|
|
mov r5, r8, lsl r10
|
|
mov r5, r8, lsl r10
|
|
@@ -327,8 +327,8 @@ DrawLayer:
|
|
movne r12, r12, lsl #13
|
|
movne r12, r12, lsl #13
|
|
and r12, r12, #(7<<13) @ r12=(ts->nametab<<1) (halfword compliant)
|
|
and r12, r12, #(7<<13) @ r12=(ts->nametab<<1) (halfword compliant)
|
|
|
|
|
|
- ldrh r8, [r11, #12]
|
|
|
|
- ldrb r7, [r11, #11]
|
|
|
|
|
|
+ ldrh r8, [r11, #OFS_Pico_video_reg+12]
|
|
|
|
+ ldrb r7, [r11, #OFS_Pico_video_reg+11]
|
|
|
|
|
|
mov r4, r8, lsr #8 @ pvid->reg[13]
|
|
mov r4, r8, lsr #8 @ pvid->reg[13]
|
|
mov r4, r4, lsl #10 @ htab=pvid->reg[13]<<9; (halfwords)
|
|
mov r4, r4, lsl #10 @ htab=pvid->reg[13]<<9; (halfwords)
|
|
@@ -345,7 +345,7 @@ DrawLayer:
|
|
|
|
|
|
@ Get vertical scroll value:
|
|
@ Get vertical scroll value:
|
|
add r7, lr, #0x012000
|
|
add r7, lr, #0x012000
|
|
- add r7, r7, #0x000180 @ r7=Pico.vsram (Pico+0x22180)
|
|
|
|
|
|
+ add r7, r7, #0x000180 @ r7=PicoMem.vsram (PicoMem+0x22180)
|
|
ldr r7, [r7]
|
|
ldr r7, [r7]
|
|
|
|
|
|
tst r8, #2
|
|
tst r8, #2
|
|
@@ -392,7 +392,7 @@ DrawLayer:
|
|
@ cache some stuff to avoid mem access
|
|
@ cache some stuff to avoid mem access
|
|
ldr r11,[sp, #9*4] @ est
|
|
ldr r11,[sp, #9*4] @ est
|
|
mov r0, #0xf
|
|
mov r0, #0xf
|
|
- ldr r11,[r11, #OFS_HighCol]
|
|
|
|
|
|
+ ldr r11,[r11, #OFS_EST_HighCol]
|
|
|
|
|
|
mvn r9, #0 @ r9=prevcode=-1
|
|
mvn r9, #0 @ r9=prevcode=-1
|
|
add r1, r11, r7 @ r1=pdest
|
|
add r1, r11, r7 @ r1=pdest
|
|
@@ -497,10 +497,10 @@ DrawLayer:
|
|
tst r10, #1<<21 @ seen non hi-prio tile
|
|
tst r10, #1<<21 @ seen non hi-prio tile
|
|
ldr r1, [sp, #9*4] @ est
|
|
ldr r1, [sp, #9*4] @ est
|
|
mov r0, #0
|
|
mov r0, #0
|
|
- ldreq r2, [r1, #OFS_rendstatus]
|
|
|
|
|
|
+ ldreq r2, [r1, #OFS_EST_rendstatus]
|
|
str r0, [r6] @ terminate the cache list
|
|
str r0, [r6] @ terminate the cache list
|
|
orreq r2, r2, #PDRAW_PLANE_HI_PRIO @ had a layer with all hi-prio tiles
|
|
orreq r2, r2, #PDRAW_PLANE_HI_PRIO @ had a layer with all hi-prio tiles
|
|
- streq r2, [r1, #OFS_rendstatus]
|
|
|
|
|
|
+ streq r2, [r1, #OFS_EST_rendstatus]
|
|
|
|
|
|
ldmfd sp!, {r4-r11,lr}
|
|
ldmfd sp!, {r4-r11,lr}
|
|
bx lr
|
|
bx lr
|
|
@@ -515,7 +515,7 @@ DrawLayer:
|
|
|
|
|
|
ldr r11, [sp, #9*4] @ est
|
|
ldr r11, [sp, #9*4] @ est
|
|
orr r5, r1, r10, lsl #24
|
|
orr r5, r1, r10, lsl #24
|
|
- ldr r4, [r11, #OFS_DrawScanline]
|
|
|
|
|
|
+ ldr r4, [r11, #OFS_EST_DrawScanline]
|
|
sub r1, r3, #1
|
|
sub r1, r3, #1
|
|
orr r5, r5, r4, lsl #16 @ r5=(shift_width[31:24]|scanline[23:16]|ymask[15:0])
|
|
orr r5, r5, r4, lsl #16 @ r5=(shift_width[31:24]|scanline[23:16]|ymask[15:0])
|
|
and r1, r1, #7
|
|
and r1, r1, #7
|
|
@@ -541,7 +541,7 @@ DrawLayer:
|
|
@ cache some stuff to avoid mem access
|
|
@ cache some stuff to avoid mem access
|
|
ldr r11,[sp, #9*4] @ est
|
|
ldr r11,[sp, #9*4] @ est
|
|
mov r0, #0xf
|
|
mov r0, #0xf
|
|
- ldr r11,[r11, #OFS_HighCol]
|
|
|
|
|
|
+ ldr r11,[r11, #OFS_EST_HighCol]
|
|
|
|
|
|
mvn r9, #0 @ r9=prevcode=-1
|
|
mvn r9, #0 @ r9=prevcode=-1
|
|
add r1, r11, r7 @ r1=pdest
|
|
add r1, r11, r7 @ r1=pdest
|
|
@@ -557,7 +557,7 @@ DrawLayer:
|
|
|
|
|
|
@ calc offset and read tileline code to r7, also calc ty
|
|
@ calc offset and read tileline code to r7, also calc ty
|
|
add r7, lr, #0x012000
|
|
add r7, lr, #0x012000
|
|
- add r7, r7, #0x000180 @ r7=Pico.vsram (Pico+0x22180)
|
|
|
|
|
|
+ add r7, r7, #0x000180 @ r7=PicoMem.vsram (PicoMem+0x22180)
|
|
add r7, r7, r10,asr #23 @ vsram + ((cell&~1)<<1)
|
|
add r7, r7, r10,asr #23 @ vsram + ((cell&~1)<<1)
|
|
bic r7, r7, #3
|
|
bic r7, r7, #3
|
|
tst r10,#0x8000 @ plane1?
|
|
tst r10,#0x8000 @ plane1?
|
|
@@ -576,7 +576,7 @@ DrawLayer:
|
|
mov r4, r4, lsl r7 @ nametabadd
|
|
mov r4, r4, lsl r7 @ nametabadd
|
|
|
|
|
|
and r7, r8, r8, lsr #25
|
|
and r7, r8, r8, lsr #25
|
|
- add r7, lr, r7, lsl #1 @ Pico.vram+((tilex&ts->xmask) as halfwords)
|
|
|
|
|
|
+ add r7, lr, r7, lsl #1 @ PicoMem.vram+((tilex&ts->xmask) as halfwords)
|
|
add r7, r7, r4, lsl #1
|
|
add r7, r7, r4, lsl #1
|
|
ldrh r7, [r7, r12] @ r7=code (int, but from unsigned, no sign extend)
|
|
ldrh r7, [r7, r12] @ r7=code (int, but from unsigned, no sign extend)
|
|
|
|
|
|
@@ -598,7 +598,7 @@ DrawLayer:
|
|
mov r2, r2, lsr #17
|
|
mov r2, r2, lsr #17
|
|
eorcs r2, r2, #0x0e @ if (code&0x1000) addr^=0xe;
|
|
eorcs r2, r2, #0x0e @ if (code&0x1000) addr^=0xe;
|
|
|
|
|
|
- ldr r2, [lr, r2, lsl #1] @ pack=*(unsigned int *)(Pico.vram+addr); // Get 8 pixels
|
|
|
|
|
|
+ ldr r2, [lr, r2, lsl #1] @ pack=*(unsigned int *)(PicoMem.vram+addr); // Get 8 pixels
|
|
|
|
|
|
bic r7, r3, #0x3f
|
|
bic r7, r3, #0x3f
|
|
and r3, r9, #0x6000
|
|
and r3, r9, #0x6000
|
|
@@ -656,7 +656,7 @@ DrawLayer:
|
|
add r2, r2, r10, lsl #17
|
|
add r2, r2, r10, lsl #17
|
|
mov r2, r2, lsr #17
|
|
mov r2, r2, lsr #17
|
|
eorcs r2, r2, #0x0e @ if (code&0x1000) addr^=0xe;
|
|
eorcs r2, r2, #0x0e @ if (code&0x1000) addr^=0xe;
|
|
- ldr r2, [lr, r2, lsl #1] @ pack=*(unsigned int *)(Pico.vram+addr); // Get 8 pixels
|
|
|
|
|
|
+ ldr r2, [lr, r2, lsl #1] @ pack=*(unsigned int *)(PicoMem.vram+addr); // Get 8 pixels
|
|
mov r9, r7 @ remember code
|
|
mov r9, r7 @ remember code
|
|
tst r2, r2
|
|
tst r2, r2
|
|
orrne r10, r10, #1<<22
|
|
orrne r10, r10, #1<<22
|
|
@@ -667,10 +667,10 @@ DrawLayer:
|
|
tst r8, #(1<<24) @ seen non hi-prio tile
|
|
tst r8, #(1<<24) @ seen non hi-prio tile
|
|
ldr r1, [sp, #9*4] @ est
|
|
ldr r1, [sp, #9*4] @ est
|
|
mov r0, #0
|
|
mov r0, #0
|
|
- ldreq r2, [r1, #OFS_rendstatus]
|
|
|
|
|
|
+ ldreq r2, [r1, #OFS_EST_rendstatus]
|
|
str r0, [r6] @ terminate the cache list
|
|
str r0, [r6] @ terminate the cache list
|
|
orreq r2, r2, #PDRAW_PLANE_HI_PRIO @ had a layer with all hi-prio tiles
|
|
orreq r2, r2, #PDRAW_PLANE_HI_PRIO @ had a layer with all hi-prio tiles
|
|
- streq r2, [r1, #OFS_rendstatus]
|
|
|
|
|
|
+ streq r2, [r1, #OFS_EST_rendstatus]
|
|
|
|
|
|
ldmfd sp!, {r4-r11,lr}
|
|
ldmfd sp!, {r4-r11,lr}
|
|
bx lr
|
|
bx lr
|
|
@@ -716,7 +716,7 @@ BackFill:
|
|
stmfd sp!, {r4-r9,lr}
|
|
stmfd sp!, {r4-r9,lr}
|
|
|
|
|
|
mov r0, r0, lsl #26
|
|
mov r0, r0, lsl #26
|
|
- ldr lr, [r2, #OFS_HighCol]
|
|
|
|
|
|
+ ldr lr, [r2, #OFS_EST_HighCol]
|
|
mov r0, r0, lsr #26
|
|
mov r0, r0, lsr #26
|
|
add lr, lr, #8
|
|
add lr, lr, #8
|
|
|
|
|
|
@@ -758,9 +758,9 @@ DrawTilesFromCache:
|
|
stmfd sp!, {r4-r9,r11,lr}
|
|
stmfd sp!, {r4-r9,r11,lr}
|
|
|
|
|
|
@ cache some stuff to avoid mem access
|
|
@ cache some stuff to avoid mem access
|
|
- ldr r11,[r3, #OFS_HighCol]
|
|
|
|
|
|
+ ldr r11,[r3, #OFS_EST_HighCol]
|
|
mov r12,#0xf
|
|
mov r12,#0xf
|
|
- ldr lr, [r3, #OFS_Pico_vram]
|
|
|
|
|
|
+ ldr lr, [r3, #OFS_EST_PicoMem_vram]
|
|
mov r9, r3 @ est
|
|
mov r9, r3 @ est
|
|
|
|
|
|
mvn r5, #0 @ r5=prevcode=-1
|
|
mvn r5, #0 @ r5=prevcode=-1
|
|
@@ -892,14 +892,14 @@ DrawTilesFromCache:
|
|
|
|
|
|
@ check if we have detected layer covered with hi-prio tiles:
|
|
@ check if we have detected layer covered with hi-prio tiles:
|
|
.dtfc_check_rendflags:
|
|
.dtfc_check_rendflags:
|
|
- ldr r2, [r9, #OFS_rendstatus]
|
|
|
|
|
|
+ ldr r2, [r9, #OFS_EST_rendstatus]
|
|
tst r2, #(PDRAW_PLANE_HI_PRIO|PDRAW_SHHI_DONE)
|
|
tst r2, #(PDRAW_PLANE_HI_PRIO|PDRAW_SHHI_DONE)
|
|
beq .dtfc_loop
|
|
beq .dtfc_loop
|
|
bic r8, r8, #1 @ sh/hi mode off
|
|
bic r8, r8, #1 @ sh/hi mode off
|
|
tst r2, #PDRAW_SHHI_DONE
|
|
tst r2, #PDRAW_SHHI_DONE
|
|
bne .dtfc_loop @ already processed
|
|
bne .dtfc_loop @ already processed
|
|
orr r2, r2, #PDRAW_SHHI_DONE
|
|
orr r2, r2, #PDRAW_SHHI_DONE
|
|
- str r2, [r9, #OFS_rendstatus]
|
|
|
|
|
|
+ str r2, [r9, #OFS_EST_rendstatus]
|
|
|
|
|
|
add r1, r11,#8
|
|
add r1, r11,#8
|
|
mov r3, #320/4/4
|
|
mov r3, #320/4/4
|
|
@@ -939,16 +939,16 @@ DrawSpritesSHi:
|
|
add r10,r0, #3 @ r10=HighLnSpr end
|
|
add r10,r0, #3 @ r10=HighLnSpr end
|
|
add r10,r10,r3 @ r10=HighLnSpr end
|
|
add r10,r10,r3 @ r10=HighLnSpr end
|
|
|
|
|
|
- ldr r11,[r1, #OFS_HighCol]
|
|
|
|
|
|
+ ldr r11,[r1, #OFS_EST_HighCol]
|
|
mov r12,#0xf
|
|
mov r12,#0xf
|
|
- ldr lr, [r1, #OFS_Pico_vram]
|
|
|
|
|
|
+ ldr lr, [r1, #OFS_EST_PicoMem_vram]
|
|
|
|
|
|
|
|
|
|
DrawSpriteSHi:
|
|
DrawSpriteSHi:
|
|
@ draw next sprite
|
|
@ draw next sprite
|
|
ldrb r0, [r10,#-1]!
|
|
ldrb r0, [r10,#-1]!
|
|
ldr r7, [sp] @ est
|
|
ldr r7, [sp] @ est
|
|
- ldr r1, [r7, #OFS_HighPreSpr]
|
|
|
|
|
|
+ ldr r1, [r7, #OFS_EST_HighPreSpr]
|
|
cmp r0, #0xff
|
|
cmp r0, #0xff
|
|
ldmeqfd sp!, {r1,r4-r11,pc} @ end of list
|
|
ldmeqfd sp!, {r1,r4-r11,pc} @ end of list
|
|
and r0, r0, #0x7f
|
|
and r0, r0, #0x7f
|
|
@@ -974,7 +974,7 @@ DrawSpriteSHi:
|
|
mov r5, r3, lsr #24
|
|
mov r5, r3, lsr #24
|
|
and r5, r5, #7 @ r5=height
|
|
and r5, r5, #7 @ r5=height
|
|
|
|
|
|
- ldr r7, [r7, #OFS_DrawScanline]
|
|
|
|
|
|
+ ldr r7, [r7, #OFS_EST_DrawScanline]
|
|
mov r0, r3, lsl #16 @ r4=sy<<16 (tmp)
|
|
mov r0, r3, lsl #16 @ r4=sy<<16 (tmp)
|
|
|
|
|
|
sub r7, r7, r0, asr #16 @ r7=row=DrawScanline-sy
|
|
sub r7, r7, r0, asr #16 @ r7=row=DrawScanline-sy
|
|
@@ -1015,7 +1015,7 @@ DrawSpriteSHi:
|
|
mov r8, r8, lsl #17
|
|
mov r8, r8, lsl #17
|
|
mov r8, r8, lsr #17 @ tile&=0x7fff; // Clip tile address
|
|
mov r8, r8, lsr #17 @ tile&=0x7fff; // Clip tile address
|
|
|
|
|
|
- ldr r2, [lr, r8, lsl #1] @ pack=*(unsigned int *)(Pico.vram+addr); // Get 8 pixels
|
|
|
|
|
|
+ ldr r2, [lr, r8, lsl #1] @ pack=*(unsigned int *)(PicoMem.vram+addr); // Get 8 pixels
|
|
add r1, r11, r0 @ r1=pdest
|
|
add r1, r11, r0 @ r1=pdest
|
|
tst r2, r2
|
|
tst r2, r2
|
|
beq .dsprShi_loop
|
|
beq .dsprShi_loop
|
|
@@ -1117,9 +1117,9 @@ DrawAllSprites:
|
|
add r10,r0, #3
|
|
add r10,r0, #3
|
|
add r10,r10,r2 @ r10=HighLnSpr end
|
|
add r10,r10,r2 @ r10=HighLnSpr end
|
|
|
|
|
|
- ldr r11,[r3, #OFS_HighCol]
|
|
|
|
|
|
+ ldr r11,[r3, #OFS_EST_HighCol]
|
|
mov r12,#0xf
|
|
mov r12,#0xf
|
|
- ldr lr, [r3, #OFS_Pico_vram]
|
|
|
|
|
|
+ ldr lr, [r3, #OFS_EST_PicoMem_vram]
|
|
|
|
|
|
@ + 0 : hhhhvvvv ----hhvv yyyyyyyy yyyyyyyy // v, h: horiz. size
|
|
@ + 0 : hhhhvvvv ----hhvv yyyyyyyy yyyyyyyy // v, h: horiz. size
|
|
@ + 4 : xxxxxxxx xxxxxxxx pccvhnnn nnnnnnnn // x: x coord + 8
|
|
@ + 4 : xxxxxxxx xxxxxxxx pccvhnnn nnnnnnnn // x: x coord + 8
|
|
@@ -1134,12 +1134,12 @@ DrawSprite:
|
|
ldmeqfd sp!, {r1,r3-r11,pc} @ end of list
|
|
ldmeqfd sp!, {r1,r3-r11,pc} @ end of list
|
|
cmp r2, r8, lsr #1
|
|
cmp r2, r8, lsr #1
|
|
bne DrawSprite @ wrong priority
|
|
bne DrawSprite @ wrong priority
|
|
- ldr r1, [r7, #OFS_HighPreSpr]
|
|
|
|
|
|
+ ldr r1, [r7, #OFS_EST_HighPreSpr]
|
|
and r0, r0, #0x7f
|
|
and r0, r0, #0x7f
|
|
add r0, r1, r0, lsl #3
|
|
add r0, r1, r0, lsl #3
|
|
|
|
|
|
ldr r3, [r0] @ sprite[0]
|
|
ldr r3, [r0] @ sprite[0]
|
|
- ldr r7, [r7, #OFS_DrawScanline]
|
|
|
|
|
|
+ ldr r7, [r7, #OFS_EST_DrawScanline]
|
|
mov r6, r3, lsr #28
|
|
mov r6, r3, lsr #28
|
|
sub r6, r6, #1 @ r6=width-1 (inc later)
|
|
sub r6, r6, #1 @ r6=width-1 (inc later)
|
|
mov r5, r3, lsr #24
|
|
mov r5, r3, lsr #24
|
|
@@ -1198,7 +1198,7 @@ DrawSprite:
|
|
mov r8, r8, lsl #17
|
|
mov r8, r8, lsl #17
|
|
mov r8, r8, lsr #17 @ tile&=0x7fff; // Clip tile address
|
|
mov r8, r8, lsr #17 @ tile&=0x7fff; // Clip tile address
|
|
|
|
|
|
- ldr r2, [lr, r8, lsl #1] @ pack=*(unsigned int *)(Pico.vram+addr); // Get 8 pixels
|
|
|
|
|
|
+ ldr r2, [lr, r8, lsl #1] @ pack=*(unsigned int *)(PicoMem.vram+addr); // Get 8 pixels
|
|
add r1, r11, r0 @ r1=pdest
|
|
add r1, r11, r0 @ r1=pdest
|
|
tst r2, r2
|
|
tst r2, r2
|
|
beq .dspr_loop
|
|
beq .dspr_loop
|
|
@@ -1267,12 +1267,12 @@ DrawWindow:
|
|
ldr r12, [sp] @ est
|
|
ldr r12, [sp] @ est
|
|
stmfd sp!, {r4-r11,lr}
|
|
stmfd sp!, {r4-r11,lr}
|
|
|
|
|
|
- ldr r6, [r12, #OFS_Pico_video]
|
|
|
|
- ldr r10, [r12, #OFS_DrawScanline]
|
|
|
|
|
|
+ ldr r6, [r12, #OFS_EST_Pico]
|
|
|
|
+ ldr r10, [r12, #OFS_EST_DrawScanline]
|
|
mov r11, r12 @ est
|
|
mov r11, r12 @ est
|
|
- ldrb r12, [r6, #3] @ pvid->reg[3]
|
|
|
|
|
|
+ ldrb r12, [r6, #OFS_Pico_video_reg+3] @ pvid->reg[3]
|
|
|
|
|
|
- ldr r4, [r6, #12]
|
|
|
|
|
|
+ ldr r4, [r6, #OFS_Pico_video_reg+12]
|
|
mov r5, r10, lsr #3
|
|
mov r5, r10, lsr #3
|
|
and r10, r10, #7
|
|
and r10, r10, #7
|
|
mov r10, r10, lsl #1 @ r10=ty
|
|
mov r10, r10, lsl #1 @ r10=ty
|
|
@@ -1286,8 +1286,8 @@ DrawWindow:
|
|
addeq r12, r12, r5, lsl #6 @ nametab
|
|
addeq r12, r12, r5, lsl #6 @ nametab
|
|
add r12, r12, r0, lsl #2 @ +starttile
|
|
add r12, r12, r0, lsl #2 @ +starttile
|
|
|
|
|
|
- ldr lr, [r11, #OFS_Pico_vram]
|
|
|
|
- ldr r6, [r11, #OFS_rendstatus]
|
|
|
|
|
|
+ ldr lr, [r11, #OFS_EST_PicoMem_vram]
|
|
|
|
+ ldr r6, [r11, #OFS_EST_rendstatus]
|
|
|
|
|
|
@ fetch the first code now
|
|
@ fetch the first code now
|
|
ldrh r7, [lr, r12]
|
|
ldrh r7, [lr, r12]
|
|
@@ -1304,7 +1304,7 @@ DrawWindow:
|
|
sub r8, r1, r0
|
|
sub r8, r1, r0
|
|
|
|
|
|
@ cache some stuff to avoid mem access
|
|
@ cache some stuff to avoid mem access
|
|
- ldr r11, [r11, #OFS_HighCol]
|
|
|
|
|
|
+ ldr r11, [r11, #OFS_EST_HighCol]
|
|
mov r8, r8, lsl #1 @ cells
|
|
mov r8, r8, lsl #1 @ cells
|
|
add r11,r11,#8
|
|
add r11,r11,#8
|
|
mvn r9, #0 @ r9=prevcode=-1
|
|
mvn r9, #0 @ r9=prevcode=-1
|
|
@@ -1392,9 +1392,9 @@ DrawWindow:
|
|
and r2, r6, #PDRAW_WND_DIFF_PRIO
|
|
and r2, r6, #PDRAW_WND_DIFF_PRIO
|
|
ldmfd sp!, {r4-r11,lr}
|
|
ldmfd sp!, {r4-r11,lr}
|
|
ldr r0, [sp]
|
|
ldr r0, [sp]
|
|
- ldr r1, [r0, #OFS_rendstatus]
|
|
|
|
|
|
+ ldr r1, [r0, #OFS_EST_rendstatus]
|
|
orr r1, r1, r2
|
|
orr r1, r1, r2
|
|
- str r1, [r0, #OFS_rendstatus]
|
|
|
|
|
|
+ str r1, [r0, #OFS_EST_rendstatus]
|
|
|
|
|
|
bx lr
|
|
bx lr
|
|
|
|
|
|
@@ -1486,17 +1486,17 @@ PicoDoHighPal555:
|
|
stmfd sp!, {r4-r10,lr}
|
|
stmfd sp!, {r4-r10,lr}
|
|
mov r10,r2 @ est
|
|
mov r10,r2 @ est
|
|
mov r1, #0
|
|
mov r1, #0
|
|
- ldr r8, [r10, #OFS_Pico_video]
|
|
|
|
|
|
+ ldr r8, [r10, #OFS_EST_Pico]
|
|
|
|
|
|
PicoDoHighPal555_nopush:
|
|
PicoDoHighPal555_nopush:
|
|
orr r9, r1, r0, lsl #31 @ 0:called from FinalizeLine555, 31: s/h
|
|
orr r9, r1, r0, lsl #31 @ 0:called from FinalizeLine555, 31: s/h
|
|
|
|
|
|
- add r0, r10, #OFS_HighPal
|
|
|
|
|
|
+ add r0, r10, #OFS_EST_HighPal
|
|
|
|
|
|
mov r1, #0
|
|
mov r1, #0
|
|
- strb r1, [r8, #-0x1a] @ 0x2220e ~ dirtyPal
|
|
|
|
|
|
+ strb r1, [r8, #OFS_Pico_m_dirtyPal]
|
|
|
|
|
|
- sub r1, r8, #0x128 @ r1=Pico.cram
|
|
|
|
|
|
+ ldr r1, [r10, #OFS_EST_PicoMem_cram]
|
|
mov r2, #0x40
|
|
mov r2, #0x40
|
|
mov r8, #0x0061
|
|
mov r8, #0x0061
|
|
orr r8, r8, #0x0800
|
|
orr r8, r8, #0x0800
|
|
@@ -1507,7 +1507,7 @@ PicoDoHighPal555_nopush:
|
|
tst r9, #(1<<31)
|
|
tst r9, #(1<<31)
|
|
beq PicoDoHighPal555_end
|
|
beq PicoDoHighPal555_end
|
|
|
|
|
|
- add r3, r10, #OFS_HighPal
|
|
|
|
|
|
+ add r3, r10, #OFS_EST_HighPal
|
|
|
|
|
|
@ shadowed pixels:
|
|
@ shadowed pixels:
|
|
mov r12, #0x008e
|
|
mov r12, #0x008e
|
|
@@ -1550,7 +1550,7 @@ PicoDoHighPal555_end:
|
|
tst r9, #1
|
|
tst r9, #1
|
|
ldmeqfd sp!, {r4-r10,pc}
|
|
ldmeqfd sp!, {r4-r10,pc}
|
|
|
|
|
|
- ldr r8, [r10, #OFS_Pico_video]
|
|
|
|
|
|
+ ldr r8, [r10, #OFS_EST_Pico]
|
|
b FinalizeLineRGB555_pal_done
|
|
b FinalizeLineRGB555_pal_done
|
|
|
|
|
|
|
|
|
|
@@ -1561,33 +1561,33 @@ PicoDoHighPal555_end:
|
|
FinalizeLine555:
|
|
FinalizeLine555:
|
|
stmfd sp!, {r4-r10,lr}
|
|
stmfd sp!, {r4-r10,lr}
|
|
mov r10,r2 @ est
|
|
mov r10,r2 @ est
|
|
- ldr r8, [r10, #OFS_Pico_video]
|
|
|
|
|
|
+ ldr r8, [r10, #OFS_EST_Pico]
|
|
|
|
|
|
- ldrb r2, [r8, #-0x1a] @ 0x2220e ~ dirtyPal
|
|
|
|
|
|
+ ldrb r2, [r8, #OFS_Pico_m_dirtyPal]
|
|
mov r1, #1
|
|
mov r1, #1
|
|
tst r2, r2
|
|
tst r2, r2
|
|
bne PicoDoHighPal555_nopush
|
|
bne PicoDoHighPal555_nopush
|
|
|
|
|
|
FinalizeLineRGB555_pal_done:
|
|
FinalizeLineRGB555_pal_done:
|
|
- add r3, r10, #OFS_HighPal
|
|
|
|
|
|
+ add r3, r10, #OFS_EST_HighPal
|
|
|
|
|
|
- ldr r12, [r10, #OFS_rendstatus]
|
|
|
|
|
|
+ ldr r12, [r10, #OFS_EST_rendstatus]
|
|
eors r0, r0, #1 @ sh is 0
|
|
eors r0, r0, #1 @ sh is 0
|
|
mov lr, #0xff
|
|
mov lr, #0xff
|
|
tstne r12,#PDRAW_ACC_SPRITES
|
|
tstne r12,#PDRAW_ACC_SPRITES
|
|
movne lr, #0x3f
|
|
movne lr, #0x3f
|
|
|
|
|
|
- ldr r1, [r10, #OFS_HighCol]
|
|
|
|
- ldr r0, [r10, #OFS_DrawLineDest]
|
|
|
|
|
|
+ ldr r1, [r10, #OFS_EST_HighCol]
|
|
|
|
+ ldr r0, [r10, #OFS_EST_DrawLineDest]
|
|
add r1, r1, #8
|
|
add r1, r1, #8
|
|
|
|
|
|
- ldrb r12, [r8, #12]
|
|
|
|
|
|
+ ldrb r12, [r8, #OFS_Pico_video_reg+12]
|
|
mov lr, lr, lsl #1
|
|
mov lr, lr, lsl #1
|
|
|
|
|
|
tst r12, #1
|
|
tst r12, #1
|
|
movne r2, #320/8 @ len
|
|
movne r2, #320/8 @ len
|
|
bne .fl_no32colRGB555
|
|
bne .fl_no32colRGB555
|
|
- ldr r4, [r10, #OFS_PicoOpt]
|
|
|
|
|
|
+ ldr r4, [r10, #OFS_EST_PicoOpt]
|
|
mov r2, #256/8
|
|
mov r2, #256/8
|
|
ldr r4, [r4]
|
|
ldr r4, [r4]
|
|
tst r4, #0x4000
|
|
tst r4, #0x4000
|