new 32x renderers, auto fskip change, massive refactoring
[picodrive.git] / pico / draw_arm.s
index 8ecf85a..de40eaa 100644 (file)
@@ -19,6 +19,8 @@
 .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
 .equ PDRAW_ACC_SPRITES,   (1<<2)\r
     cmp     r4, #0xe\r
     ldrgeb  r4, [r1,#\ofs]\r
     orrlt   r4, r3, r4\r
-    orrge   r4, r3, #0x80\r
+    orrge   r4, r4, #0x80\r
     strb    r4, [r1,#\ofs]\r
 0:\r
 .endm\r
 \r
-.macro TileFlipSh_noop\r
+.macro TileFlipSh_markop\r
     TileDoShGenPixel_markop 16,  0 @ #0x000f0000\r
     TileDoShGenPixel_markop 20,  1 @ #0x00f00000\r
     TileDoShGenPixel_markop 24,  2 @ #0x0f000000\r
     TileDoShGenPixel_markop 12,  7 @ #0x0000f000\r
 .endm\r
 \r
-.macro TileNormSh_noop\r
+.macro TileNormSh_markop\r
     TileDoShGenPixel_markop 12,  0 @ #0x0000f000\r
     TileDoShGenPixel_markop  8,  1 @ #0x00000f00\r
     TileDoShGenPixel_markop  4,  2 @ #0x000000f0\r
@@ -991,7 +993,7 @@ DrawSpriteSHi:
     orr     r9, r9, r4, lsl #16\r
     orr     r9, r9, #0x90000000 @ r9=scc1 ???? ... <code> (s=shadow/hilight, cc=pal)\r
     cmp     r12,r9, lsr #28 @ sh/hi with pal3?\r
-    cmpne   r3, #1          @ if not, is ir hi prio?\r
+    cmpne   r3, #1          @ if not, is it hi prio?\r
     bne     DrawSpriteSHi   @ non-operator low sprite, already drawn\r
 \r
     ldr     r3, [r0]        @ sprite[0]\r
@@ -1089,7 +1091,7 @@ DrawSpriteSHi:
     tst     r9, #0x0800\r
     bne     .dsprShi_TileFlip_sh\r
 \r
-    @ (r1=pdest, r2=pixels8, r3=pal) r4: scratch, r12: helper pattern\r
+    @ (r1=pdest, r2=pixels8, r3=pal) r4, r7: scratch, r12: helper pattern\r
 .dsprShi_TileNorm_sh:\r
     TileNormSh\r
     b       .dsprShi_loop\r
@@ -1271,7 +1273,7 @@ DrawSprite: @ was: unsigned int *sprite, int sh, int acc_sprites
 \r
 .dspr_singlec_sh:\r
     cmp     r2, #0xe0000000\r
-    bcs     .dspr_loop          @ operator tileline, ignore\r
+    bcs     .dspr_TileNorm_sh   @ op. tileline, markop. XXX: maybe add a spec. handler?\r
 \r
 .dspr_SingleColor:\r
     and     r4, r2, #0xf\r
@@ -1295,11 +1297,11 @@ DrawSprite: @ was: unsigned int *sprite, int sh, int acc_sprites
 \r
     @ (r1=pdest, r2=pixels8, r3=pal) r4: scratch, r12: helper pattern\r
 .dspr_TileNorm_sh:\r
-    TileNormSh_noop\r
+    TileNormSh_markop\r
     b       .dspr_loop\r
 \r
 .dspr_TileFlip_sh:\r
-    TileFlipSh_noop\r
+    TileFlipSh_markop\r
     b       .dspr_loop\r
 \r
 \r
@@ -1674,7 +1676,7 @@ PicoDoHighPal555:
     ldr     r8, =(Pico+0x22228)  @ Pico.video\r
 \r
 PicoDoHighPal555_nopush:\r
-    str     r1, [sp, #-8]        @ is called from FinalizeLineRGB555?\r
+    str     r1, [sp, #-8]        @ is called from FinalizeLine555?\r
 \r
     str     r0, [sp, #-4]\r
     ldr     r0, =HighPal\r
@@ -1728,9 +1730,9 @@ PicoDoHighPal555_end:
     b       FinalizeLineRGB555_pal_done\r
 \r
 \r
-.global FinalizeLineRGB555 @ int sh\r
+.global FinalizeLine555 @ int sh\r
 \r
-FinalizeLineRGB555:\r
+FinalizeLine555:\r
     stmfd   sp!, {r4-r9,lr}\r
     ldr     r8, =(Pico+0x22228)  @ Pico.video\r
 \r