some readme and general cleanups
[picodrive.git] / platform / pandora / plat.c
index 72c63aa..396e11f 100644 (file)
@@ -73,23 +73,29 @@ static struct in_default_bind in_evdev_defbinds[] =
        { KEY_S,        IN_BINDTYPE_PLAYER12, GBTN_B },\r
        { KEY_D,        IN_BINDTYPE_PLAYER12, GBTN_C },\r
        { KEY_ENTER,    IN_BINDTYPE_PLAYER12, GBTN_START },\r
-       { KEY_BACKSLASH, IN_BINDTYPE_EMU, PEVB_MENU },\r
+       { KEY_F,        IN_BINDTYPE_EMU, PEVB_FF },\r
+       { KEY_BACKSPACE,IN_BINDTYPE_EMU, PEVB_FF },\r
+       { KEY_BACKSLASH,IN_BINDTYPE_EMU, PEVB_MENU },\r
        { KEY_SPACE,    IN_BINDTYPE_EMU, PEVB_MENU },\r
-       /* Pandora */\r
+       { KEY_LEFTCTRL, IN_BINDTYPE_EMU, PEVB_MENU },\r
        { KEY_HOME,     IN_BINDTYPE_PLAYER12, GBTN_A },\r
        { KEY_PAGEDOWN, IN_BINDTYPE_PLAYER12, GBTN_B },\r
        { KEY_END,      IN_BINDTYPE_PLAYER12, GBTN_C },\r
        { KEY_LEFTALT,  IN_BINDTYPE_PLAYER12, GBTN_START },\r
-       { KEY_RIGHTSHIFT,IN_BINDTYPE_EMU, PEVB_STATE_SAVE },\r
-       { KEY_RIGHTCTRL, IN_BINDTYPE_EMU, PEVB_STATE_LOAD },\r
-       { KEY_LEFTCTRL,  IN_BINDTYPE_EMU, PEVB_MENU },\r
+       { KEY_1,        IN_BINDTYPE_EMU, PEVB_STATE_SAVE },\r
+       { KEY_2,        IN_BINDTYPE_EMU, PEVB_STATE_LOAD },\r
+       { KEY_3,        IN_BINDTYPE_EMU, PEVB_SSLOT_PREV },\r
+       { KEY_4,        IN_BINDTYPE_EMU, PEVB_SSLOT_NEXT },\r
+       { KEY_5,        IN_BINDTYPE_EMU, PEVB_PICO_PPREV },\r
+       { KEY_6,        IN_BINDTYPE_EMU, PEVB_PICO_PNEXT },\r
+       { KEY_7,        IN_BINDTYPE_EMU, PEVB_PICO_SWINP },\r
        { 0, 0, 0 }\r
 };\r
 \r
 void pemu_prep_defconfig(void)\r
 {\r
        defaultConfig.EmuOpt |= EOPT_VSYNC|EOPT_16BPP;\r
-       defaultConfig.s_PicoOpt |= POPT_EN_MCD_GFX|POPT_EN_MCD_PSYNC;\r
+       defaultConfig.s_PicoOpt |= POPT_EN_MCD_GFX;\r
        defaultConfig.scaling = SCALE_2x2_3x2;\r
 }\r
 \r
@@ -104,10 +110,13 @@ static void osd_text(int x, int y, const char *text)
        int i, h;\r
 \r
        len++;\r
+       if (x + len > g_screen_width)\r
+               len = g_screen_width - x;\r
+\r
        for (h = 0; h < 8; h++) {\r
                unsigned short *p;\r
                p = (unsigned short *)g_screen_ptr + x + g_screen_width*(y + h);\r
-               for (i = len; i; i--, p++)\r
+               for (i = len; i > 0; i--, p++)\r
                        *p = (*p>>2) & 0x39e7;\r
        }\r
        emu_text_out16(x, y, text);\r
@@ -300,9 +309,6 @@ void emu_video_mode_change(int start_line, int line_count, int is_32cols)
        if (doing_bg_frame)\r
                return;\r
 \r
-       PicoDrawSetOutFormat(PDF_RGB555, 1);\r
-       PicoDrawSetOutBuf(g_screen_ptr, g_screen_width * 2);\r
-\r
        if (is_32cols) {\r
                fb_w = 256;\r
                fb_left = fb_right = 32;\r
@@ -351,8 +357,10 @@ void emu_video_mode_change(int start_line, int line_count, int is_32cols)
 \r
        pnd_setup_layer(1, g_layer_x, g_layer_y, g_layer_w, g_layer_h);\r
        vout_fbdev_clear(layer_fb);\r
-       vout_fbdev_resize(layer_fb, fb_w, fb_h, 16, fb_left, fb_right, fb_top, fb_bottom, 3);\r
+       vout_fbdev_resize(layer_fb, fb_w, fb_h, 16, fb_left, fb_right, fb_top, fb_bottom, 4);\r
        plat_video_flip();\r
+\r
+       PicoDrawSetOutFormat(PDF_RGB555, 0);\r
 }\r
 \r
 void plat_video_loop_prepare(void)\r
@@ -448,7 +456,7 @@ void plat_init(void)
        g_menuscreen_ptr = vout_fbdev_flip(main_fb);\r
 \r
        w = 320; h = 240;\r
-       layer_fb = vout_fbdev_init(layer_fb_name, &w, &h, 16, 3);\r
+       layer_fb = vout_fbdev_init(layer_fb_name, &w, &h, 16, 4);\r
        if (layer_fb == NULL) {\r
                fprintf(stderr, "couldn't init fb: %s\n", layer_fb_name);\r
                goto fail0;\r