X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=psp%2Femu.c;h=6ac086dec2a6531dcc91a29cf132559379f25a31;hb=16e89bed918ec39b1e43956b903f7986af86a6b2;hp=e72ea7dd7aafc27386684da7e78b0653a7448388;hpb=c93fb19e8fa757c4eab44f373b697c8158d90c42;p=libpicofe.git diff --git a/psp/emu.c b/psp/emu.c index e72ea7d..6ac086d 100644 --- a/psp/emu.c +++ b/psp/emu.c @@ -145,9 +145,15 @@ void emu_setDefaultConfig(void) currentConfig.KeyBinds[12] = 1<<26; // switch rnd currentConfig.KeyBinds[ 8] = 1<<27; // save state currentConfig.KeyBinds[ 9] = 1<<28; // load state + currentConfig.KeyBinds[28] = 1<<0; // num "buttons" + currentConfig.KeyBinds[30] = 1<<1; + currentConfig.KeyBinds[31] = 1<<2; + currentConfig.KeyBinds[29] = 1<<3; currentConfig.PicoCDBuffers = 0; - currentConfig.scaling = 1; // bilinear filtering for psp - currentConfig.scale = currentConfig.hscale32 = currentConfig.hscale40 = 1.0; + currentConfig.scaling = 1; // bilinear filtering for psp + currentConfig.scale = 1.20; // fullscreen + currentConfig.hscale40 = 1.25; + currentConfig.hscale32 = 1.56; } @@ -353,15 +359,13 @@ static void blitscreen_clut(void) static void cd_leds(void) { - static int old_reg = 0; - unsigned int col_g, col_r, *p; + unsigned int reg, col_g, col_r, *p; - if (!((Pico_mcd->s68k_regs[0] ^ old_reg) & 3)) return; // no change - old_reg = Pico_mcd->s68k_regs[0]; + reg = Pico_mcd->s68k_regs[0]; p = (unsigned int *)((short *)psp_screen + 512*2+4+2); - col_g = (old_reg & 2) ? 0x06000600 : 0; - col_r = (old_reg & 1) ? 0x00180018 : 0; + col_g = (reg & 2) ? 0x06000600 : 0; + col_r = (reg & 1) ? 0x00180018 : 0; *p++ = col_g; *p++ = col_g; p+=2; *p++ = col_r; *p++ = col_r; p += 512/2 - 12/2; *p++ = col_g; *p++ = col_g; p+=2; *p++ = col_r; *p++ = col_r; p += 512/2 - 12/2; *p++ = col_g; *p++ = col_g; p+=2; *p++ = col_r; *p++ = col_r; @@ -798,23 +802,22 @@ static void find_combos(void) if (act == 16 || act == 17) continue; // player2 flag if (act > 17) { - for (u = 0; u < 32; u++) + for (u = 0; u < 28; u++) // 28 because nub can't produce combos if (currentConfig.KeyBinds[u] & (1 << act)) keyc++; } else { - for (u = 0; u < 32; u++) + for (u = 0; u < 28; u++) if ((currentConfig.KeyBinds[u] & 0x30000) == 0 && // pl. 1 (currentConfig.KeyBinds[u] & (1 << act))) keyc++; - for (u = 0; u < 32; u++) + for (u = 0; u < 28; u++) if ((currentConfig.KeyBinds[u] & 0x30000) == 1 && // pl. 2 (currentConfig.KeyBinds[u] & (1 << act))) keyc2++; - if (keyc2 > keyc) keyc = keyc2; } - if (keyc > 1) + if (keyc > 1 || keyc2 > 1) { // loop again and mark those keys and actions as combo - for (u = 0; u < 32; u++) + for (u = 0; u < 28; u++) { if (currentConfig.KeyBinds[u] & (1 << act)) { combo_keys |= 1 << u;