Main > Raspberry Pi & Dev Board

Getting Ultimarc Ultrastik 360 Joysticks to work on RetroPie 4.5.1

<< < (2/2)

cg_tophat:

--- Quote from: J_K_M_A_N on April 21, 2020, 05:36:39 pm ---Sorry. I forgot, I used the USB connection in Input mode so it is its own joystick. I forget that it can connect to an ipac in output mode. :( USB was easier for me. I also used the buttons in input mode since mine was just a bartop with not a lot of buttons needed. I also don't have RGB buttons so I am not sure how it might affect those.

J_K_M_A_N

--- End quote ---

Thanks. Yeah - it looks like I'm going to go input mode on this bad boy. It stinks to do the work - but glad there's a solution?

DJO_Maverick:
This gave me fits when I was getting set up, I had to piece the info together from multiple places as well.  You should definitely use the 360 in input mode, connected by USB, so you can take advantage of the buttons and remapping feature.  Also, this is easier if you have the Pi set up to just samba into with Notepad+ from a PC.  Also, this is assuming you're wanting to use buttons hooked up through the IPAC; last step might be slightly different if chained through the U360 itself.

First, I'd advise plugging in a real gamepad initially just as a crutch to get past the initial setup screens and to navigate the UI.  This will also ensure there's a populated es_input.cfg you can follow (and yes, you can have multiple inputs in that).  THEN you can pursue the real fix, which is obscure, but not hard.  Getting the GUID was the hard part.  At one point in your post it said you had your GUID, then another it said you didn't know the GUID of the U360; if you don't, I can probably help you there too.

First: If you didn't already, if you have multiple U360s, make sure you plug them into a Windows box with that software to change their internal IDs to different numbers.  Make sure the one you want to primarily use is set to Stick 1 ID.

Second: Go to retropie\configs\all\retroarch-joypads

If it does not exist yet, create a file called "Ultimarc UltraStik Ultimarc Ultra-Stik Player 1.cfg"
Contents will be:
input_device = "Ultimarc UltraStik Ultimarc Ultra-Stik Player 1"
input_driver = "udev"
input_up_axis = "-1"
input_down_axis = "+1"
input_right_axis = "+0"
input_left_axis = "-0"

Rinse and repeat for any additional 360s, changing the player number to match their IDs.

Third: Open retropie\configs\all\emulationstation\es_input.cfg

Add:
  <inputConfig type="joystick" deviceName="Ultimarc UltraStik Ultimarc Ultra-Stik Player 1" deviceGUID="YOURGUID">
    <input name="up" type="axis" id="1" value="-1"/>
    <input name="down" type="axis" id="1" value="1"/>
    <input name="left" type="axis" id="0" value="-1"/>
    <input name="right" type="axis" id="0" value="1"/>
  </inputConfig>

With YOURGUID replaced as appropriate; again, rinse and repeat for any other U360s.  Based on what I've seen, the P1 stick is very likely 0300000009d200001105000011010000.  Then ALSO add:

  <inputConfig type="keyboard" deviceName="Keyboard">
    <input name="a" type="key" id="13" value="1"/>
    <input name="b" type="key" id="27" value="1"/>
    <input name="y" type="key" id="54" value="1"/>
    <input name="x" type="key" id="50" value="1"/>
    <input name="start" type="key" id="9" value="1"/>
    <input name="select" type="key" id="112" value="1"/>
  </inputConfig>

Doing this will map A to Enter, B to Escape, Y to 6, X to 2, Start to Tab, and Select to F1.  I did it this way to match the system buttons on my CP ('Launch' to Enter, 'Exit' to Escape, 'Menu' to Tab, etc), but you can assign those buttons to any keyboard keys you want.  You can look up key IDs at https://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes

Finally, you can delete the block that has to do with the gamepad from the file before you save it, then unplug it and restart.  You should then be able to navigate ES with the 360 and use your CP buttons.

My build uses similar parts and is also on a 3B+, and it will work great when you're done with it; this was definitely one of the more obnoxious parts of setup.

Owillingham:

--- Quote from: DJO_Maverick on May 07, 2020, 10:52:10 pm ---This gave me fits when I was getting set up, I had to piece the info together from multiple places as well.  You should definitely use the 360 in input mode, connected by USB, so you can take advantage of the buttons and remapping feature.  Also, this is easier if you have the Pi set up to just samba into with Notepad+ from a PC.  Also, this is assuming you're wanting to use buttons hooked up through the IPAC; last step might be slightly different if chained through the U360 itself.

First, I'd advise plugging in a real gamepad initially just as a crutch to get past the initial setup screens and to navigate the UI.  This will also ensure there's a populated es_input.cfg you can follow (and yes, you can have multiple inputs in that).  THEN you can pursue the real fix, which is obscure, but not hard.  Getting the GUID was the hard part.  At one point in your post it said you had your GUID, then another it said you didn't know the GUID of the U360; if you don't, I can probably help you there too.

First: If you didn't already, if you have multiple U360s, make sure you plug them into a Windows box with that software to change their internal IDs to different numbers.  Make sure the one you want to primarily use is set to Stick 1 ID.

Second: Go to retropie\configs\all\retroarch-joypads

If it does not exist yet, create a file called "Ultimarc UltraStik Ultimarc Ultra-Stik Player 1.cfg"
Contents will be:
input_device = "Ultimarc UltraStik Ultimarc Ultra-Stik Player 1"
input_driver = "udev"
input_up_axis = "-1"
input_down_axis = "+1"
input_right_axis = "+0"
input_left_axis = "-0"

Rinse and repeat for any additional 360s, changing the player number to match their IDs.

Third: Open retropie\configs\all\emulationstation\es_input.cfg

Add:
  <inputConfig type="joystick" deviceName="Ultimarc UltraStik Ultimarc Ultra-Stik Player 1" deviceGUID="YOURGUID">
    <input name="up" type="axis" id="1" value="-1"/>
    <input name="down" type="axis" id="1" value="1"/>
    <input name="left" type="axis" id="0" value="-1"/>
    <input name="right" type="axis" id="0" value="1"/>
  </inputConfig>

With YOURGUID replaced as appropriate; again, rinse and repeat for any other U360s.  Based on what I've seen, the P1 stick is very likely 0300000009d200001105000011010000.  Then ALSO add:

  <inputConfig type="keyboard" deviceName="Keyboard">
    <input name="a" type="key" id="13" value="1"/>
    <input name="b" type="key" id="27" value="1"/>
    <input name="y" type="key" id="54" value="1"/>
    <input name="x" type="key" id="50" value="1"/>
    <input name="start" type="key" id="9" value="1"/>
    <input name="select" type="key" id="112" value="1"/>
  </inputConfig>

Doing this will map A to Enter, B to Escape, Y to 6, X to 2, Start to Tab, and Select to F1.  I did it this way to match the system buttons on my CP ('Launch' to Enter, 'Exit' to Escape, 'Menu' to Tab, etc), but you can assign those buttons to any keyboard keys you want.  You can look up key IDs at https://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes

Finally, you can delete the block that has to do with the gamepad from the file before you save it, then unplug it and restart.  You should then be able to navigate ES with the 360 and use your CP buttons.

My build uses similar parts and is also on a 3B+, and it will work great when you're done with it; this was definitely one of the more obnoxious parts of setup.

--- End quote ---


I'm looking to buy an ultrastik for player 1 so that it can be configured for both 4way and 8way games, but also on a 45 degree slant for games like q-bert and congo-bongo.  Before I buy one, can you explain how to set the rpi to autmatically change the joystik mappings for whicher game type needed (eg to automatically switch from 8way after playing street fighter to 4way 45degree slant when launching q-bert) as I can't find this info anywhere for rpi and its a lot of money to spend on something I can't configure correctly.  Thanks

Navigation

[0] Message Index

[*] Previous page

Go to full version