usbjoy fix
[fceu.git] / drivers / gp2x / menu.c
index e4b3488..6abe009 100644 (file)
@@ -1,7 +1,5 @@
+// menu system for gpfce - FCE Ultra port\r
 // (c) Copyright 2006,2007 notaz, All rights reserved.\r
-// Free for non-commercial use.\r
-\r
-// For commercial use, separate licencing terms must be obtained.\r
 \r
 #include <stdio.h>\r
 #include <string.h>\r
@@ -733,15 +731,14 @@ static void unbind_action(int action)
                        Settings.JoyBinds[u][i] &= ~action;\r
 }\r
 \r
-static int count_bound_keys(int action, int is_joy)\r
+static int count_bound_keys(int action, int joy)\r
 {\r
-       int i, u, keys = 0;\r
+       int i, keys = 0;\r
 \r
-       if (is_joy)\r
+       if (joy)\r
        {\r
-               for (u = 0; u < 4; u++)\r
-                       for (i = 0; i < 32; i++)\r
-                               if (Settings.JoyBinds[u][i] & action) keys++;\r
+               for (i = 0; i < 32; i++)\r
+                       if (Settings.JoyBinds[joy-1][i] & action) keys++;\r
        }\r
        else\r
        {\r
@@ -826,7 +823,7 @@ static void key_config_loop(const bind_action_t *opts, int opt_cnt, int player_i
                {\r
                        for (i = 0; i < 32; i++)\r
                                if (inp & (1 << i)) {\r
-                                       if (count_bound_keys(opts[sel].mask, 1) >= 1) // disallow combos for usbjoy\r
+                                       if (count_bound_keys(opts[sel].mask, joy) >= 1) // disallow combos for usbjoy\r
                                             Settings.JoyBinds[joy-1][i] &= ~opts[sel].mask;\r
                                        else Settings.JoyBinds[joy-1][i] ^=  opts[sel].mask;\r
                                        if (player_idx >= 0) {\r
@@ -1386,10 +1383,17 @@ static void menu_prepare_bg(void)
        if (fceugi)\r
        {\r
                /* raw emu frame should now be at gp2x_screen */\r
-               soft_scale((char *)gp2x_screen + 32, gp2x_palette16, srendline, erendline-srendline);\r
-               if (srendline)\r
-                       memset32((int *)((char *)gp2x_screen + 32), 0, srendline*320*2/4);\r
-               memcpy(menu_bg, gp2x_screen + 32, 320*240*2);\r
+               if (Settings.scaling != 0)\r
+               {\r
+                       soft_scale((char *)gp2x_screen + 32, gp2x_palette16, srendline, erendline-srendline);\r
+                       if (srendline)\r
+                               memset32((int *)((char *)gp2x_screen + 32), 0, srendline*320*2/4);\r
+                       memcpy(menu_bg, gp2x_screen + 32, 320*240*2);\r
+               }\r
+               else\r
+               {\r
+                       convert2RGB555(menu_bg, gp2x_screen, gp2x_palette16, 320*240);\r
+               }\r
        }\r
        else\r
        {\r