New gamepad autoconf process

Updated intructions

Starting with 1.2 we’ve refactored the autoconf system. From 1.2.2 onwards the process to configure and contribute autoconf files is as follows:

Useful tools:

These tools are useful in cases where you can’t navigate the gui (no touchscreen or no supported controllers available) Option 1, navigate the screen with a touchscreen or a mouse

  • Load RetroArch
  • Set your autoconf dir to some directory were you can read/write (if your device is rooted you can skip this step)
  • Update autoconf profiles in case there is something new
  • Navigate to Input Settings (use the touchscreen)
  • Select User 1 default all
  • Select User 1 bind all, bind anything that you don’t have to a single button
  • Go back to the previous menu and select Input 1 User Binds and try to correct anything that might be mapped wrong, the GUI is a bit to sensitive, also clean up any binds for buttons you don’t have
  • Go to input settings and select User 1 Save Autoconfig Then make sure to select User 1 default all so the manual bindings are cleared, restart and test, if everything went smoothly it should now detect your controller just fine

You’ll end up with a file like this:


input_vendor_id = 14368
input_product_id = 9
input_driver = "android"
input_device = "8Bitdo NES30 Pro"
input_b_btn = "97"
input_y_btn = "100"
input_select_btn = "109"
input_start_btn = "108"
input_up_btn = "h0up"
input_down_btn = "h0down"
input_left_btn = "h0left"
input_right_btn = "h0right"
input_a_btn = "96"
input_x_btn = "99"
input_l_btn = "102"
input_r_btn = "103"
input_l2_btn = "104"
input_r2_btn = "105"
input_l3_btn = "106"
input_r3_btn = "107"
input_l_x_plus_axis = "+0"
input_l_x_minus_axis = "-0"
input_l_y_plus_axis = "+1"
input_l_y_minus_axis = "-1"
input_r_x_plus_axis = "+2"
input_r_x_minus_axis = "-2"
input_r_y_plus_axis = "+3"
input_r_y_minus_axis = "-3"

Autoconf now works based on a score system, matching VID/PID adds 3 points, an exact name adds 2 points, and a partial name match adds 1 point so the more information the better. VID/PID won’t be saved unless you’re running commit 766b6b811ee678e847053f215be70c7c995717e3 or later.

Now the touch ups to the file if you want to submit the file

input_display_name = "NES30 Pro Controller"

Add this to add a friendly display name, cosmetic only, many devices just print “Virtual” or “Broadcom Bluetooth”, so this makes the osd message “better”

input_vendor_id = 14368
input_product_id = 9

Add these if they weren’t added to make sure the match is exact

input_b_btn_label = "B"
input_y_btn_label = "A"
input_select_btn_label = "SELECT"
input_start_btn_label = "START"
input_up_axis_label = "D-Pad Up"
input_down_axis_label = "D-Pad Down"
input_left_axis_label = "D-Pad Left"
input_right_axis_label = "D-Pad Right"
input_a_btn_label = "A"
input_x_btn_label = "X"
input_l_btn_label = "L"
input_r_btn_label = "R"
input_l2_btn_label = "L2"
input_r2_btn_label = "R2"
input_l3_btn_label = "L3"
input_r3_btn_label = "R3"
input_l_x_plus_axis_label = "Left Analog X+"
input_l_x_minus_axis_label = "Left Analog X-"
input_l_y_plus_axis_label = "Left Analog Y+"
input_l_y_minus_axis_label = "Left Analog Y-"
input_r_x_plus_axis_label = "Right Analog X+"
input_r_x_minus_axis_label = "Right Analog X-"
input_r_y_plus_axis_label = "Right Analog Y+"
input_r_y_minus_axis_label = "Right Analog Y-"

Add these to have friendly labels in the input binds, follow retropad button naming convention

That should be it, that file should work perfectly to hotplug your pads and you could contribute it to the autoconf repo I’ll try to streamline the process in the future and maybe even have a submit option… who knows

