reset behavior changed, Puggsy detection added
[picodrive.git] / Pico / Draw.s
index 3a3da81..5ddd5e6 100644 (file)
@@ -444,8 +444,8 @@ DrawLayer:
 .DrawStrip_vsscroll:\r
     rsb     r8, r3, #0\r
     mov     r8, r8, lsr #3        @ r8=tilex=(-ts->hscroll)>>3\r
-    bic     r8, r8, #0xff000000\r
-    orr     r8, r8, r5, lsl #25   @ r8=(xmask[31:25]|had_output[24]|tilex[23:0])\r
+    bic     r8, r8, #0x3fc00000\r
+    orr     r8, r8, r5, lsl #25   @ r8=(xmask[31:25]|had_output[24]|tilex[21:0])\r
 \r
     ldr     r4, =Scanline\r
     orr     r5, r1, r10, lsl #24\r
@@ -504,9 +504,9 @@ DrawLayer:
     ldrh    r7, [r7]              @ r7=vscroll\r
 \r
     bic     r10,r10,#0xff         @ clear old ty\r
-    and     r4, r5, #0xff0000\r
-    add     r4, r4, r7, lsl #16\r
-    and     r4, r4, r5, lsl #16   @ r4=line<<16\r
+    and     r4, r5, #0xff0000     @ scanline\r
+    add     r4, r4, r7, lsl #16   @ ... += vscroll\r
+    and     r4, r4, r5, lsl #16   @ ... &= ymask\r
     and     r7, r4, #0x70000\r
     orr     r10,r10,r7, lsr #15   @ new ty\r
 \r
@@ -529,7 +529,7 @@ DrawLayer:
     beq     .DrawStrip_vs_samecode @ we know stuff about this tile already\r
 \r
     mov     r9, r7          @ remember code\r
-    orr     r8, r8, #1<<24  @ seen non hi-prio tile\r
+    orr     r8, r8, #(1<<24)@ seen non hi-prio tile\r
 \r
     movs    r2, r9, lsl #20 @ if (code&0x1000)\r
     mov     r2, r2, lsl #1\r
@@ -603,7 +603,7 @@ DrawLayer:
     b       .dsloop_vs\r
 \r
 .dsloop_vs_exit:\r
-    tst     r8, #1<<24 @ seen non hi-prio tile\r
+    tst     r8, #(1<<24) @ seen non hi-prio tile\r
     ldreq   r1, =rendstatus\r
     mov     r0, #0\r
     ldreq   r2, [r1]\r