-
Notifications
You must be signed in to change notification settings - Fork 11
Retroarch misconfiguration (tested with N64 Controller) #16
Description
Hi @emilyst
I am using a rpi zero 2w (~rpi3) with latest raspian lite. Compiled retropi 4.8 which is working good.
I paired my controllers (N64 and MD), then in emulationstation I configured the N64 controller. It is working there, but in retroarch, it is not working. It seems the buttons must be +2 higher. I used this firstly and installed dkms-hid-nintendo and joycond. This was working, but not the MD controller, and the lights where rotating all the time at the N64 controller. So I switched to hid-nx-dkms. It seems others has this problem too.
Emulationstation has this es_input.cfg:
<?xml version="1.0"?>
<inputList>
<inputAction type="onfinish">
<command>/opt/retropie/supplementary/emulationstation/scripts/inputconfiguration.sh</command>
</inputAction>
<inputConfig type="joystick" deviceName="N64 Controller" deviceGUID="05001c5e7e0500001920000001800000">
<input name="rightanalogdown" type="button" id="8" value="1"/>
<input name="left" type="hat" id="0" value="8"/>
<input name="rightanalogleft" type="button" id="9" value="1"/>
<input name="right" type="hat" id="0" value="2"/>
<input name="pagedown" type="button" id="4" value="1"/>
<input name="down" type="hat" id="0" value="4"/>
<input name="rightanalogup" type="button" id="7" value="1"/>
<input name="pageup" type="button" id="3" value="1"/>
<input name="rightanalogright" type="button" id="10" value="1"/>
<input name="y" type="button" id="12" value="1"/>
<input name="x" type="button" id="2" value="1"/>
<input name="b" type="button" id="1" value="1"/>
<input name="a" type="button" id="0" value="1"/>
<input name="up" type="hat" id="0" value="1"/>
<input name="select" type="button" id="5" value="1"/>
<input name="start" type="button" id="6" value="1"/>
<input name="leftanalogright" type="axis" id="0" value="1"/>
<input name="leftanalogup" type="axis" id="1" value="-1"/>
<input name="leftanalogdown" type="axis" id="1" value="1"/>
<input name="leftanalogleft" type="axis" id="0" value="-1"/>
</inputConfig>
<inputConfig type="keyboard" deviceName="Keyboard" deviceGUID="-1">
<input name="left" type="key" id="1073741904" value="1"/>
<input name="right" type="key" id="1073741903" value="1"/>
<input name="down" type="key" id="1073741905" value="1"/>
<input name="y" type="key" id="118" value="1"/>
<input name="x" type="key" id="99" value="1"/>
<input name="b" type="key" id="120" value="1"/>
<input name="a" type="key" id="122" value="1"/>
<input name="up" type="key" id="1073741906" value="1"/>
<input name="select" type="key" id="97" value="1"/>
<input name="start" type="key" id="115" value="1"/>
</inputConfig>
</inputList>
autoconfiguration of retroarch N64 controller N64 Controller.cfg:
input_device = "N64 Controller"
input_driver = "udev"
input_vendor_id = "1406"
input_product_id = "8217"
input_r_y_plus_btn = "8"
input_left_btn = "h0left"
input_left_btn_label = "D-Pad Left"
input_state_slot_decrease_btn = "h0left"
input_r_x_minus_btn = "9"
input_right_btn = "h0right"
input_right_btn_label = "D-Pad Right"
input_state_slot_increase_btn = "h0right"
input_r_btn = "4"
input_save_state_btn = "4"
input_down_btn = "h0down"
input_down_btn_label = "D-Pad Down"
input_r_y_minus_btn = "7"
input_l_btn = "3"
input_load_state_btn = "3"
input_r_x_plus_btn = "10"
input_y_btn = "12"
input_x_btn = "2"
input_menu_toggle_btn = "2"
input_b_btn = "1"
input_b_btn_label = "A"
input_reset_btn = "1"
input_a_btn = "0"
input_up_btn = "h0up"
input_up_btn_label = "D-Pad Up"
input_select_btn = "5"
input_start_btn = "6"
input_exit_emulator_btn = "6"
input_enable_hotkey_btn = "5"
and the working configuration is:
input_device = "N64 Controller"
input_driver = "udev"
input_vendor_id = "1406"
input_product_id = "8217"
input_r_y_plus_btn = "10"
input_left_btn = "h0left"
input_left_btn_label = "D-Pad Left"
input_state_slot_decrease_btn = "h0left"
input_r_x_minus_btn = "11"
input_right_btn = "h0right"
input_right_btn_label = "D-Pad Right"
input_state_slot_increase_btn = "h0right"
input_r_btn = "6"
input_save_state_btn = "4"
input_down_btn = "h0down"
input_down_btn_label = "D-Pad Down"
input_r_y_minus_btn = "9"
input_l_btn = "5"
input_load_state_btn = "3"
input_r_x_plus_btn = "12"
input_y_btn = "1"
input_x_btn = "4"
input_menu_toggle_btn = "2"
input_b_btn = "3"
input_b_btn_label = "A"
input_reset_btn = "1"
input_a_btn = "2"
input_up_btn = "h0up"
input_up_btn_label = "D-Pad Up"
input_select_btn = "7"
input_start_btn = "8"
input_exit_emulator_btn = "6"
input_enable_hotkey_btn = "7"
D-Pad was working, not working where the other buttons (if you compare, they are +2 higher as autoconfig).
Can you tell me the reason? Is something corrupted after changing from dkms-hid-nintendo to hid-nx? It seems acc. #10 there are "new" buttons BTN_0 and BTN_1 which explains the +2 higher. How to disable BTN_0 and BTN_1 if this is the reason?!
I think we could delete the two lines at hid-nx.c
{ BTN_0, NX_CON_BTN_HOME, },
{ BTN_1, NX_CON_BTN_CAP, },
Maybe also for the Megadrive controller the two lines at hid-nx.c
Thank you,
Best regards
Patrick