X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=platform%2Fgizmondo%2Femu.c;h=97547242b7f4afc6f50175b0ff1f2c58e143cdbb;hb=0fc0e24180bc89d8a5be33464669de0691720e9d;hp=b9116068e6f0d4e361c245a6903195771e67d3a1;hpb=1cb1584b86a5679b8d32ccfc190f6e76c920810f;p=picodrive.git diff --git a/platform/gizmondo/emu.c b/platform/gizmondo/emu.c index b911606..9754724 100644 --- a/platform/gizmondo/emu.c +++ b/platform/gizmondo/emu.c @@ -143,10 +143,10 @@ void emu_setDefaultConfig(void) } -static int EmuScan16(unsigned int num, void *sdata) +static int EmuScanBegin16(unsigned int num) { if (!(Pico.video.reg[1]&8)) num += 8; - DrawLineDest = (unsigned short *) giz_screen + 321*(num+1); + DrawLineDest = (unsigned short *) giz_screen + 321 * num; if ((currentConfig.EmuOpt&0x4000) && (num&1) == 0) // (Pico.m.frame_count&1)) return 1; // skip next line @@ -154,11 +154,11 @@ static int EmuScan16(unsigned int num, void *sdata) return 0; } -static int EmuScan8(unsigned int num, void *sdata) +static int EmuScanBegin8(unsigned int num) { // draw like the fast renderer if (!(Pico.video.reg[1]&8)) num += 8; - HighCol = gfx_buffer + 328*(num+1); + HighCol = gfx_buffer + 328 * num; return 0; } @@ -253,7 +253,7 @@ static void blit(const char *fps, const char *notice) if (emu_opt & 2) osd_text(OSD_FPS_X, h, fps); } - if ((emu_opt & 0x400) && (PicoMCD & 1)) + if ((emu_opt & 0x400) && (PicoAHW & PAHW_MCD)) cd_leds(); } @@ -280,10 +280,10 @@ static void vidResetMode(void) if (PicoOpt&0x10) { } else if (currentConfig.EmuOpt&0x80) { PicoDrawSetColorFormat(1); - PicoScan = EmuScan16; + PicoScanBegin = EmuScanBegin16; } else { PicoDrawSetColorFormat(-1); - PicoScan = EmuScan8; + PicoScanBegin = EmuScanBegin8; } if ((PicoOpt&0x10) || !(currentConfig.EmuOpt&0x80)) { // setup pal for 8-bit modes @@ -343,21 +343,20 @@ static void SkipFrame(void) } /* forced frame to front buffer */ -void emu_forcedFrame(void) +void emu_forcedFrame(int opts) { int po_old = PicoOpt; int eo_old = currentConfig.EmuOpt; - PicoOpt &= ~0x0010; - PicoOpt |= 0x4080; // soft_scale | acc_sprites + PicoOpt &= ~0x10; + PicoOpt |= opts|POPT_ACC_SPRITES; currentConfig.EmuOpt |= 0x80; if (giz_screen == NULL) giz_screen = Framework2D_LockBuffer(1); PicoDrawSetColorFormat(1); - PicoScan = EmuScan16; - PicoScan((unsigned) -1, NULL); + PicoScanBegin = EmuScanBegin16; Pico.m.dirtyPal = 1; PicoFrameDrawOnly(); @@ -546,7 +545,7 @@ void emu_Loop(void) reset_timing = 1; // prepare CD buffer - if (PicoMCD & 1) PicoCDBufferInit(); + if (PicoAHW & PAHW_MCD) PicoCDBufferInit(); // prepare sound stuff PsndOut = NULL; @@ -716,9 +715,6 @@ void emu_Loop(void) /* be sure correct framebuffer is locked */ giz_screen = Framework2D_LockBuffer((currentConfig.EmuOpt&0x8000) ? 0 : 1); - if (!(PicoOpt&0x10)) - PicoScan((unsigned) -1, NULL); - PicoFrame(); if (giz_screen == NULL) @@ -757,7 +753,7 @@ void emu_Loop(void) } - if (PicoMCD & 1) PicoCDBufferFree(); + if (PicoAHW & PAHW_MCD) PicoCDBufferFree(); if (PsndOut != NULL) { PsndOut = snd_cbuff = NULL;