Hi,
I just got a new controller, the SFC30 (I think they changed the name to just "SF" at one point) by 8bitdo, and I'm having a hell of a time trying to get it working with FreePie.
Trying to do a simple diagnostics.watch() and go from there, but the only inputs seem to be xbox360[0]?
Tried loading up x360ce but it doesn't seem compatible with FreePie?
I've tried a ton of searches.
Any ideas for getting this working?
Getting the 8bitdo SFC30 to work with FreePie?
- Moromillas
- One Eyed Hopeful
- Posts: 8
- Joined: Wed Sep 23, 2015 7:31 pm
- Moromillas
- One Eyed Hopeful
- Posts: 8
- Joined: Wed Sep 23, 2015 7:31 pm
Re: Getting the 8bitdo SFC30 to work with FreePie?
I got it working.
I used joystick[1] instead of xbox360[0] and it worked.
For anyone stumbling across this via a search, here's my code:
Have a good one.
I used joystick[1] instead of xbox360[0] and it worked.
For anyone stumbling across this via a search, here's my code:
Code: Select all
def ini():
speech.say("penis")
def keymap(b, k):
if b:
keyboard.setKeyDown(k)
else:
keyboard.setKeyUp(k)
def stickmap(b, a, k):
if b == a:
keyboard.setKeyDown(k)
else:
keyboard.setKeyUp(k)
def buttons():
keymap(joystick[1].getDown(0), Key.B) #B
keymap(joystick[1].getDown(1), Key.A) #A
keymap(joystick[1].getDown(2), Key.Y) #Y
keymap(joystick[1].getDown(3), Key.X) #X
keymap(joystick[1].getDown(4), Key.L) #L
keymap(joystick[1].getDown(5), Key.R) #R
keymap(joystick[1].getDown(6), Key.Backspace) #Select
keymap(joystick[1].getDown(7), Key.Return) #Start
def sticks():
stickmap(joystick[1].y, -1000, Key.UpArrow) #Dpad Up
stickmap(joystick[1].y, 1000, Key.DownArrow) #Dpad Down
stickmap(joystick[1].x, -1000, Key.LeftArrow) #Dpad Left
stickmap(joystick[1].x, 1000, Key.RightArrow) #Dpad Right
if starting:
ini()
buttons()
sticks()
diagnostics.watch(joystick[1].getDown(0)) #B
diagnostics.watch(joystick[1].getDown(1)) #A
diagnostics.watch(joystick[1].getDown(2)) #Y
diagnostics.watch(joystick[1].getDown(3)) #X
diagnostics.watch(joystick[1].getDown(4)) #L
diagnostics.watch(joystick[1].getDown(5)) #R
diagnostics.watch(joystick[1].getDown(6)) #Select
diagnostics.watch(joystick[1].getDown(7)) #Start
diagnostics.watch(joystick[1].y) #Dpad Y
diagnostics.watch(joystick[1].x) #Dpad X
-
- Cross Eyed!
- Posts: 197
- Joined: Mon Mar 02, 2015 3:58 pm
Re: Getting the 8bitdo SFC30 to work with FreePie?
SFC30 by default provides DirectInput, not XInput. That is why joystick[] is needed. By the way, you can refer to it by name as well, e.g. joystick["Your Controller Name"], so that the script is not confused if you attach and detach more controllers.
To switch to XInput you need to do this:
https://www.reddit.com/r/8bitdo/comment ... _sfc30_as/
To switch to XInput you need to do this:
according to this post:Alternatively, you can also hold the X-button while powering on your controller to use Xinput without having to install Xpad(as long as you are using the latest firmware for your controller). This will basically make every program recognise your controller as if it were an XBOX 360 controller.
https://www.reddit.com/r/8bitdo/comment ... _sfc30_as/
- Moromillas
- One Eyed Hopeful
- Posts: 8
- Joined: Wed Sep 23, 2015 7:31 pm
Re: Getting the 8bitdo SFC30 to work with FreePie?
Ok, I got it paired as an XInput controller.
You actually have to re-register a new controller, and it's more pressing both X and start for about a second, then releasing both. Then the LED does a double blink for XInput pairing.
It shows up as "8bitdo SFC30(x)" and pairs as "Xbox Bluetooth Gamepad". But here's the thing though... In FreePie, the xbox360[] inputs don't register anything, and instead of joystick[1], it's now joystick[0].
Weird hey.
Perhaps there's something wrong with the drivers. I'm going to try ripping out all the HID drivers and Bluetooth drivers out, installing Toshiba again and starting from scratch. ...Tomorrow.
You actually have to re-register a new controller, and it's more pressing both X and start for about a second, then releasing both. Then the LED does a double blink for XInput pairing.
It shows up as "8bitdo SFC30(x)" and pairs as "Xbox Bluetooth Gamepad". But here's the thing though... In FreePie, the xbox360[] inputs don't register anything, and instead of joystick[1], it's now joystick[0].
Weird hey.
Perhaps there's something wrong with the drivers. I'm going to try ripping out all the HID drivers and Bluetooth drivers out, installing Toshiba again and starting from scratch. ...Tomorrow.
-
- Cross Eyed!
- Posts: 197
- Joined: Mon Mar 02, 2015 3:58 pm
Re: Getting the 8bitdo SFC30 to work with FreePie?
I am not sure all XInput is seen by the plugin as XBox360 controller... What is wrong with using joystick[]?
- Moromillas
- One Eyed Hopeful
- Posts: 8
- Joined: Wed Sep 23, 2015 7:31 pm
Re: Getting the 8bitdo SFC30 to work with FreePie?
Well, there's nothing wrong with it. It works fine, for the SFC30.
I figured it's a good idea to get it working for other 8bitdo controllers.
Some of them have 2 joysticks and a dpad, and joystick[] only has the one x and y.
I figured it's a good idea to get it working for other 8bitdo controllers.
Some of them have 2 joysticks and a dpad, and joystick[] only has the one x and y.
-
- Cross Eyed!
- Posts: 197
- Joined: Mon Mar 02, 2015 3:58 pm
Re: Getting the 8bitdo SFC30 to work with FreePie?
joystick[] supports as many axes as Windows does, they are only named differently (rz, xRotation, sliders[0] etc.). It also supports the hat (which some controllers map the dpad to).
- Moromillas
- One Eyed Hopeful
- Posts: 8
- Joined: Wed Sep 23, 2015 7:31 pm
Re: Getting the 8bitdo SFC30 to work with FreePie?
Ah, I didn't know joystick[] could do that, I've not used it before, just xbox360[].
I also found the location of the proper names of the joysticks, from a post you made 4 years ago.
Thanks for that.
It's in:
HKEY_CURRENT_USER\System\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\OEM\
somewhere.
But, all the controllers, they're all named "Bluetooth HID Port" under OEMName.
Fortunately, you can just modify that to whatever name you like. So you modify one of them. Then test if that's the controller you're trying to program for.
I also found the location of the proper names of the joysticks, from a post you made 4 years ago.
Thanks for that.
It's in:
HKEY_CURRENT_USER\System\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\OEM\
somewhere.
But, all the controllers, they're all named "Bluetooth HID Port" under OEMName.
Fortunately, you can just modify that to whatever name you like. So you modify one of them. Then test if that's the controller you're trying to program for.
-
- Cross Eyed!
- Posts: 197
- Joined: Mon Mar 02, 2015 3:58 pm
Re: Getting the 8bitdo SFC30 to work with FreePie?
If you type in „joystick[0].” you get the autocompletion list, so you can check out what properties and methods the given entity has. Unfortunately, it does not work with joystick names.
I am glad that you find that info useful. freePIE is so useful (and fun) for me, that I try to help any way I can. Alas, I am not much of a programmer...
I am glad that you find that info useful. freePIE is so useful (and fun) for me, that I try to help any way I can. Alas, I am not much of a programmer...