more ARM asm sprite rendering bugfixes
authorkub <derkub@gmail.com>
Sat, 29 Feb 2020 22:47:14 +0000 (23:47 +0100)
committerkub <derkub@gmail.com>
Sat, 29 Feb 2020 22:47:14 +0000 (23:47 +0100)
pico/draw_arm.S

index 0eb161e..de45f59 100644 (file)
@@ -317,9 +317,10 @@ DrawLayer:
     moveq   r1,      #0x0007\r
     movgt   r1,      #0x00ff      @ r1=ymask=(height<<8)|0xff; ...; // Y Mask in pixels\r
 \r
-    add     r10, r10, #5\r
-    cmp     r10, #7\r
-    subge   r10, r10, #1          @ r10=shift[width] (5,6,6,7)\r
+    cmp     r10, #2\r
+    addlt   r10, r10, #5\r
+    moveq   r10, #5\r
+    movgt   r10, #7               @ r10=shift[width] (5,6,5,7)\r
 \r
     ldr     r2, [r12, #OFS_EST_DrawScanline]\r
     ldr     lr, [r12, #OFS_EST_PicoMem_vram]\r
@@ -366,7 +367,8 @@ DrawLayer:
     bne     .DrawStrip_interlace\r
 \r
     tst     r0, r0\r
-    movne   r7, r7, lsr #16\r
+    moveq   r7, r7, lsl #16\r
+    mov     r7, r7, lsr #16\r
 \r
     @ Find the line in the name table\r
     add     r2, r2, r7\r
@@ -699,8 +701,8 @@ DrawLayer:
 @ interlace mode 2? Sonic 2?\r
 .DrawStrip_interlace:\r
     tst     r0, r0\r
-    moveq   r7, r7, lsl #21\r
-    movne   r7, r7, lsl #5\r
+    movne   r7, r7, lsr #16\r
+    mov     r7, r7, lsl #21\r
 \r
     @ Find the line in the name table\r
     add     r2, r7, r2, lsl #22    @ r2=(vscroll+(DrawScanline<<1))<<21 (11 bits);\r