X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=platform%2Fgizmondo%2Femu.c;h=3115ebd362ef13946acc8cb5ceaac73ee73b6ec9;hb=ea38612fad50103e224a3d00492d40b7dcff9e94;hp=1ba4d76b1419f13113c921d7c97595e8cf56c8b8;hpb=45f2f245f51ef0c0d37df3c998595c132bfcaffa;p=picodrive.git diff --git a/platform/gizmondo/emu.c b/platform/gizmondo/emu.c index 1ba4d76..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; @@ -74,15 +73,8 @@ void emu_stateCb(const char *str) void pemu_prep_defconfig(void) { - memset(&defaultConfig, 0, sizeof(defaultConfig)); - defaultConfig.EmuOpt = 0x1d | 0x680; // | confirm_save, cd_leds, 16bit rend - defaultConfig.s_PicoOpt = 0x0f | POPT_EN_MCD_PCM|POPT_EN_MCD_CDDA|POPT_EN_SVP_DRC|POPT_ACC_SPRITES; defaultConfig.s_PsndRate = 22050; - defaultConfig.s_PicoRegion = 0; // auto - defaultConfig.s_PicoAutoRgnOrder = 0x184; // US, EU, JP defaultConfig.s_PicoCDBuffers = 0; - defaultConfig.Frameskip = -1; // auto - defaultConfig.volume = 50; defaultConfig.KeyBinds[ 2] = 1<<0; // SACB RLDU defaultConfig.KeyBinds[ 3] = 1<<1; defaultConfig.KeyBinds[ 0] = 1<<2; @@ -97,7 +89,6 @@ void pemu_prep_defconfig(void) defaultConfig.KeyBinds[12] = 1<<29; // vol up defaultConfig.KeyBinds[11] = 1<<30; // vol down defaultConfig.scaling = 0; - defaultConfig.turbo_rate = 15; } @@ -238,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 @@ -281,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) @@ -302,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();