Option 2, use the external tools

  • Load USB host viewer and write down the VID/PID for your device, it should be something like this (if your controller is BT this might not be available):

  • Convert those digits with a calculator (Google will do, just type 0x0955 to decimal) and write them down in a text file:

input_vendor_id = 2389
input_product_id = 29187
  • Go to bluetooth settings and write down the name of the controller EXACTLY as it’s shown there

  • Add that to your cfg

input_vendor_id = 2389
input_product_id = 29187
input_device = "8Bitdo NES30 Pro"

Now use keytest to determine the keycodes for your controller, write them down and add them to the config file, sadly keytest doesn’t support analogs, but this should get you going at least:


input_vendor_id = 14368
input_product_id = 9
input_driver = "android"
input_device = "8Bitdo NES30 Pro"
input_b_btn = "97"
input_y_btn = "100"
input_select_btn = "109"
input_start_btn = "108"
input_up_btn = "h0up"
input_down_btn = "h0down"
input_left_btn = "h0left"
input_right_btn = "h0right"
input_a_btn = "96"
input_x_btn = "99"
input_l_btn = "102"
input_r_btn = "103"
input_l2_btn = "104"
input_r2_btn = "105"
input_l3_btn = "106"
input_r3_btn = "107"
input_l_x_plus_axis = "+0"
input_l_x_minus_axis = "-0"
input_l_y_plus_axis = "+1"
input_l_y_minus_axis = "-1"
input_r_x_plus_axis = "+2"
input_r_x_minus_axis = "-2"
input_r_y_plus_axis = "+3"
input_r_y_minus_axis = "-3"

Then save the cfg and push it to your device somehow, or push them to the repo and wait for the next nightly. If you want to push to the builtin location, you should write to /data/data/com.retroarch/autoconfig/android

Edit: From 4b234a onwards you should be able to get the VID/PID from the system information panel, this only shows once a pad is autoconfigured but it’s still useful to be able to touch up the config after creating it.

5 Likes

Thanks for the info, all buttons maps work except when I press back in my Archos Gamepad (joy_key 0) RA reconized like “NVIDIA Corporation NVIDIA Controller v01.01 port 1” and with f the analog sticks RA reconized them like “Ultimarc UHID port 1”

2 Likes

I tried connecting my ipega controller with Bluez IME and it did not detect the controller at all. I also tried the binding thing and nothing has changed. Used on bungbungame miss 4.1.

Hi!

I tried the 2015-08-08 nightly build on a Mad Catz M.O.J.O. with two controllers connected via Bluetooth, a Mad Catz Micro C.T.R.L.R and an 8Bitdo SFC30.

Both controlls show up as Broadcom Bluetooth HID. That’s why I would like to use the input_vendor_id and input_product_id options in their auto-config files. Unfortunately RetroArch doesn’t seem to recognize the controllers VID/PID at all although they are present on the OS.


I: Bus=0005 Vendor=0738 Product=5262 Version=0006
N: Name="Broadcom Bluetooth HID"
P: Phys=
S: Sysfs=/devices/virtual/misc/uhid/input9
U: Uniq=
E: Enabled=0
H: Handlers=js1 event6 icfboost 
B: PROP=0
B: EV=1f
B: KEY=7fff0000 70000 0 10000 1138 40000000 c1680 0 0 0
B: REL=103
B: ABS=30627
B: MSC=10

I: Bus=0005 Vendor=2810 Product=0009 Version=0000
N: Name="Broadcom Bluetooth HID"
P: Phys=
S: Sysfs=/devices/virtual/misc/uhid/input10
U: Uniq=
E: Enabled=0
H: Handlers=sysrq js2 event7 icfboost 
B: PROP=0
B: EV=12001f
B: KEY=4 0 ffff0000 1f0000 10000 2000007 ff9f307a c14057ff febeffdf ffefffff ffffffff fffffffe
B: REL=103
B: ABS=30627
B: MSC=10
B: LED=1f

