\r
extern int crashed_940;\r
\r
-static short sndBuffer[2*44100/50];\r
+static short __attribute__((aligned(4))) sndBuffer[2*44100/50];\r
static struct timeval noticeMsgTime = { 0, 0 }; // when started showing\r
static int osd_fps_x;\r
static int combo_keys = 0, combo_acts = 0; // keys and actions which need button combos\r
combo_keys = combo_acts = 0;\r
for (act = 0; act < 32; act++)\r
{\r
- int keyc = 0;\r
- if (act == 16) continue; // player2 flag\r
- for (u = 0; u < 32; u++)\r
+ int keyc = 0, keyc2 = 0;\r
+ if (act == 16 || act == 17) continue; // player2 flag\r
+ if (act > 17)\r
{\r
- if (currentConfig.KeyBinds[u] & (1 << act)) keyc++;\r
+ for (u = 0; u < 32; u++)\r
+ if (currentConfig.KeyBinds[u] & (1 << act)) keyc++;\r
+ }\r
+ else\r
+ {\r
+ for (u = 0; u < 32; u++)\r
+ if ((currentConfig.KeyBinds[u] & 0x30000) == 0 && // pl. 1\r
+ (currentConfig.KeyBinds[u] & (1 << act))) keyc++;\r
+ for (u = 0; u < 32; u++)\r
+ if ((currentConfig.KeyBinds[u] & 0x30000) == 1 && // pl. 2\r
+ (currentConfig.KeyBinds[u] & (1 << act))) keyc2++;\r
+ if (keyc2 > keyc) keyc = keyc2;\r
}\r
if (keyc > 1)\r
{\r
}\r
}\r
}\r
+\r
// printf("combo keys/acts: %08x %08x\n", combo_keys, combo_acts);\r
}\r
\r
\r
static void cd_leds(void)\r
{\r
- // mmu problems?\r
// static\r
int old_reg;\r
-// if (!((Pico_mcd->s68k_regs[0] ^ old_reg) & 3)) return; // no change\r
+// if (!((Pico_mcd->s68k_regs[0] ^ old_reg) & 3)) return; // no change // mmu hack problems?\r
old_reg = Pico_mcd->s68k_regs[0];\r
\r
if ((PicoOpt&0x10)||!(currentConfig.EmuOpt&0x80)) {\r
unsigned int col_r = (old_reg & 1) ? 0xc000c000 : 0;\r
*p++ = col_g; *p++ = col_g; p+=2; *p++ = col_r; *p++ = col_r; p += 320/2 - 12/2;\r
*p++ = col_g; *p++ = col_g; p+=2; *p++ = col_r; *p++ = col_r; p += 320/2 - 12/2;\r
- *p++ = col_g; *p++ = col_g; p+=2; *p++ = col_r; *p++ = col_r; p += 320/2 - 12/2;\r
+ *p++ = col_g; *p++ = col_g; p+=2; *p++ = col_r; *p++ = col_r;\r
}\r
}\r
\r
void emu_Loop(void)\r
{\r
static int gp2x_old_clock = 200;\r
- static int PsndRate_old = 0, PicoOpt_old = 0, EmuOpt_old = 0, PsndLen_real = 0, pal_old = 0;\r
+ static int PsndRate_old = 0, PicoOpt_old = 0, EmuOpt_old = 0, pal_old = 0;\r
char fpsbuff[24]; // fps count c string\r
struct timeval tval; // timing\r
int thissec = 0, frames_done = 0, frames_shown = 0, oldmodes = 0;\r
Reset940(1, 2);\r
Pause940(1);\r
}\r
- sound_rerate(Pico.m.frame_count ? 1 : 0);\r
+ PsndRerate(Pico.m.frame_count ? 1 : 0);\r
}\r
snd_excess_add = ((PsndRate - PsndLen*target_fps)<<16) / target_fps;\r
printf("starting audio: %i len: %i (ex: %04x) stereo: %i, pal: %i\n",\r
memset(sndBuffer, 0, sizeof(sndBuffer));\r
PsndOut = sndBuffer;\r
PsndRate_old = PsndRate;\r
- PsndLen_real = PsndLen;\r
PicoOpt_old = PicoOpt;\r
pal_old = Pico.m.pal;\r
} else {\r