New gamepad autoconf process

ok, but the main and number one problem is i cant get past the first couple steps because when I hit User 1 bind all my controller is not recognized, just my keyboard and mouse are. Does this have something to do with the fact that im on a riotboard and have 4 USBs? I found the cfg for my controller in the UDEV folder (at least I think its for mine, everything looks right) Im wondering if i can use that one? if so how? ive been stressing for days trying to get this controller to work… i have a bunch of roms imported in that work fine with the keyboard but we all know the keyboard sucks for classic NES games… so if anyone can help i would really appreciate it :slight_smile: oh i just saw somebody answered a previous post… so i cant use the udev cfg… but how can i edit it?? or how do i make my own?? i cant figure out that key test app if it involves that maybe someone cann help.

What you need to do is figure out what keycodes your controller puts out, which is where the key test app comes in. Once you get those keycodes, you can plug them into an existing config for some other controller and replace the vendor_id and product_id with the one from your controller.

but the key test app doesnt appear to do anything…at least i dont know how to use it. its just a “hello world” app and doesnt seem to do anything. Also, the USB host viewer app gave me my vendor_id and product_id, so couldnt i just use those? Or you could just tell me how to use the key test app and what to do from there… i would sooooo apreciate it!

Dunno, never used it myself (I don’t really do any emulating on Android), but you might have better luck with something like this:

Retroarch 1.34 stable works fine in OUYA, but is very hard to setup because there is no response from the gamepad and I can’t tap the touch pad in XMB menu either, so the way to configure right is edit the retroarch.cfg file and change the line menu_driver = “xmb” to menu_driver = “rgui”, now with the classic looks you can tap the touch pad and setting up the OUYA gamepad.

Retroarch 1.34 (and nightlies version) won’t recongnize at all the OUYA gamepad, because the old autopad config file OUYA.cfg has a different parametes for the pad, so when I save the new the name changes also for the file and goes to OUYA Game Controller.cfg.

the parameters inside the new file change as well:

input_driver = “android” input_device = “OUYA Game Controller” input_b_btn = “96” input_y_btn = “99” input_select_btn = “106” input_start_btn = “107” 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”

enjoy! :slight_smile:

Latest Google play store Android version Xbox Wireless Adapter config file. I used the Micosoft Xbox 360 Controller config as base. I did not see any autoconfig file for the wireless Xbox controller (at least not in the directory autoconfig/android): (Sidenote: the bold text is probably wrong in the Xbox wired USB controller config)

Where is the user genarated config file located anyway, so i can double check below config.

input_driver = “android” input_device = “Xbox 360 Wireless Adapter” input_device_display_name = “XBOX 360 Wireless Controller” input_vendor_id = “1118” input_product_id = “1817” 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_axis = “+6” input_r2_axis = “+7” 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” input_b_btn_label = “B” input_y_btn_label = “Y” input_select_btn_label = “Back” input_start_btn_label = “Start” input_up_btn_label = “D-Pad Up” input_down_btn_label = “D-Pad Down” input_left_btn_label = “D-Pad Left” input_right_btn_label = “D-Pad Right” input_a_btn_label = “A” input_x_btn_label = “X” input_l_btn_label = “Left Bumper” input_r_btn_label = “Right Bumper” input_l2_axis_label = “Left Trigger” input_r2_axis_label = “Right Trigger” input_l3_btn_label = “Left Stick” input_r3_btn_label = “Right Stick” 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-”

Another sidenote Retropad with analog does not work. If I use the option analog to digital right or left, both work sperately. So probably a bug?

I have not tried any core yet. You can’t scroll the menus using both sticks if you have retopad with analog enabled. It does works if you use the option analog to digital left / right.

So far I tested SNES (SNES9x) GBA (mGBA) and NGPC (Mednafen) Sticks don’t work, but I suppose they don’t need to for those cores. Can anyone submit my config to github?

help how do I use xbox360 wireless

Navigate to settings / input / user 1 input binds Select user 1 default all Select user 1 bind all Select user 1 save autoconf Select user 1 default all to clear the hard bind from the config

only left thumb works and dpad + buttons is this normal for right thumb not to be workings also noticed that dpad up,left down, right are all “0” keys?

Seeing I cant see any way to start a new thread…

Having a devil of a time getting controllers to work on Android. This is on a variety of Android TV boxes. Now on the model I deal with mostly I have tested official PS3 controllers, Rock Candy 360 controllers, an old Microsoft Sidewinder pad and they all work. Even my old USB adapter for PS1 controllers, I plugged that in and it works. But I just tried the girlfriends other third party 360 controller, and a friends third party PS3 controller and some others wont work at all. I can navigate the rest of the OS with it, but in Retroarch I cant do anything. Not even with a keyboard or mouse, just nothing. Keystrokes and clicks dont respond inside Retroarch, so I cant configure anything unless I have one of the controllers types I’ve tested and even then it can be iffy. The touch screen option described above isn’t an option either. Is this a known thing? Any fixes? Talking Android 4.4, 5.1 and 6.0.1, and different hardware as well.

1 Like

Hello all, I´m new here and I have done a lot of rearches before asking. I have a Playstation Dualshock 3 controller (bluetooth mode),.

My question is that I when I try to run FUSE (ZX spectrum emulator) I don´t know how to assign different keyboad keys to my DS3 gamepad for different games.

