giz port wip

git-svn-id: file:///home/notaz/opt/svn/PicoDrive@258 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
notaz 2007-09-23 16:42:22 +00:00
parent ea8c405fa7
commit fd34fdd0f4
2 changed files with 21 additions and 8 deletions

View 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

View 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();