X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=platform%2Fpandora%2Fplat.c;h=a2e70eb86a2a4da5512116cad99fb8485df5c8a0;hb=93f9619ed819dee07948416c98ca2f1c70a22666;hp=f7d68792b2a55512db173bc66ef1eeca07833c4e;hpb=55d7dcb20976811ae79f5fa2106e647c8879bfc6;p=picodrive.git diff --git a/platform/pandora/plat.c b/platform/pandora/plat.c index f7d6879..a2e70eb 100644 --- a/platform/pandora/plat.c +++ b/platform/pandora/plat.c @@ -74,6 +74,7 @@ static struct in_default_bind in_evdev_defbinds[] = { KEY_S, IN_BINDTYPE_PLAYER12, GBTN_B }, { KEY_D, IN_BINDTYPE_PLAYER12, GBTN_C }, { KEY_ENTER, IN_BINDTYPE_PLAYER12, GBTN_START }, + { KEY_R, IN_BINDTYPE_EMU, PEVB_RESET }, { KEY_F, IN_BINDTYPE_EMU, PEVB_FF }, { KEY_BACKSPACE,IN_BINDTYPE_EMU, PEVB_FF }, { KEY_BACKSLASH,IN_BINDTYPE_EMU, PEVB_MENU }, @@ -93,6 +94,36 @@ static struct in_default_bind in_evdev_defbinds[] = { 0, 0, 0 } }; +static const struct menu_keymap key_pbtn_map[] = +{ + { KEY_UP, PBTN_UP }, + { KEY_DOWN, PBTN_DOWN }, + { KEY_LEFT, PBTN_LEFT }, + { KEY_RIGHT, PBTN_RIGHT }, + /* Pandora */ + { KEY_END, PBTN_MOK }, + { KEY_PAGEDOWN, PBTN_MBACK }, + { KEY_HOME, PBTN_MA2 }, + { KEY_PAGEUP, PBTN_MA3 }, + { KEY_LEFTCTRL, PBTN_MENU }, + { KEY_RIGHTSHIFT, PBTN_L }, + { KEY_RIGHTCTRL, PBTN_R }, + /* "normal" keyboards */ + { KEY_ENTER, PBTN_MOK }, + { KEY_ESC, PBTN_MBACK }, + { KEY_SEMICOLON, PBTN_MA2 }, + { KEY_APOSTROPHE, PBTN_MA3 }, + { KEY_BACKSLASH, PBTN_MENU }, + { KEY_LEFTBRACE, PBTN_L }, + { KEY_RIGHTBRACE, PBTN_R }, +}; + +static const struct in_pdata pandora_evdev_pdata = { + .defbinds = in_evdev_defbinds, + .key_map = key_pbtn_map, + .kmap_size = sizeof(key_pbtn_map) / sizeof(key_pbtn_map[0]), +}; + void pemu_prep_defconfig(void) { defaultConfig.EmuOpt |= EOPT_VSYNC|EOPT_16BPP; @@ -105,24 +136,6 @@ void pemu_validate_config(void) currentConfig.CPUclock = plat_target_cpu_clock_get(); } -static void osd_text(int x, int y, const char *text) -{ - int len = strlen(text)*8; - int i, h; - - len++; - if (x + len > g_screen_width) - len = g_screen_width - x; - - for (h = 0; h < 8; h++) { - unsigned short *p; - p = (unsigned short *)g_screen_ptr + x + g_screen_width*(y + h); - for (i = len; i > 0; i--, p++) - *p = (*p>>2) & 0x39e7; - } - emu_text_out16(x, y, text); -} - static void draw_cd_leds(void) { int old_reg; @@ -152,10 +165,10 @@ static void draw_cd_leds(void) void pemu_finalize_frame(const char *fps, const char *notice) { if (notice && notice[0]) - osd_text(2, g_osd_y, notice); + emu_osd_text16(2, g_osd_y, notice); if (fps && fps[0] && (currentConfig.EmuOpt & EOPT_SHOW_FPS)) - osd_text(g_osd_fps_x, g_osd_y, fps); - if ((PicoAHW & PAHW_MCD) && (currentConfig.EmuOpt & EOPT_EN_CD_LEDS)) + emu_osd_text16(g_osd_fps_x, g_osd_y, fps); + if ((PicoIn.AHW & PAHW_MCD) && (currentConfig.EmuOpt & EOPT_EN_CD_LEDS)) draw_cd_leds(); } @@ -429,6 +442,11 @@ void plat_wait_till_us(unsigned int us_to) */ } +void *plat_mem_get_for_drc(size_t size) +{ + return NULL; +} + void plat_early_init(void) { } @@ -500,7 +518,7 @@ void plat_init(void) // default ROM path strcpy(rom_fname_loaded, "/media"); - in_evdev_init(in_evdev_defbinds); + in_evdev_init(&pandora_evdev_pdata); in_probe(); plat_target_setup_input();