Does anyone have an idea what might went wrong and how to deal with it?

Kind regards

Frufo

Sorry, I meant the display name on the line 8Bitdo SFC30 GamePad configured in port #0 comes from the auto-config file. Yes, I created this file by myself. As long as I use input_device = “Broadcom Bluetooth HID” the auto-configuration works for the SFC30. The only problem is that all other gamepads named Broadcom Bluetooth HID get the same config.

Now the log of the 2015-08-09 nightly for the SFC30 looks like this:


D/BluetoothBroadcastReceiver( 1256): Got action: android.bluetooth.device.action.ACL_CONNECTED 
D/BluetoothBroadcastReceiver( 1256): ACL_CONNECTED device: 8Bitdo SFC30 GamePad state: 12 
D/BluetoothBroadcastReceiver( 1256): ACL_CONNECTED passing device to ControllerService, address: 61:04:1F:91:74:06

W/bt-btif ( 1636): new conn_srvc id:23, app_id:1 
W/bt-btif ( 1636): btif_hh_upstreams_evt: BTA_HH_OPN_EVT: handle=1, status =0 
W/bt-btif ( 1636): BTA_HH_OPEN_EVT: Found device...Getting dscp info for handle ... 1 
W/bt-btif ( 1636): BTA_HH_GET_DSCP_EVT: status = 16, handle = 40 
W/bt-btif ( 1636): btif_hh_upstreams_evt: name = Broadcom Bluetooth HID 
W/bt-btif ( 1636): bta_hh_co_send_hid_info: fd = 64, name = [Broadcom Bluetooth HID], dscp_len = 218 
W/bt-btif ( 1636): bta_hh_co_send_hid_info: vendor_id = 0x2810, product_id = 0x0009, version= 0x0000,ctry_code=0x00 
D/HidService( 1636): Connection state 61:04:1F:91:74:06: 0->2

D/BluetoothAdapterService(1102217448)( 1636): getState(): mAdapterProperties: [email protected] 
D/BluetoothAdapterProperties( 1636): CONNECTION_STATE_CHANGE: 61:04:1F:91:74:06: 0 -> 2 
D/CachedBluetoothDevice( 1709): onProfileStateChanged: profile HID newProfileState 2 
W/bt-btif ( 1636): bta_hh_co_send_hid_info: fd = 64, dscp_len = 218, result = 0 
W/bt-btif ( 1636):  Device 61:04:1F:91:74:06 already added 
W/bt-btif ( 1636): btif_hh_upstreams_evt: Device already added  
D/BluetoothAdapterService(1102217448)( 1636): getState(): mAdapterProperties: [email protected] 
D/BluetoothAdapterService(1102217448)( 1636): getState(): mAdapterProperties: [email protected] 
D/BluetoothAdapterService(1102217448)( 1636): Get Bonded Devices being called 
D/EventHub(  729): No input device configuration file found for device 'Broadcom Bluetooth HID'. 
I/EventHub(  729): New device: id=7, fd=177, path='/dev/input/event6', name='Broadcom Bluetooth HID', classes=0x8000014b, configuration='', keyLayout='/system/usr/keylayout/Generic.kl', keyCharacterMap='/system/usr/keychars/Generic.kcm', builtinKeyboard=false, usingSuspendBlockIoctl=true, usingClockIoctl=false 
I/InputReader(  729): Device added: id=7, name='Broadcom Bluetooth HID', sources=0x01002513 
I/ActivityManager(  729): Config changes=1400 {1.0 ?mcc?mnc de_DE ldltr sw540dp w960dp h515dp 320dpi lrg long land television -touch qwerty/v/v dpad/v s.12} 

