From 26d8df1591113597e9e3dd3535137ac9845e18ee Mon Sep 17 00:00:00 2001 From: CatalystG Date: Sun, 21 Apr 2013 09:54:58 -0400 Subject: [PATCH 1/4] (BlackBerry) Swap A and B default mapping on Wiimote. --- blackberry-qnx/playbook/qnx_input.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blackberry-qnx/playbook/qnx_input.c b/blackberry-qnx/playbook/qnx_input.c index 7a08b212ce..a70794d020 100644 --- a/blackberry-qnx/playbook/qnx_input.c +++ b/blackberry-qnx/playbook/qnx_input.c @@ -616,7 +616,7 @@ static void qnx_input_set_keybinds(void *data, unsigned device, unsigned port, strlcpy(g_settings.input.device_names[port], "Wiimote", sizeof(g_settings.input.device_names[port])); g_settings.input.device[port] = device; - g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_B].def_joykey = SCREEN_Y_GAME_BUTTON; + g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_B].def_joykey = SCREEN_X_GAME_BUTTON; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_Y].def_joykey = SCREEN_B_GAME_BUTTON; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_SELECT].def_joykey = SCREEN_MENU1_GAME_BUTTON; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_START].def_joykey = SCREEN_MENU2_GAME_BUTTON; @@ -624,7 +624,7 @@ static void qnx_input_set_keybinds(void *data, unsigned device, unsigned port, g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].def_joykey = SCREEN_DPAD_DOWN_GAME_BUTTON; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].def_joykey = SCREEN_DPAD_LEFT_GAME_BUTTON; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].def_joykey = SCREEN_DPAD_RIGHT_GAME_BUTTON; - g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_A].def_joykey = SCREEN_X_GAME_BUTTON; + g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_A].def_joykey = SCREEN_Y_GAME_BUTTON; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_X].def_joykey = SCREEN_A_GAME_BUTTON; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L].def_joykey = SCREEN_L1_GAME_BUTTON; g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R].def_joykey = SCREEN_R1_GAME_BUTTON; From d7a9bc5dd4f627c8ec34e25ec67caa3227fe9d45 Mon Sep 17 00:00:00 2001 From: CatalystG Date: Sun, 5 May 2013 16:07:18 -0400 Subject: [PATCH 2/4] (BlackBerry) Add support for BlackBerry Q10 as it needs to be portrait --- blackberry-qnx/bb10/src/RetroArch-Cascades.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/blackberry-qnx/bb10/src/RetroArch-Cascades.cpp b/blackberry-qnx/bb10/src/RetroArch-Cascades.cpp index 86f612013c..0acb15b0e1 100644 --- a/blackberry-qnx/bb10/src/RetroArch-Cascades.cpp +++ b/blackberry-qnx/bb10/src/RetroArch-Cascades.cpp @@ -235,7 +235,8 @@ void RetroArch::startEmulator() { state = RETROARCH_START_REQUESTED; - if (OrientationSupport::instance()->orientation() == UIOrientation::Portrait) + if (OrientationSupport::instance()->orientation() == UIOrientation::Portrait && + OrientationSupport::instance()->supportedDisplayOrientation() != SupportedDisplayOrientation::DeviceNorth) { OrientationSupport::instance()->setSupportedDisplayOrientation(SupportedDisplayOrientation::DisplayLandscape); } From 0c78586bc5af4c9e3f825e7e259fa8543b4e5379 Mon Sep 17 00:00:00 2001 From: CatalystG Date: Mon, 6 May 2013 22:13:45 -0400 Subject: [PATCH 3/4] (BlackBerry) Fix core info after library name changes. --- blackberry-qnx/bb10/assets/coreInfo.json | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/blackberry-qnx/bb10/assets/coreInfo.json b/blackberry-qnx/bb10/assets/coreInfo.json index 2da92d8b12..627e9e5c70 100644 --- a/blackberry-qnx/bb10/assets/coreInfo.json +++ b/blackberry-qnx/bb10/assets/coreInfo.json @@ -1,5 +1,5 @@ { - "snes9x_next_libretro.so":{ + "snes9x_next_libretro_qnx.so":{ "display_name":"SNES / Super Famicom", "supported_extensions":"*.smc|*.fig|*.sfc|*.gd3|*.gd7|*.dx2|*.bsx|*.swc", "corename":"SNES9x Next", @@ -7,7 +7,7 @@ "systemname":"Super Nintendo Entertainment System", "default_overlay":"app/native/overlays/snes-landscape.cfg" }, - "genesis_plus_gx_libretro.so":{ + "genesis_plus_gx_libretro_qnx.so":{ "display_name":"Sega (MS/GG/MD/CD)", "supported_extensions":"*.md|*.smd|*.gen|*.sms|*.gg|*.sg|*.bin|*.cue|*.ios", "corename":"Genesis Plus GX", @@ -15,7 +15,7 @@ "systemname":"Sega (Various)", "default_overlay":"app/native/overlays/genesis6-landscape.cfg" }, - "vba_next_libretro.so":{ + "vba_next_libretro_qnx.so":{ "display_name":"Game Boy Advance", "supported_extensions":"*.gba", "corename":"VBA Next", @@ -23,7 +23,7 @@ "systemname":"Game Boy Advance", "default_overlay":"app/native/overlays/box-gba.cfg" }, - "pcsx_rearmed_libretro.so":{ + "pcsx_rearmed_libretro_qnx.so":{ "display_name":"PlayStation1", "supported_extensions":"*.bin|*.cue|*.img|*.mdf|*.pbp|*.cbn|*.toc", "corename":"PCSX ReARMed", @@ -31,12 +31,20 @@ "systemname":"PlayStation", "default_overlay":"app/native/overlays/psx-landscape.cfg" }, - "fb_alpha_libretro.so":{ + "fb_alpha_libretro_qnx.so":{ "display_name":"Arcade", "supported_extensions":"*.zip|*.ZIP", "corename":"Final Burn Alpha", "manufacturer":"Various", "systemname":"Arcade (various)", "default_overlay":"app/native/overlays/snes-landscape.cfg" + }, + "gambatte_libretro_qnx.so":{ + "display_name":"Game Boy / Game Boy Color", + "supported_extensions":"*.gb|*.gbc|*.dmg", + "corename":"gambatte", + "manufacturer":"Nintendo", + "systemname":"Game Boy Color", + "default_overlay":"app/native/overlays/gameboy-landscape.cfg" } } From 89e672d4be70c06ffde7d90fb93989579dfeed16 Mon Sep 17 00:00:00 2001 From: CatalystG Date: Tue, 7 May 2013 18:52:02 -0400 Subject: [PATCH 4/4] (BlackBerry) Add HW Keypad support for Q10, hide default overlay. --- blackberry-qnx/bb10/RetroArch-Cascades.pro | 2 +- .../bb10/src/RetroArch-Cascades.cpp | 8 +++++- blackberry-qnx/playbook/qnx_input.c | 26 ++++++++++++++++++- driver.h | 1 + 4 files changed, 34 insertions(+), 3 deletions(-) diff --git a/blackberry-qnx/bb10/RetroArch-Cascades.pro b/blackberry-qnx/bb10/RetroArch-Cascades.pro index fd58b55ea3..752c8b73c7 100644 --- a/blackberry-qnx/bb10/RetroArch-Cascades.pro +++ b/blackberry-qnx/bb10/RetroArch-Cascades.pro @@ -3,7 +3,7 @@ APP_NAME = RetroArch-Cascades CONFIG += qt warn_on cascades10 LIBS += -lscreen -lbps -lOpenAL -lpng -lEGL -lGLESv2 -LIBS += -lbbcascadespickers -lbbdata +LIBS += -lbbcascadespickers -lbbdata -lbbdevice DEFINES += HAVE_RGUI HAVE_NEON \ SINC_LOWER_QUALITY HAVE_RARCH_MAIN_IMPLEMENTATION \ diff --git a/blackberry-qnx/bb10/src/RetroArch-Cascades.cpp b/blackberry-qnx/bb10/src/RetroArch-Cascades.cpp index 0acb15b0e1..c2529ed563 100644 --- a/blackberry-qnx/bb10/src/RetroArch-Cascades.cpp +++ b/blackberry-qnx/bb10/src/RetroArch-Cascades.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include #include @@ -40,6 +41,7 @@ using namespace bb::cascades; using namespace bb::data; +using namespace bb::device; //Use after calling findCores #define GET_CORE_INFO(x, y) coreInfo[coreList[x]].toMap()[y].toString() @@ -306,6 +308,10 @@ void RetroArch::initRASettings() { strlcpy(g_settings.libretro,(char *)core.toAscii().constData(), sizeof(g_settings.libretro)); strlcpy(g_extern.fullpath, (char *)rom.toAscii().constData(), sizeof(g_extern.fullpath)); - strlcpy(g_settings.input.overlay, GET_CORE_INFO(coreSelectedIndex, "default_overlay").toAscii().constData(), sizeof(g_settings.input.overlay)); + + HardwareInfo *hwInfo = new HardwareInfo(); + + if(!hwInfo->isPhysicalKeyboardDevice()) + strlcpy(g_settings.input.overlay, GET_CORE_INFO(coreSelectedIndex, "default_overlay").toAscii().constData(), sizeof(g_settings.input.overlay)); } diff --git a/blackberry-qnx/playbook/qnx_input.c b/blackberry-qnx/playbook/qnx_input.c index a70794d020..bc7142176a 100644 --- a/blackberry-qnx/playbook/qnx_input.c +++ b/blackberry-qnx/playbook/qnx_input.c @@ -218,6 +218,8 @@ static void qnx_input_autodetect_gamepad(input_device_t* controller) device = DEVICE_WIIMOTE; else if (strstr(controller->id, "0A5C-8502")) device = DEVICE_KEYBOARD; + else if (strstr(controller->id, "qwerty:bb35")) + device = DEVICE_KEYPAD; else if (controller->id) device = DEVICE_UNKNOWN; else @@ -502,7 +504,7 @@ static int16_t qnx_input_state(void *data, const struct retro_keybind **retro_ke switch (device) { case RETRO_DEVICE_JOYPAD: - if (g_settings.input.device[port] == DEVICE_KEYBOARD) + if (g_settings.input.device[port] == DEVICE_KEYBOARD || g_settings.input.device[port] == DEVICE_KEYPAD) return ((devices[port].buttons & (1 << id)) && (port < pads_connected)); else return ((devices[port].buttons & retro_keybinds[port][id].joykey) && (port < pads_connected)); @@ -634,6 +636,28 @@ static void qnx_input_set_keybinds(void *data, unsigned device, unsigned port, g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R3].def_joykey = SCREEN_R3_GAME_BUTTON; g_settings.input.dpad_emulation[port] = ANALOG_DPAD_NONE; break; + case DEVICE_KEYPAD: + strlcpy(g_settings.input.device_names[port], "BlackBerry Q10 Keypad", + sizeof(g_settings.input.device_names[port])); + g_settings.input.device[port] = device; + g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_B].def_joykey = KEYCODE_M & 0xFF; + g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_Y].def_joykey = KEYCODE_J & 0xFF; + g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_SELECT].def_joykey = KEYCODE_RIGHT_SHIFT & 0xFF; + g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_START].def_joykey = KEYCODE_RETURN & 0xFF; + g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].def_joykey = KEYCODE_W & 0xFF; + g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].def_joykey = KEYCODE_S & 0xFF; + g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].def_joykey = KEYCODE_A & 0xFF; + g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].def_joykey = KEYCODE_D & 0xFF; + g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_A].def_joykey = KEYCODE_N & 0xFF; + g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_X].def_joykey = KEYCODE_K & 0xFF; + g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L].def_joykey = KEYCODE_U & 0xFF; + g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R].def_joykey = KEYCODE_I & 0xFF; + g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L2].def_joykey = 0; + g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R2].def_joykey = 0; + g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L3].def_joykey = 0; + g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R3].def_joykey = 0; + g_settings.input.dpad_emulation[port] = ANALOG_DPAD_NONE; + break; #endif case DEVICE_KEYBOARD: strlcpy(g_settings.input.device_names[port], "BlackBerry BT Keyboard", diff --git a/driver.h b/driver.h index b29b1dd5f9..be4355bf04 100644 --- a/driver.h +++ b/driver.h @@ -276,6 +276,7 @@ enum input_devices DEVICE_NONE, DEVICE_WIIMOTE, DEVICE_KEYBOARD, + DEVICE_KEYPAD, DEVICE_UNKNOWN, #endif DEVICE_LAST