giz port wip
authornotaz <notasas@gmail.com>
Sun, 23 Sep 2007 16:42:22 +0000 (16:42 +0000)
committernotaz <notasas@gmail.com>
Sun, 23 Sep 2007 16:42:22 +0000 (16:42 +0000)
git-svn-id: file:///home/notaz/opt/svn/PicoDrive@258 be3aeb3a-fb24-0410-a615-afba39da0efa

platform/gizmondo/asm_utils.s
platform/gizmondo/emu.c

index 4676e1e..8f168e9 100644 (file)
@@ -54,15 +54,19 @@ vcloop_40_aligned:
     and     r4, r3, #0xff00
     orr     r3, r3, r4, lsr #8
     mov     r4, r4, lsr #7
-    sub     r4, r4, #1
+    sub     r6, r4, #1
     mov     r5, #320*2
     add     r5, r5, #2
-    mul     r4, r5, r4
+    mul     r4, r5, r6
     sub     r0, r0, r4
     mov     r5, #328
-    mul     r4, r5, r4
+    mul     r4, r5, r6
     sub     r1, r1, r4
 
+ @ FIXME FIXME FIXME
+ ldmfd   sp!, {r4-r9,lr}
+ bx      lr
+
 vcloop_40_unaligned:
     ldr     r12, [r1], #4
     ldr     r7,  [r1], #4
@@ -92,11 +96,11 @@ vcloop_40_unaligned:
     and     r4, lr, r7, lsr #23
     ldrh    r4, [r2, r6]
      orr     r12,r6, r12,lsl #16
-    subs    r3, r3, #1
+    subs    r3, r3, #1<<24
 
     stmia   r0!, {r5,r8,r12}
    strh    r4, [r0]!
-    bne     vcloop_40_unaligned
+    bpl     vcloop_40_unaligned
 
     add     r1, r1, #336             @ skip a line and 1 col
     add     r0, r0, #320*2+2*2
index a3cf057..f0732bb 100644 (file)
@@ -118,7 +118,7 @@ void emu_setDefaultConfig(void)
        currentConfig.PsndRate = 22050;
        currentConfig.PicoRegion = 0; // auto
        currentConfig.PicoAutoRgnOrder = 0x184; // US, EU, JP
-       currentConfig.Frameskip = -1; // auto
+       currentConfig.Frameskip = 0;//-1; // auto
        currentConfig.volume = 50;
        currentConfig.KeyBinds[ 2] = 1<<0; // SACB RLDU
        currentConfig.KeyBinds[ 3] = 1<<1;
@@ -172,6 +172,12 @@ static void osd_text(int x, int y, const char *text)
 short localPal[0x100];
 static void (*vidCpy8to16)(void *dest, void *src, short *pal, int lines) = NULL;
 
+// FIXME: rm
+static void vidCpy8to16_(void *dest, void *src, short *pal, int lines)
+{
+       vidCpy8to16(dest, src, pal, lines);
+}
+
 static void blit(const char *fps, const char *notice)
 {
        int emu_opt = currentConfig.EmuOpt;
@@ -182,7 +188,7 @@ static void blit(const char *fps, const char *notice)
                        Pico.m.dirtyPal = 0;
                        vidConvCpyRGB565(localPal, Pico.cram, 0x40);
                }
-               vidCpy8to16((unsigned short *)giz_screen+321*8, PicoDraw2FB+328*8, localPal, 224);
+               vidCpy8to16_((unsigned short *)giz_screen+321*8, PicoDraw2FB+328*8, localPal, 224);
        } else if (!(emu_opt&0x80)) {
                // 8bit accurate renderer
                if (Pico.m.dirtyPal) {
@@ -204,7 +210,9 @@ static void blit(const char *fps, const char *notice)
                        } */
                }
                // TODO...
-               vidCpy8to16((unsigned short *)giz_screen+321*8, PicoDraw2FB+328*8, localPal, 224);
+               //lprintf("vidCpy8to16 %p %p\n", (unsigned short *)giz_screen+321*8, PicoDraw2FB+328*8);
+               vidCpy8to16_((unsigned short *)giz_screen+321*8, PicoDraw2FB+328*8, localPal, 224);
+               //lprintf("after vidCpy8to16\n");
        }
 
        if (notice || (emu_opt & 2)) {
@@ -463,6 +471,7 @@ void emu_Loop(void)
                        Framework2D_UnlockBuffer();
                        giz_screen = NULL;
                }
+               //lprintf("after unlock\n");
 
                // check time
                tval = GetTickCount();