fixed some renderer regressions
authornotaz <notasas@gmail.com>
Sun, 29 Jun 2008 21:20:26 +0000 (21:20 +0000)
committernotaz <notasas@gmail.com>
Sun, 29 Jun 2008 21:20:26 +0000 (21:20 +0000)
git-svn-id: file:///home/notaz/opt/svn/PicoDrive@505 be3aeb3a-fb24-0410-a615-afba39da0efa

Pico/Draw.c
Pico/Draw.s

index 019fdc0..47edb75 100644 (file)
@@ -772,6 +772,8 @@ static void DrawAllSpritesInterlace(int *hcache, int maxwidth, int pri, int sh)
   // Go through sprites backwards:\r
   for (i-- ;i>=0; i--)\r
     DrawSpriteInterlace(sprites[i]);\r
+\r
+  HighCacheS[0] = 1; // just to fool main code\r
 }\r
 \r
 \r
index f310253..94739b8 100644 (file)
@@ -1132,8 +1132,8 @@ DrawSprite:
     tst     r9, #0x8000\r
     tsteq   r9, #(1<<27)\r
     bne     .dspr_cache       @ if(code&0x8000) || as\r
-    tst     r6, #0x4000\r
-    tstne   r6, #0x2000\r
+    tst     r9, #0x4000\r
+    tstne   r9, #0x2000\r
     tstne   r9, #(1<<31)\r
     bne     .dspr_cache       @ (sh && pal == 0x30)\r
 \r
@@ -1294,8 +1294,9 @@ DrawWindow:
     ands    r6, r6, #2            @ we care about bit 1 only\r
     orr     r6, r6, r2\r
 \r
-    teqne   r2, r7, lsr #15       @ do prio bits differ?\r
-    ldmnefd sp!, {r4-r11,pc}      @ yes, assume that whole window uses same priority\r
+    eoreq   r8, r2, r7, lsr #15   @ do prio bits differ?\r
+    cmpeq   r8, #1\r
+    ldmeqfd sp!, {r4-r11,pc}      @ yes, assume that whole window uses same priority\r
 \r
     orr     r6, r6, r3, lsl #8    @ shadow mode\r
 \r