I have tried changind the BIND mapping configuration and other option inside FUSE… but I guess that I´m doing something wrong.

Could someone explain me how to do it step by step?. Thanks for your patient!.

Chema

Anyways to disable my FireStick remote overtaking my 8BitDo SNES bluetooth controller? If I hit any button on the FireStick remote gets set as the main remote and the 8BitDo SNES bluetooth is basically disabled. It looks like it is set to Port #0 but I am not 100% sure about that. The 8BitDo SNES bluetooth controller sometimes still gets disabled when AutoConfig is turned off. Also this seems to only be an issue in RetroArch. On top of that even when I set it to ‘All Users Can Control The menu’ the SNES still does nothing. I do not have this issue in say the main menu of the FireStick or in say NetFlix. Also when I try to manually bind the controller it ends up being disabled again like as if the FireStick/RetroArch no longer recognise it. I am so lost here.

1 Like

Trying to configure my Logitech keyboard as a controller, did this guide - no success. Vid, Pid, etc… What else can I try?

1 Like

Can the RetroArch Dev check out that right stick on the RetroArch. There is something wrong with that one. Is it a bug on the right stick config? Could it be just the MAME core issue? Who is the Dev on the MAME core?

Everything else is fine. Even the MAME for Windows doesn’t have that issue.

1 Like

I am using an ODroid XU4 computer with Android 4.4 and a stable release of RetroArch. I’ve tried a third-party PS3 controller but it is wireless and won’t pair. It works for a few seconds but the controller won’t recognise the Android machine and shuts itself off.

I bought a third-party XBox 360 controller with a cord. The DPad works when I hit the Y button and search but the DPad won’t work correctly any other time and I don’t know what the driver situation is. I don’t think the problem is with the controller because it works in some situations and not others.

1 Like

I was working on the configuration of my Joystick (Logitech F310) and I found out that Sony uses a customized Key layout file.

This should be the correct file:

https://android.googlesource.com/platform/frameworks/base/+/master/data/keyboards/Vendor_046d_Product_c21d.kl

but apparently Sony changed the mapping of:

axis 0x05 GAS
axis 0x02 BRAKE

into:

axis 0x05 RTRIGGER
axis 0x02 LTRIGGER

The current config file I submitted to Github was designed to work with Sony devices:

Sony configuration
input_l2_axis = “+6”
input_r2_axis = “+7”

but it should be:

Standard Android
input_l2_axis = “+8”
input_r2_axis = “+9”

Is there a way to make Retroarch configure the correct binding for all the deivces?

Take into consideration that the joystick sends the same product_id, vendor_id and device name to both the Sony devices and the other Android devices I tested.

For example is it possible to bind the same retroarch input to 2 different device inputs (i.e. +6 and +8 mapped to input_l2_axis)?

Thanks

1 Like

Should autoconfig be working in iOS (jailed)?I can’t get the config files to save when I generate them myself and I don’t see any cocoa autoconfigs in the files downloaded from the downloaded.

It seems this may be the actual correct file for your device:

https://android.googlesource.com/platform/frameworks/base/+/master/data/keyboards/Vendor_046d_Product_c21f.kl

It is the same vid, but slightly different pid, and the mapping matches what you have described, with everything else being identical.

If this is the case then it should be simple to just modify the file within your android, and then performing a cold reboot of the entire system. You should find that it will recognize accordingly.

You will need complete root access to do this. but it should be quite easy.

  1. Go to /system/usr/keylayout
  2. Back up the “Vendor_046d_Product_c21d.kl” file on a USB or SD card
  3. Once backed up, open it for editing.
  4. Change the values as you see in the link I provided above.
  5. Run a task killer app, and perform a manual reboot of your system (Pull out and reinsert plug)
  6. Give it a try

This should allow your system to correctly detect the inputs from your Sony model.

The only downfall is if you attempt to use the non sony F310 you will need to revert back to the original file for it to function correctly

Also if you perform a system update it may replace the file with the original, requiring you to change it again.

Hope this helped

Thanks for the suggestion. The file you found is the wireless version of my gamepad. Now I understand the reason why Sony changed the file, i.e. to have the same key layout for both the gamepads which are both ufficially supported by the Android TV.

The point here was to write a configuration file to uplaod in the retroarch repository to allow a proper use for all the users of the joystick.

I have already two versions of the configuration file I am using for the the Sony and non-Sony devices. Moreover the gamepad has a switch that trasforms the gamepad into a Logitech Dual Action gamepad whose key layout file does not have this issue.

Yes I understand, unfortunately it’d be tricky considering the current design of autoconfig from what I am aware

The only thing I could think of is that if the Version ID’s (bcdDevice) were different from one another then this could potentially be taken into account by autoconfigs point system in efforts of choosing the correct file.

Say for instance if one of the models had a different assigned version ID than the other, then this could be used to differentiate between the two. The AutoConfig point system would be able to account for this difference if it were able to apply an additional point to the cfg with the matching version ID in order to break the tie, allowing for it to automatically select between the 2 (or more) types for the installed device.

However this idea would unfortunately be fruitless if they were all manufactured with the exact same HID information, and unfortunately there would be no easy way to make it automatic for a user

I’d say however this would have not originally been included or considered for the design of autoconfig itself considering how rare such a scenario would occur