X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=platform%2Fgizmondo%2Femu.c;h=3115ebd362ef13946acc8cb5ceaac73ee73b6ec9;hb=9c9cda8c39bd2a6b99b8420a3034c454bc713954;hp=fd83eb9a38b8c4fc96927a5c012cb65535b0649c;hpb=697746df021a83dcb556afdb36abc6977780985c;p=picodrive.git diff --git a/platform/gizmondo/emu.c b/platform/gizmondo/emu.c index fd83eb9..3115ebd 100644 --- a/platform/gizmondo/emu.c +++ b/platform/gizmondo/emu.c @@ -26,7 +26,6 @@ // main 300K gfx-related buffer. Used by menu and renderers. unsigned char gfx_buffer[321*240*2*2]; -unsigned char *PicoDraw2FB = gfx_buffer; // temporary buffer for alt renderer ( (8+320)*(8+240+8) ) static short *snd_cbuff = NULL; static int snd_cbuf_samples = 0, snd_all_samples = 0; @@ -230,11 +229,11 @@ static void vidResetMode(void) if (PicoOpt&0x10) { } else if (currentConfig.EmuOpt&0x80) { - PicoDrawSetColorFormat(1); - PicoScanBegin = EmuScanBegin16; + PicoDrawSetOutFormat(PDF_RGB555, 0); + PicoDrawSetCallbacks(EmuScanBegin16, NULL); } else { - PicoDrawSetColorFormat(-1); - PicoScanBegin = EmuScanBegin8; + PicoDrawSetOutFormat(PDF_NONE, 0); + PicoDrawSetCallbacks(EmuScanBegin8, NULL); } if ((PicoOpt&0x10) || !(currentConfig.EmuOpt&0x80)) { // setup pal for 8-bit modes @@ -273,10 +272,8 @@ static void stdbg(const char *fmt, ...) static void updateSound(int len) { - if (PicoOpt&8) len<<=1; - - snd_all_samples += len; - PsndOut += len; + snd_all_samples += len / 2; + PsndOut += len / 2; if (PsndOut - snd_cbuff >= snd_cbuf_samples) { //if (PsndOut - snd_cbuff != snd_cbuf_samples) @@ -294,20 +291,22 @@ static void SkipFrame(void) } /* forced frame to front buffer */ -void pemu_forced_frame(int opts) +void pemu_forced_frame(int no_scale, int do_emu) { int po_old = PicoOpt; int eo_old = currentConfig.EmuOpt; PicoOpt &= ~0x10; - PicoOpt |= opts|POPT_ACC_SPRITES; + PicoOpt |= POPT_ACC_SPRITES; + if (!no_scale) + PicoOpt |= POPT_EN_SOFTSCALE; currentConfig.EmuOpt |= 0x80; if (giz_screen == NULL) giz_screen = fb_lock(1); - PicoDrawSetColorFormat(1); - PicoScanBegin = EmuScanBegin16; + PicoDrawSetOutFormat(PDF_RGB555, 0); + PicoDrawSetCallbacks(EmuScanBegin16, NULL); Pico.m.dirtyPal = 1; PicoFrameDrawOnly();