Please select To the mobile version | Continue to access the desktop computer version
| |
| | |

8Bitdo Official Forum

 Forgot password?
 Register
Search
Author: bunglenutter

RetroPie - D-Pad Recognised as Keyboard over BT

[Copy link]

0

Threads

10

Posts

333

Credits

Full Member

Rank: 3Rank: 3

Credits
333
Post time: 2015-08-22 23:27:04
| Show all posts
Edited by jboy at 2015-08-22 23:32

I found a work-around! I still think the firmware needs to be updated to ensure proper compatibility but I was able to piece together a working solution from the following forum posts:
https://github.com/Ryochan7/antimicro/issues/129
http://forum.8bitdo.com/thread-328-1-1.html

Here's my solution:
1. Start Controller in Joystick Mode (Start + R)
2. From the first forum post, add the input joystick property so that SDL can see the joystick. You will need to create a file in /etc/udev/rules.d
I named mine "10-local.rules" so that it loads ahead of all other rules files. In that file, add the following lines.
  1. # Add the ID_INPUT_JOYSTICK attribute to the device so SDL picks up on it
  2. SUBSYSTEM=="input", ATTRS{name}=="8Bitdo SNES30 GamePad Joystick", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"
Copy the Code
Essentially this is writing the ID_Input_Joystick flag to any device it finds named "8Bitdo SNES30 GamePad Joystick".
At this point I could use the controller in emulationstation but RetroArch still wasn't working properly. This seemed to be due to the incorrect buttons being recorded to the config file.

3. I used the example input file from the second forum post to fix my 8BitdoSNES30GamePadJoystick.cfg file in /opt/retropie/configs/all/retroarch-joypads

My 8BitdoSNES30GamePadJoystick.cfg file now looks like this:
  1. input_device = "8Bitdo SNES30 GamePad Joystick"
  2. input_driver = "udev"
  3. input_r_btn = "18"
  4. input_save_state_btn = "11"
  5. input_start_btn = "22"
  6. input_exit_emulator_btn = "22"
  7. input_l_btn = "17"
  8. input_load_state_btn = "12"
  9. input_up_axis = "-1"
  10. input_a_btn = "11"
  11. input_b_btn = "12"
  12. input_reset_btn = "1"
  13. input_down_axis = "+1"
  14. input_right_axis = "+0"
  15. input_state_slot_increase_axis = "+0"
  16. input_x_btn = "14"
  17. input_menu_toggle_btn = "14"
  18. input_select_btn = "21"
  19. input_enable_hotkey_btn = "21"
  20. input_y_btn = "15"
  21. input_left_axis = "-0"
  22. input_state_slot_decrease_axis = "-0"
Copy the Code

Note: I could not get the [select + L] or [select + R] button combinations to work for saving and loading save states so I changed them to [select + b] and [select + a]

All now appears to be operational. Whew! Now I can get back to gaming.
Reply Support 2 Not support 0

Use magic Report

0

Threads

3

Posts

111

Credits

Member

Rank: 2

Credits
111
Post time: 2015-08-24 16:51:38
| Show all posts
jboy I owe you a beer!

Your udev rules trick works perfectly for me. Both my FC30 controllers are now auto-detected and fully working in both emulationstation and retroarch on ubuntu 15.04.

I've got the FC30 twin-pack, and these announce themselves with different names.

For your step 3 I just grabbed this config file from github and this got my first FC30 working.
The second one wasn't quite right so I duplicated that file and changed
  1. input_device = "8Bitdo FC30 GamePad"
Copy the Code
to:
  1. input_device = "8Bitdo FC30 II Joystick"
Copy the Code
I don't really know how the retroarch autoconfig works - that was really just a guess, but it seems to have worked.

Thanks jboy!
Reply Support Not support

Use magic Report

0

Threads

10

Posts

333

Credits

Full Member

Rank: 3Rank: 3

Credits
333
Post time: 2015-08-24 19:17:13
| Show all posts
The Toastcutter 2015-08-24 16:51
jboy I owe you a beer!

Your udev rules trick works perfectly for me. Both my FC30 controllers are n ...

I'm glad that I could fix my problem and also that I can share with others having the same or similar issues. :-)
Reply Support Not support

Use magic Report

1

Threads

2

Posts

21

Credits

Newbie

Rank: 1

