-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Trying to add support for Keyboardmania #52
Comments
By glance, looks like it should work. The thing seems to be button mapping. DInput dialog maps C1 to button 10 (IDC_ASS10), I think, but C1 is first bit so button id should be IDC_ASS0. Looks like you already listed the buttons in ascending order from C1, just move Start (between F#2 and G2) etc And maybe custom control check like with Buzz |
Oh right, that makes sense. The custom control check was the missing piece. Otherwise only 12 buttons will be added. All buttons are working now 👍 Do you how I can add passthrough support? |
I guess it is kind of annoying currently because it's pretty hardcoded for wheels. But probably add "Pass-through" check box to config dialog, check if it is keyboardmania device ( If you want to merge it back then rebase it on |
Ok, I didn't quite understand what I specifically need to do before The connected controller shows in the device list now, and checking the Logitech pass-though checkbox now definitely does something. Mapping is not correct though. Most buttons do nothing, those that do are incorrect, and multiple simultaneous keypresses map to single keys, so I'm guessing the hex data is not forwarded properly. |
Rebase, not merge ;) Gives nicer commits.
I meant, maybe if it tries to find kbdmania there automatically so then there's no need to select it manually from config dialog. And probably
Have to think why it doesn't work with pass-through. One thing's that the queue gets filled up quicker than game reads input. |
Allright. Rebase version 😁: develop...aleksre:Keyboardmania-rebase Not sure if it helps, but I noted down some of the current mappings There are many multiple-to-single mappings. A few of them are:
I don't know if I agree with this. As a user I would expect a connected controller to show up there. This also gives me confidence that it is actually detected. In addition, if I have 2 controllers connected I should be able to choose which controller is mapped to which player. |
Hi. I'm currently trying to add support for the Keyboardmania controller to USBqemu, but because I am a noob when it comes to both C programming and HID devices in general I think I need some help.
I have added the basics to support the controller in my branch here master...aleksre:Keyboardmania and it is currently partially working. Keys C1 - A#1 work, (the first 11 keys). The rest of the keys and buttons don't.
About the controller:
The controller has buttons start, select, wheel up, wheel down, and 24 keys (28 buttons total), All are digital on/off buttons.
LilyPad diagnostics reports that the first 6 buttons (Button 57 - 62) are pressed at all times. Button 0 - 25 are used by the keys. The exceptions are button 13 and 20 which are used by select and start respectively. Button 26 and 27 are wheel up and wheel down. Analogue Y and X axis is also present in the diagnostics but these just stay idle at 0.5 (there is no analogue device on the controller).
Dump of all keypresses: (Using Simple HID Write)
I'm guessing part of the problem is
case WT_KEYBOARDMANIA_CONTROLLER:
in usb-pad.cpp. But the actual mapping has been trial and error up until this point so there could be things I'm missing there as well.In addition to DInput, I would also like to add support for RawInput with passthrough to use the official controller without mapping anything. This is mainly because manual key mapping using the controller is basically impossible with 6 buttons constantly pressed down. I have no idea what is needed to support this though.
Thanks
The text was updated successfully, but these errors were encountered: