Xbox One Bluetooth Controller "start" and "select" buttons won't map in Daphne
-
Just wondering if anyone else has had this issue. I cannot map the select and start buttons on my Xbox one Bluetooth controller to work for the coin and start on Daphne. I have used jstest to get the button numbers and adding 1 for the dapinput.ini file. Any buttons that I map to coin and start just pauses everything (i.e., the preview video of Dragon’s Lair). I haven’t gotten far enough to see if the joystick and other buttons work, since I cannot start the game.
A few points:- The controllers work with every other emulator and I have had no issues setting it up.
- I am using model 1708 Xbox one Bluetooth controller, latest firmware, xpadneo driver, ertm disabled, etc.
- I can successfully map the select and start buttons with every other emulator (mame, NES, etc.).
- I can successfully map Daphne “coin” and “start” to other controllers, like my wired USB controller and even my Xbox 360 controllers.
- The dapinput.ini is not being changed after running the emulator.
Things I have tried with no success:
- Updating RetroPie to 4.8 and all packages.
- Mapping other buttons to “coin” and “start”.
- Any button I map to “quit” works. However, mapping that same button to “coin” or “start” does not work—it just pauses the video.
- Reconfiguring the controller in EmulationStation, in hopes of forcing Daphne to remap somehow.
- Removing all other controllers from my system to avoid potential confusion.
- Uninstalling/reinstalling Daphne from source and/or binary.
- Starting from scratch and creating a test image with no other emulators or controllers.
It seems the “coin” and “start” in Daphne do not like anything from the Xbox one controller. Did I find a bug, or am I missing something? Thank you all in advance for your help.
-
Post the
dapinput.ini
file, where the mapping is saved. -
# Daphne cutom keyboard and joystick mapping # # Each input is mapped to 2 keyboard keys and one joystick button. # A joystick's first analog stick is also automatically mapped. # # The first two numbers are SDL keyboard codes (or 0 for "none") # Find keyboard codes here: # http://www.daphne-emu.com/mediawiki/index.php/KeyList # # The third number is the joystick button code (or 0 for "none") # Since 0 is reserved for special meaning, joystick button 0 is identified # as 1 here. Button 1 is identified as 2, and so on. # # Find the button you want to map by running: # jstest /dev/input/js0 [KEYBOARD] KEY_UP = 273 114 1 KEY_DOWN = 274 102 1 KEY_LEFT = 276 100 1 KEY_RIGHT = 275 103 1 KEY_BUTTON1 = 306 97 1 KEY_BUTTON2 = 308 115 2 KEY_BUTTON3 = 32 113 4 KEY_START1 = 49 0 12 KEY_START2 = 50 0 0 KEY_COIN1 = 53 0 11 KEY_COIN2 = 54 0 0 KEY_SKILL1 = 304 119 0 KEY_SKILL2 = 122 105 0 KEY_SKILL3 = 120 107 0 KEY_SERVICE = 57 0 0 KEY_TEST = 283 0 0 KEY_RESET = 284 0 0 KEY_SCREENSHOT = 293 0 0 KEY_QUIT = 27 113 15 END
-
@RubiksTron said in Xbox One Bluetooth Controller "start" and "select" buttons won't map in Daphne:
KEY_START1 = 49 0 12
KEY_START2 = 50 0 0
KEY_COIN1 = 53 0 11
KEY_COIN2 = 54 0 0I don't have a similar gamepad to check, but this looks like it's mapping buttons 11 and 10 for Start/Coin. Can you post the
.cfg
file produced by mapping the controller in EmulationStation, you can find it in/opt/retropie/configs/all/retroarch-joypads
. Or check if the Start/Select button numbers are the same in the file. -
@mitu thank you for your help. Here is the cfg file:
input_device = "Xbox Wireless Controller" input_driver = "udev" input_enable_hotkey_btn = "10" input_r3_btn = "14" input_r_y_minus_axis = "-3" input_l_btn = "6" input_load_state_btn = "6" input_r_y_plus_axis = "+3" input_up_btn = "h0up" input_up_btn_label = "D-Pad Up" input_left_btn = "h0left" input_left_btn_label = "D-Pad Left" input_state_slot_decrease_btn = "h0left" input_select_btn = "10" input_r2_axis = "+4" input_r_x_minus_axis = "-2" input_l_y_plus_axis = "+1" input_l_y_plus_axis_label = "Left Analog Y+" input_l_x_plus_axis = "+0" input_l_x_plus_axis_label = "Left Analog X+" input_right_btn = "h0right" input_right_btn_label = "D-Pad Right" input_state_slot_increase_btn = "h0right" input_l2_axis = "+5" input_l_x_minus_axis = "-0" input_l_x_minus_axis_label = "Left Analog X-" input_r_x_plus_axis = "+2" input_l3_btn = "13" input_r_btn = "7" input_save_state_btn = "7" input_l_y_minus_axis = "-1" input_l_y_minus_axis_label = "Left Analog Y-" input_y_btn = "4" input_x_btn = "3" input_x_btn_label = "Y" input_menu_toggle_btn = "3" input_down_btn = "h0down" input_down_btn_label = "D-Pad Down" input_start_btn = "11" input_exit_emulator_btn = "11" input_b_btn = "1" input_reset_btn = "1" input_a_btn = "0"
-
Based on the joypad config file, the
dapinput.ini
mappings are correct. Not sure why they won't work in-game though. -
Bit of a guess here, but you don't have
KEY_PAUSE
defined in yourdapinput.ini
file. Maybe it's picking up some weird SDL input ?!?Try disabling the pause key by adding the following to the
dapinput.ini
file.KEY_PAUSE = 0 0 0
According to the source code that key is available in the original Daphne.
-
@DirtBagXon unfortunately adding that pause line didn't work, the start and select still pause. Thanks for the suggestion.
-
Follow-up: I did some more digging and read somewhere on the xpadneo github that they have a hypseus module in the code. I never thought to try hypseus, I guess I had it stuck in my mind that Daphne was "the" laserdisc emulator. I installed hypseus and it works with the Xbone controller. I only had to configure the select and start buttons. The exit as configured in ES (start + select) works as well. In Daphne the start+select to exit didn't work and I had to configure another button.
Big props to @DirtBagXon, I found your github and followed the instructions: https://github.com/DirtBagXon/hypseus-singe. Thank you thank you thank you.
I hope this helps anyone else stumbling into this issue. I like my xbone controllers and am trying to get away from Xbox 360 controllers + dongle.
TLDR: Xbox One controllers will not work with Daphne. Use hypseus.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.