First time poster and first time cab builder, so apologies if I'm asking a stupid new question. I've done a bunch of pre-research (that I'm linking below) before posting here. I'm also going to try to give more details so if some other poor fool with the same problem comes looking hopefully this thread is a collection of research/answers. I'm running:
RPI3B+
Official RetroPie 4.5.1 image
Ultimarc IPAC Ultimate I/O Board
4x Ultimarc Ultrastik 360
Current layout is 4 player, 6 buttons playable, 1 start, 1 coin (total 8 x 4, all ultimarc RGB goldleaf)
I bought the above under the impression that the Ultimarc inputs all worked fine in Linux (which they technically do - and they are so far great products), but I'm hitting the problem a lot of people in this, and other subs, seem to hit which is that EmulationStation requires that the input device (the joystick) have a button to be detected. I've considered just rigging a button to the Joystick, but then I would lose the nerd cred of having it light up through the Ultimate I/O board which my vanity will not allow me to forgo at this point.
In tackling the issue I needed to establish a few things: 1) Does the Joystick work? 2) Does the RPI3B+ detect the Joystick at all? 3) Can I remap EmulationStation key mappings outside EmulationStation and then log back in with the working setup? 4) Am I thinking about the problem incorrectly? 5) Should I just pursue a windows box?
1) Does the Joystick work?Yes. I plugged it in to a windows machine which detected it happily.
2) Does the RPI3B+ detect the Joystick at all?Yes (short answer).
I found this post from the group:
https://www.reddit.com/r/RetroPie/comments/7g4g9o/ultrastik_360_config_for_emulation_station/?utm_source=amp&utm_medium=&utm_content=post_bodyThis link notes the same set of issues and asks if the Joystick is detect. jstest will detect joysticks. Tested via jstest. Shows up with the name "Ultimarc Ultra Stik Ultimarc Ultra-Stik Player 1".
Embedded in the comments is a note about potentially being able to alter the es_config file to point to the JoystickAlso - followed the link in the post to find the GUID and installed jstest-sld (which allows you to get the GUID for the joystick):
https://retropie.org.uk/forum/topic/14661/beboncool-controller-bluetooth-issues/5I got my GUID and the name.
3) Can I remap EmulationStation key mappings outside EmulationStation and then log back in with the working setup?So in the same reddit thread above the following note is made:
columboscoat3 points·2 years ago·edited 2 years ago
Yeah easy enough to do. The only thing you will struggle to get is the GUIDfor the joystick. Install this little script that u/mitu has linked and it will give you all the info you need.
https://retropie.org.uk/forum/topic/14661/beboncool-controller-bluetooth-issues/5So your entry will look something like this.<inputConfig type="joystick" deviceName="NAME EXACTLY AS IT APPEARS" deviceGUID="YOUR DEVICE GUID"><input name="up" type="hat" id="0" value="1"/><input name="down" type="hat" id="0" value="4"/><input name="left" type="hat" id="0" value="8"/><input name="right" type="hat" id="0" value="2"/></inputConfig>
So, this is the real crux of my issue - can I have multiple inputConfigs in the es_input.cfg?
Something like (pseudocode since I'm kind of making this up as I go):
<inputConfig type="keyboard" deviceName="keyboard" deviceGUID="-1">
<input name="button1" type="key" id="0" value="0"/>
<input name="button2" type="key" id="0" value="0"/>
<input name="button3" type="key" id="0" value="0"/>
<input name="button4" type="key" id="0" value="0"/>
<inputConfig type="joystick" deviceName="NAME EXACTLY AS IT APPEARS" deviceGUID="YOUR DEVICE GUID">
<input name="up" type="hat" id="0" value="1"/>
<input name="down" type="hat" id="0" value="4"/>
<input name="left" type="hat" id="0" value="8"/>
<input name="right" type="hat" id="0" value="2"/>
</inputConfig>
And if I do have multiple inputConfigs can I - load up RetroPie, bind to a normal keyboard, then go to the command line and hand edit the cfg to recognize the Joystick and the Ultimarc (as I'm writing this I just realized that I don't know anything about the Ultimarc's GUID or input information)? Does that work?
4) Am I thinking about the problem incorrectly?More of a philosophical question, but am I overthinking this?
5) Should I just pursue a Windows box?Sigh.
Thank you everyone that takes a look at this thread. I've really tried to do my diligence on it and have spent the last two days digging through old forum posts from the past 4 years. This is the best line that I currently have on it. Any advice would be very well appreciated. Thank you in advance!!!