Credits
21
Post time: 2015-10-25 01:13:45
| Show all posts
The Toastcutter 2015-08-24 16:51
jboy I owe you a beer!

Your udev rules trick works perfectly for me. Both my FC30 controllers are n ...

Toastcutter!!

You and I are in the exact same boat!

Please do share with me the content of your 10-local.rules file and also your cfg file (the link you provided is broken sadly)

I am running my Retropie installation in OSMC on a RPi 2 (so paths may be different) but otherwise I am sure the files will work similarly.

Many thanks!
Reply Support Not support

Use magic Report

2

Threads

16

Posts

91

Credits

Member

Rank: 2

Credits
91
Post time: 2015-10-25 05:21:20
| Show all posts
Edited by StefanD at 2015-10-25 05:28

I have no solution. But I want to raise awareness that this problem is very likely related to the Bug that I described in my other thread (See http://forum.8bitdo.com/thread-588-1-1.html for details). User jboy discovered the bug too in an earlier post: The HID usage descriptors that are sent by the Gamepad when connected with Bluetooth say that it is a compound device of Keyboard+Mouse+Gamepad.

I hope the 8bitdo Team will fix that soon.

Reply Support 1 Not support 0

Use magic Report

0

Threads

3

Posts

111

Credits

Member

Rank: 2

Credits
111
Post time: 2015-10-26 15:42:02
| Show all posts
@doceave it looks as though that file on github has now been split into 1P and 2P versions.

These are the ones you want:
https://github.com/libretro/retroarch-joypad-autoconfig/blob/master/udev/8Bitdo-FC30-1P-GamePad-Bluetooth-Mode%28START%29-Mode%28START%2BR%29.cfg
https://github.com/libretro/retroarch-joypad-autoconfig/blob/master/udev/8Bitdo-FC30-2P-GamePad-Bluetooth-Mode%28START%2BR%29.cfg

As for the udev rules, you can use the ones that jboy posted, but you'll need to change the ATTRS{name} field.

Handily, the config files above now show you the exact udev entries to use for P1 and P2.

  1. SUBSYSTEM=="input", ATTRS{name}=="8Bitdo FC30 GamePad", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"
  2. SUBSYSTEM=="input", ATTRS{name}=="8Bitdo FC30 II Joystick", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"
Copy the Code
Reply Support Not support

Use magic Report

1

Threads

6

Posts

37

Credits

Newbie

Rank: 1

Credits
37
Post time: 2015-12-08 11:54:06
| Show all posts
jboy 2015-08-22 23:27
Edited by jboy at 2015-08-22 23:32

I found a work-around! I still think the firmware needs to be  ...


Hi !

is there any update to use SELLECT+L and SELECT+R buttons ?

thanks
Reply Support Not support

Use magic Report

1

Threads

6

Posts

37

Credits

Newbie

Rank: 1

Credits
37
Post time: 2015-12-08 11:55:47
| Show all posts
Is there any update to used SELECT+L or SELECT+R buttons ?
Reply Support Not support

Use magic Report

0

Threads

10

Posts

333

Credits

Full Member

Rank: 3Rank: 3

Credits
333
Post time: 2015-12-23 17:09:54
| Show all posts
Jerome674 2015-12-08 11:55
Is there any update to used SELECT+L or SELECT+R buttons ?

I'd suggest using a different key combination instead.
Reply Support Not support

Use magic Report

0

Threads

1

Posts

14

Credits

Newbie

Rank: 1

Credits
14
Post time: 2016-01-19 19:19:46
| Show all posts
jboy 2015-08-22 23:27
I found a work-around! I still think the firmware needs to be updated to ensure proper compatibility ...

Hi jboy,

I've been having the same problems that you had.  I have the SNES30 that I've paired but my d-pad won't get detected when I press anything.  I followed your steps but still haven't been able to get it working.

Note that I am a linux/raspberry pi newb but can you break your steps down a little further?
Reply Support Not support

Use magic Report

You have to log in before you can reply Login | Register

Points Rules

Archive|Mobile|Dark room|8bitdo.com  

2017-04-24 16:48 GMT-8 , Processed in 0.058670 sec., 16 queries .

Powered by Discuz! Array& MultiLingual version by:codersclub

8Bitdo Tech HK Ltd., © 2013-2017 all rights reserved..

Quick Reply To Top Return to the list