Getting the WolfWare Howler Controller to work with RetroPie
-
Good Morning Folks!
My hope is that by the end of this thread, I'll have a process for getting the WolfWare Howler board to function with RetroPie. I've been trying to get this to work for a few days now, and haven't had much luck, so I'm reaching out for folks that have a little more experience with how EmulationStation functions in detecting input devices.
To preface this, I'm a Network Systems guy by trade, and know my way around a command prompt. Used to be really big into the BSD scene, but these days do mostly Win and Mac, so I may not know all the nooks and crannies of Linux, but I'm still perfectly capable of doing "stuff". Also, I need to apologize as I can't seem to figure out this forum's <code>? [code]? tag syntax. . . (will edit if someone can please point me at that.) I've read all the "Xin Mo" threads too, since that seems the closest parallel, but although that pointed me at a couple items, in the end, EmulationStation still refuses to recognize the Howler controller.
So, first off, the WolfWare Howler is a "standard" HID Multi Player (4 joysticks), Multi Button (26 button) controller with built in LED drivers for those really fancy installs. It's worked great in Windows for a long time, but now I'm building a portable unit, and thought RetroPie would be the perfect way to make this happen in a small form factor. I don't immediately expect to get the two way LED functionality working, but the standard HID input seems to work fine to a point, but not with EmulationStation (see below).
Upon plugging it in, dmesg reports this Howler dmesg
Taking that info, I added some udev rules for the Howler and now cat /proc/bus/input/devices lists handlers as "joysticks" at /dev/input/js0 and /dev/input/js1 (so many buttons!)
cat /proc/bus/input/devices output
and jsttest /dev/input/js0 outputs stuff that looks correct when I press buttons
snippet of jstest js0 with buttons 1, 2 and 3 connected
Shows me pressing buttons 1, 2 and 3 (all I have wired at the moment).
However, EmulationStation fails to recognize this as an input device no matter how I try. (I've attempted to assign it into keyboard as well, and that didn't work even though EmulationStation does recognize a "keyboard"). I guess I'm not sure if EmulationStation is iterating through all available js* devices, or if there is a list of "approved" controllers somewhere that I've not been able to find. (I did search, and have read through all the input/config scripts I can find, but to no avail.)
Hoping someone can point out my (probably silly) error, and I can continue the build. FYI, this is a Pi 2B with an SD Image of RetroPie 3.7 that I've "Binary Updated" from the RetroPie interface, so I believe it to be pretty current.
Thanks much,
Fireball
-
So, I found a bit more info today, or at least I thought I had. Been digging through the threads about connecting the 8bitdo controllers, and some great config advice there, however I've still got no joy in getting the howler boards recognized by EmulationStation.
Can't find anything in /opt/retropie/supplementary/emulationstation/scripts/inputconfiguration.sh
tried to manually edit /opt/retropie/configs/all/emulationstation/es_input.cfg with appropriate info. . . (just results in a "no gamepad detected message")
I'm going to call it a day, but will check back tomorrow.
-
Please use pastebin or equivalent for logs
-
done that, and thanks for clarifying that there's no <code> tag in this forum.
Still looking for someone who actually knows how EmulationStation decides what is an input device or not, and I think this is relevant to everyone who's trying to get one of the "non-standard" controllers to work. (it's not as simple as just having a js0 / js0 device available. . .)
-
@Fireball there is. Read the markdown docs. Three backslashes like on github
-
So, I read through the EmulationStation source today, and found that it's SDL only (evdev API). This means /dev/input/event* hooks, not the old /dev/input/js*, so what I'm seeing is not surprising. (although I guess I'm showing my age a bit. . .)
I know there are event0, event1 hooks created in association with the Howler, but I'm not familiar enough with evdev to know what I'm looking at yet. I also think I need to install the whole SDL development branch in order to get low level tools for diagnostics (they're not in the RetroPie image), so I'm setting that to compile and heading to bed.
As always, if anyone knows more, I'd appreciate any insight.
-
Well, you sure are taking the fundamental approach here, and I applaud your tenacity.
Before you dive into a quest to fully understand / fix ES, did you try to get the controller to work in retroarch? The way I understand it happens is that ES simply offers some (limited) controller configuration script, which it then feeds into retroarch. This simplifies the setup for a lot of people, but maybe not in all cases.What I am trying to say, getting the controller to work in ES might just be the first hurdle, getting it to work in retroarch might be another (or no issue at all, who knows). And ultimately, retroarch is the most important of the two to get working IMHO.
-
I'm resurrecting this post to let everyone here, interested on getting the Holder LEDs working on a Linux based system like rpi or PC, know that I finished a driver, for more information go here
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.