X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=psp%2Femu.c;h=feab5f56e5939a84eba20101cfcd4376465ca2c6;hb=e99d80480196f551f7e6c06deae3750de19b4c0e;hp=5eca7896ab4e1b4b32f9f11eb4d5554bf373c419;hpb=86c1049d1fba4c8752fd08c6bc848c3318b91eac;p=libpicofe.git diff --git a/psp/emu.c b/psp/emu.c index 5eca789..feab5f5 100644 --- a/psp/emu.c +++ b/psp/emu.c @@ -89,14 +89,8 @@ void emu_Deinit(void) void pemu_prep_defconfig(void) { - memset(&defaultConfig, 0, sizeof(defaultConfig)); - defaultConfig.EmuOpt = 0x1d | 0x680; // | <- confirm_save, cd_leds, acc rend - defaultConfig.s_PicoOpt = 0x0f | POPT_EN_MCD_PCM|POPT_EN_MCD_CDDA|POPT_EN_MCD_GFX|POPT_ACC_SPRITES; defaultConfig.s_PsndRate = 22050; - defaultConfig.s_PicoRegion = 0; // auto - defaultConfig.s_PicoAutoRgnOrder = 0x184; // US, EU, JP defaultConfig.s_PicoCDBuffers = 64; - defaultConfig.Frameskip = -1; // auto defaultConfig.CPUclock = 333; defaultConfig.KeyBinds[ 4] = 1<<0; // SACB RLDU defaultConfig.KeyBinds[ 6] = 1<<1; @@ -117,7 +111,6 @@ void pemu_prep_defconfig(void) defaultConfig.scale = 1.20; // fullscreen defaultConfig.hscale40 = 1.25; defaultConfig.hscale32 = 1.56; - defaultConfig.turbo_rate = 15; } @@ -472,9 +465,8 @@ static void vidResetMode(void) sceGuTexImage(0,512,512,512,(char *)VRAM_STUFF + 16); // slow rend. - PicoDrawSetColorFormat(-1); - PicoScanBegin = EmuScanSlowBegin; - PicoScanEnd = EmuScanSlowEnd; + PicoDrawSetOutFormat(PDF_NONE, 0); + PicoDrawSetCallbacks(EmuScanSlowBegin, EmuScanSlowEnd); localPal[0xe0] = 0; localPal[0xf0] = 0x001f; @@ -645,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]; @@ -659,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); @@ -675,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(); @@ -689,9 +682,8 @@ void pemu_forced_frame(int opts) memset32((int *)VRAM_CACHED_STUFF + 512*232/4, 0xe0e0e0e0, 512*8/4); memset32_uncached((int *)psp_screen + 512*264*2/4, 0, 512*8*2/4); - PicoDrawSetColorFormat(-1); - PicoScanBegin = EmuScanSlowBegin; - PicoScanEnd = EmuScanSlowEnd; + PicoDrawSetOutFormat(PDF_NONE, 0); + PicoDrawSetCallbacks(EmuScanSlowBegin, EmuScanSlowEnd); EmuScanPrepare(); PicoFrameDrawOnly(); blit1();