X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=psp%2Femu.c;h=feab5f56e5939a84eba20101cfcd4376465ca2c6;hb=ca69c3e5a0ecf407c02dc85c6f3282ebb1efc5a2;hp=616994085afe6129a24e14b42ef9b7da4e456e7c;hpb=662e622b59369f975691a70756f80188d8d27ea0;p=libpicofe.git diff --git a/psp/emu.c b/psp/emu.c index 6169940..feab5f5 100644 --- a/psp/emu.c +++ b/psp/emu.c @@ -466,8 +466,7 @@ static void vidResetMode(void) // slow rend. PicoDrawSetOutFormat(PDF_NONE, 0); - PicoScanBegin = EmuScanSlowBegin; - PicoScanEnd = EmuScanSlowEnd; + PicoDrawSetCallbacks(EmuScanSlowBegin, EmuScanSlowEnd); localPal[0xe0] = 0; localPal[0xf0] = 0x001f; @@ -638,9 +637,8 @@ static void sound_deinit(void) static void writeSound(int len) { int ret; - if (PicoOpt&8) len<<=1; - PsndOut += len; + PsndOut += len / 2; /*if (PsndOut > sndBuffer_endptr) { memcpy32((int *)(void *)sndBuffer, (int *)endptr, (PsndOut - endptr + 1) / 2); PsndOut = &sndBuffer[PsndOut - endptr]; @@ -652,7 +650,7 @@ static void writeSound(int len) PsndOut = sndBuffer; // signal the snd thread - samples_made += len; + samples_made += len / 2; if (samples_made - samples_done > samples_block*2) { // lprintf("signal, %i/%i\n", samples_done, samples_made); ret = sceKernelSignalSema(sound_sem, 1); @@ -668,13 +666,15 @@ static void SkipFrame(void) PicoSkipFrame=0; } -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_ALT_RENDERER; + PicoOpt |= POPT_ACC_SPRITES; + if (!no_scale) + PicoOpt |= POPT_EN_SOFTSCALE; currentConfig.EmuOpt |= 0x80; vidResetMode(); @@ -683,8 +683,7 @@ void pemu_forced_frame(int opts) memset32_uncached((int *)psp_screen + 512*264*2/4, 0, 512*8*2/4); PicoDrawSetOutFormat(PDF_NONE, 0); - PicoScanBegin = EmuScanSlowBegin; - PicoScanEnd = EmuScanSlowEnd; + PicoDrawSetCallbacks(EmuScanSlowBegin, EmuScanSlowEnd); EmuScanPrepare(); PicoFrameDrawOnly(); blit1();