hint-less mode updated for SVP, state load callback, etc
[picodrive.git] / platform / gizmondo / emu.c
index cf9a13e..152c648 100644 (file)
@@ -523,11 +523,22 @@ static void find_combos(void)
        combo_keys = combo_acts = 0;
        for (act = 0; act < 32; act++)
        {
-               int keyc = 0;
+               int keyc = 0, keyc2 = 0;
                if (act == 16 || act == 17) continue; // player2 flag
-               for (u = 0; u < 32; u++)
+               if (act > 17)
                {
-                       if (currentConfig.KeyBinds[u] & (1 << act)) keyc++;
+                       for (u = 0; u < 32; u++)
+                               if (currentConfig.KeyBinds[u] & (1 << act)) keyc++;
+               }
+               else
+               {
+                       for (u = 0; u < 32; u++)
+                               if ((currentConfig.KeyBinds[u] & 0x30000) == 0 && // pl. 1
+                                       (currentConfig.KeyBinds[u] & (1 << act))) keyc++;
+                       for (u = 0; u < 32; u++)
+                               if ((currentConfig.KeyBinds[u] & 0x30000) == 1 && // pl. 2
+                                       (currentConfig.KeyBinds[u] & (1 << act))) keyc2++;
+                       if (keyc2 > keyc) keyc = keyc2;
                }
                if (keyc > 1)
                {
@@ -593,7 +604,7 @@ void emu_Loop(void)
        {
                int ret, snd_excess_add, stereo;
                if (PsndRate != PsndRate_old || (PicoOpt&0x0b) != (PicoOpt_old&0x0b) || Pico.m.pal != pal_old) {
-                       sound_rerate(Pico.m.frame_count ? 1 : 0);
+                       PsndRerate(Pico.m.frame_count ? 1 : 0);
                }
                stereo=(PicoOpt&8)>>3;
                snd_excess_add = ((PsndRate - PsndLen*target_fps)<<16) / target_fps;