D/BluetoothManagerService(  729): Message: 20 
D/BluetoothManagerService(  729): Added callback: [email protected]:true 
I/GameControllerInput( 3891): onReceive() 8Bitdo SFC30 GamePad,61:04:1F:91:74:06,[Landroid.os.ParcelUuid;@41b2d6b8,12,61:04:1F:91:74:06 

D/BluetoothBroadcastReceiver( 1256): Got action: android.bluetooth.adapter.action.CONNECTION_STATE_CHANGED 
D/BluetoothBroadcastReceiver( 1256): Adapter CONNECTION_STATE_CHANGED device: state: 2

W/RetroArch( 7225): Input device ID 5 is unknown to this libretro implementation. Using RETRO_DEVICE_JOYPAD. 
W/RetroArch( 7225): Input device ID 5 is unknown to this libretro implementation. Using RETRO_DEVICE_JOYPAD. 
W/RetroArch( 7225): Input device ID 5 is unknown to this libretro implementation. Using RETRO_DEVICE_JOYPAD. 
W/RetroArch( 7225): Input device ID 5 is unknown to this libretro implementation. Using RETRO_DEVICE_JOYPAD. 
I/RetroArch( 7225): SRAM will not be saved. 
I/RetroArch( 7225): null: [/data/data/com.retroarch/content_history.lpl]. 
I/RetroArch( 7225): [Data Thread]: Initializing data thread. 
I/RetroArch( 7225): [Data Thread]: Starting data thread. 
D/GestureControl( 2343): update color 
D/GestureControl( 2343): update color: TRANSPARENT1 
I/RetroArch( 7225): Using old lookup 
I/RetroArch( 7225): device name: Broadcom Bluetooth HID 
I/RetroArch( 7225): Port 0: Broadcom Bluetooth HID VID/PID: 0/0 
I/RetroArch( 7225): Autoconfig: 7 profiles found 
I/RetroArch( 7225): Autoconf: configuration score=0 
I/RetroArch( 7225): Autoconf: configuration score=0 
I/RetroArch( 7225): Autoconf: configuration score=0 
I/RetroArch( 7225): Autoconf: configuration score=0 
I/RetroArch( 7225): Autoconf: configuration score=0 
I/RetroArch( 7225): Autoconf: configuration score=2 
I/RetroArch( 7225): Autoconf: configuration score=0 
I/RetroArch( 7225): Autoconf: best configuration score=2 
I/RetroArch( 7225): 8Bitdo SFC30 GamePad configured in port #0.

Even the Mad Catz C.T.R.L.R connected via USB dongle (my other Mad Catz Micro C.T.R.L.R uses standard bluetooth) shows VID/PID 0/0. It’s configuration works due to the correctly delivered device name. Saving the configuration doesn’t add the input_vendor_id and input_product_id to the auto-config file.


W/RetroArch( 6397): Input device ID 5 is unknown to this libretro implementation. Using RETRO_DEVICE_JOYPAD. 
W/RetroArch( 6397): Input device ID 5 is unknown to this libretro implementation. Using RETRO_DEVICE_JOYPAD. 
W/RetroArch( 6397): Input device ID 5 is unknown to this libretro implementation. Using RETRO_DEVICE_JOYPAD. 
W/RetroArch( 6397): Input device ID 5 is unknown to this libretro implementation. Using RETRO_DEVICE_JOYPAD. 
I/RetroArch( 6397): SRAM will not be saved. 
I/RetroArch( 6397): null: [/data/data/com.retroarch/content_history.lpl]. 
I/RetroArch( 6397): [Data Thread]: Initializing data thread. 
I/RetroArch( 6397): [Data Thread]: Starting data thread. 
I/RetroArch( 6397): Using old lookup 
I/RetroArch( 6397): device name: Mad Catz C.T.R.L.R (Smart) 
I/RetroArch( 6397): Port 0: Mad Catz C.T.R.L.R (Smart) VID/PID: 0/0 
I/RetroArch( 6397): Autoconfig: 7 profiles found 
I/RetroArch( 6397): Autoconf: configuration score=0 
I/RetroArch( 6397): Autoconf: configuration score=0 
I/RetroArch( 6397): Autoconf: configuration score=0 
I/RetroArch( 6397): Autoconf: configuration score=0 
I/RetroArch( 6397): Autoconf: configuration score=2 
I/RetroArch( 6397): Autoconf: configuration score=0 
I/RetroArch( 6397): Autoconf: configuration score=0 
I/RetroArch( 6397): Autoconf: best configuration score=2 
I/RetroArch( 6397): Mad Catz C.T.R.L.R (Smart) configured in port #0.

Thank you for figuring that out.

I have already thought about installing CM12, but several games have been reported as not working on Android 5. Some day I will surely buy another Android console with an up to date OS version. But then I would keep my Android 4.2 M.O.J.O. for still being able to play the older stuff.

Another hopefully easy solution came to my mind. May I ask you to add a “User 1 Load Autoconfig” feature beneath the “User 1 Save Autoconfig” which brings up the autoconfig directory for selecting and applying a specifig autoconfig file? Might be useful for testing purposes, too.

I send you autoconfig profile for GPD G5A, a gaming tablet with integrated controls (in he line of JXD, or archos devices). I have mapped it manually and works perfectly, so if you can include it for next builds, would be nice. Thanks:



input_driver = "android"
input_device = "G5A-joy"
input_b_btn = "96"
input_y_btn = "99"
input_select_btn = "108"
input_start_btn = "109"
input_up_btn = "19"
input_down_btn = "20"
input_left_btn = "21"
input_right_btn = "22"
input_a_btn = "97"
input_x_btn = "100"
input_l_btn = "102"
input_r_btn = "103"
input_l2_btn = "104"
input_r2_btn = "105"
input_l3_btn = "106"
input_r3_btn = "107"
input_l_x_plus_axis = "+0"
input_l_x_minus_axis = "-0"
input_l_y_plus_axis = "+1"
input_l_y_minus_axis = "-1"
input_r_x_plus_axis = "+2"
input_r_x_minus_axis = "-2"
input_r_y_plus_axis = "+3"
input_r_y_minus_axis = "-3"


Hi In previous version of RetroArch, i used my Moga Pocket with Moga VK (virtual keyboard), i assign regular IMEcontrol (DPAD up for up, DPAD Down for down, Button A for button A etc…) and it works reeeeeealy fine ! Since a little bit before the play store version… nothing works O___O

  • Auto conf name is nVidia controller …
  • I try EVERY config possibilities to assignate with the Moga VK, without it etc… it don’t work (when its detected, it mainly only bind every control to button #0 or something)
  • i tried to built a preset in Moga VK with keyboard keyz (m,x,a etc…) —> even if my preset have defaults keyz : nothing happened, and when rebinding: send a blank key -___-
  • I also tried with Moga Universal Driver but i wasn’t been able to make it work (and my phone is not rooted)

Anyone have any idea why any of my try works ? How to setup this joypad, or how to make it works with a regular keyboard setup layout via Moga VK ?? (as i said… it works 100% in previous version ~_______~ )

I have a Nvidia Shield Portable and when I try to map the Buttons for GBA (VBA Next v1.0.2), the Mappings for the Buttons do not Map correctly. I think there needs to be a Config for the Shield Controllers so they do not get messed up. When I am trying to map them, it seems like it expects my Buttons to show up like a Nintendo Button Layout when they are not ( B and A should layout as A and B,and same with the X and Y Buttons). II think that is what is making the problem because when using the Mappings in Retro, (User 1 A: RetroPad A) for some reason maps to the Back Button. I have to use the X and B buttons for Retro Y and B (X and A Buttons). Very confusing I know. All the other Buttons work perfectly. L, R, L3, R3, U, D, L, R. Dont know about L2 and R2 yet.

Resubmission of autoconfig for JXD S7800B. Dunno why it’s been removed from 1.2.2 update. This caused issues for some 7800b users, myself included: http://boards.dingoonity.org/jxd-devices/retroarch-julyaugust-update/ Older kernels use ‘ADC joystick’, but newer firmwares have ‘jxdkey_driver’. So what we need are two separate autoconfigs for each one, say ‘JXD_S7800B.cfg’ and 'JXD_S7800B_2.cfg. Sadly, harware ‘Back’ and ‘Menu’ button presses are recognized as ‘rk29-keypad’ and can’t be mapped if I choose ‘jxdkey_driver’ as input device. I wonder why there was no such issue on 1.0.0.2 r34… Hope you could find workaround in future releases.

input_driver = “android” input_device = “jxdkey_driver” input_b_btn = “96” input_y_btn = “99” input_select_btn = “109” input_start_btn = “108” input_up_btn = “19” input_down_btn = “20” input_left_btn = “21” input_right_btn = “22” input_a_btn = “97” input_x_btn = “100” input_l_btn = “102” input_r_btn = “103” input_l2_btn = “104” input_r2_btn = “105” input_l_x_plus_axis = “+0” input_l_x_minus_axis = “-0” input_l_y_plus_axis = “+1” input_l_y_minus_axis = “-1” input_r_x_plus_axis = “+2” input_r_x_minus_axis = “-2” input_r_y_plus_axis = “+3” input_r_y_minus_axis = “-3”

@bl@[email protected] do both devices report the same vid/pid? Ideally, that information will let you have both in there without any conflicts.

The second device called ‘rk29-keypad’.

I: Bus=0019 Vendor=0001 Product=0001 Version=0100 N: Name=“rk29-keypad” P: Phys=gpio-keys/input0 S: Sysfs=/devices/platform/rk29-keypad/input/input0 U: Uniq= H: Handlers=kbd event0 keychord B: PROP=0 B: EV=3 B: KEY=40008800 1c0040 0 0 0

I: Bus=0000 Vendor=0000 Product=0000 Version=0000 N: Name=“jxdkey_driver” P: Phys= S: Sysfs=/devices/virtual/input/input1 U: Uniq= H: Handlers=kbd event1 B: PROP=0 B: EV=f B: KEY=fdb0001 0 0 0 0 0 1680 1000000 0 0 B: REL=0 B: ABS=27

And the keycodes are ‘4’ for BACK and ‘82’ for MENU.

USB Host Viewer gives me this:

I guess it has nothing to do with controls. I tried adding input_vendor_id = 3034 / input_product_id = 377 but RetroArch shows VID/PID: 0/0.

I’ll try making one for the Wii Classic Controller, even though support for it has been completely deprecated and I’m all but forced to get a new Bluetooth controller if I wish to use RA 1.2.x+ on my Nexus 7. Damn you, Google, for breaking Wii remote support, new Android OSes be damned. -_- So in other words, making one will be in vain, but I guess I can try, doubt it’ll work. Will report back later.

Edit: Note, I did in fact try making an auto config file before, that was a farce

Here’s what it looked like when I ran the Keytest App on my Android device and synced the Wii remove/CC to it

input_device = “Nintendo RVL-CNT-01” input_driver = “hid” input_vendor_id = 1406 input_product_id = 816 input_b_btn = “22” input_y_btn = “21” input_select_btn = “28” input_start_btn = “26” input_up_btn = “16” input_down_btn = “30” input_left_btn = “17” input_right_btn = “31” input_a_btn = “20” input_x_btn = “19” input_l_btn = “29” input_r_btn = “25” input_l2_btn = “23” input_r2_btn = “18” #input_l3_btn = “14” #input_r3_btn = “15” input_l_x_plus_axis = “+0” input_l_x_minus_axis = “-0” input_l_y_plus_axis = “-1” input_l_y_minus_axis = “+1” input_r_x_plus_axis = “+2” input_r_x_minus_axis = “-2” input_r_y_plus_axis = “-5” input_r_y_minus_axis = “+5” input_menu_toggle_btn = “27”

input_b_btn_label = “Classic B” input_y_btn_label = “Classic Y” input_select_btn_label = “Classic Minus” input_start_btn_label = “Classic Start” input_up_btn_label = “Classic D-Pad Up” input_down_btn_label = “Classic D-Pad Down” input_left_btn_label = “Classic D-Pad Left” input_right_btn_label = “Classic D-Pad Right” input_a_btn_label = “Classic A” input_x_btn_label = “Classic X” input_l_btn_label = “Classic L” input_r_btn_label = “Classic R” input_l2_btn_label = “Classic ZL” input_r2_btn_label = “Classic ZR” #input_l3_btn_label = “L3” #input_r3_btn_label = “R3” input_l_x_plus_axis_label = “Left Analog X+” input_l_x_minus_axis_label = “Left Analog X-” input_l_y_plus_axis_label = “Left Analog Y+” input_l_y_minus_axis_label = “Left Analog Y-” input_r_x_plus_axis_label = “Right Analog X+” input_r_x_minus_axis_label = “Right Analog X-” input_r_y_plus_axis_label = “Right Analog Y+” input_r_y_minus_axis_label = “Right Analog Y-” input_menu_toggle_btn_label = “Classic Home”

On my android lollipop devices (I have 2 tablets and one smartphone), the android softkeys (back, home & task) are automatically detected as “Nvidia Corporation Controller” in the fist input, switching my bluetooth gamepad to the second input. I tried to disable autoconf but it doesn’t work. Is there a way to prevent that from happening?

With the last nightly it doesn’t works properly the autoconfig with my archos gamepad, inside input is User 1 Index Device “Archos Gamepad” but you must bind all the buttons manualy even if Autoconfig Enable is ON

The Asus Gamepad and Shield Controller seem to auto config differently? They should be the same because they are both Android TV (ShieldTV).

Complete newbie here, sorry if this is basic knowledge, I just can’t find a more casual resource that deals with my issue. Please point me to the right direction if I should post this elsewhere.

I’m using a GPD XD and I can navigate the menu normally with its built-in D-pad and buttons, but the moment I bind the wireless gampepad I’m trying to assign to user 1 (a Tronsmart G01), the new device “steals” the control and I can no longer navigate since it appears as "Tronsmart (not configured), I can just force close and relaunch. Binding it for user 2 works perfectly and the gamepad is fully functional in games, but of course as player 2.

Is there a way I can bind it for using it as player 1 in games, while I use the XD’s built-in gamepad for navigating RA’s menu?

Thanks a lot for your hard work!

I have a MOGA Pro, I assume that I shouldn’t have trouble configuring RA on my Shield Tablet?

I Add the G910 Wireless Bluetooth Controller previously reported on this message on the old thread. [I]

This is a Bluetooth device recogniced by Android with the default name of “Gamepad” This gamepad has several working modes. The one shown here is the Gamepad Mode, that you can select by powering on the device while the X button is pressed.

input_driver = “android” input_device = “Gamepad” input_display_name = “G910 Bluetooth Controller” input_vendor_id = “1452” input_product_id = “556” input_a_btn = “97” input_b_btn = “96” input_x_btn = “100” input_y_btn = “99” input_select_btn = “109” input_start_btn = “108” input_up_btn = “h0up” input_down_btn = “h0down” input_left_btn = “h0left” input_right_btn = “h0right” input_l_btn = “102” input_r_btn = “103” input_l2_btn = “104” input_r2_btn = “105” input_l3_btn = “98” input_r3_btn = “101” input_l_x_plus_axis = “+0” input_l_x_minus_axis = “-0” input_l_y_plus_axis = “+1” input_l_y_minus_axis = “-1” input_r_x_plus_axis = “+2” input_r_x_minus_axis = “-2” input_r_y_plus_axis = “+3” input_r_y_minus_axis = “-3” [/I]

Hello, I’m having an issue with my Retrolink Genesis controller. Everything maps correctly except for C, X, Y, and Z. I’ve used KeyTest and they all return Keycode: 0 and Keycode=KEYCODE_UNKNOWN. They return different ScanCode if that matters. Confirmed fully working on PC. Anyway to fix this?