Both joysticks controlling both players in P2 game
-
Maybe worth saying that my controller.cfg file just seems to refer to 1 input as below.
input_device = "xin-mo.com Xinmotek Controller"
input_driver = "udev"
input_l_btn = "4"
input_load_state_btn = "4"
input_start_btn = "8"
input_exit_emulator_btn = "8"
input_down_axis = "+1"
input_r_btn = "5"
input_save_state_btn = "5"
input_right_axis = "+0"
input_state_slot_increase_axis = "+0"
input_select_btn = "9"
input_left_axis = "-0"
input_state_slot_decrease_axis = "-0"
input_up_axis = "-1"
input_a_btn = "0"
input_b_btn = "1"
input_reset_btn = "1"
input_enable_hotkey_btn = "8"
input_x_btn = "2"
input_menu_toggle_btn = "2"
input_y_btn = "3" -
Solved it! The issue was with getting the Xin-Mo board to be detected as 2 gamepads. Thanks for the link on your reply @mitu
I got a lot of help from this link also https://blog.petrockblock.com/forums/topic/how-to-get-xin-mo-dual-arcade-working-with-retropie-easy-guide/page/2/, but please be wary that it is old and the changing of the kernel is not required for a Pi 3. It will brick the pi.
The process I used was as follows:
Exit emulationstation (F4)
Type lsusb to show the usbhid of your Xin-Mo controller. Note the usbhid of your controller. Mine was 0x16c0:0x05e1:0x040
Type sudo nano /boot/cmdline.txt
Move to the end of the line, press space, then add usbhid.quirks=0x16c0:0x05e1:0x040. If your usbhid is different then use your reference. Do not press enter or move to 2 lines in any way.
Save the cmdline.txt file
If you have already tried to configure a gamepad, then delete these files using sudo rm /home/pi/.emulationstation/es_input.cfg
Type: rebootThen, when emulationstation starts again you will first be able to configure gamepad 1 (pressing one of the P1 buttons), and then go back in and configure P2 by pressing one of the P2 buttons.
Finally, you'll need to configure in retroarch. I had already done this so thought it was fine but the Select and Start P2 buttons didn't work. The solution was to reconfigure User 2 in retroarch, noting that there are now 2 Xin-Mo options under Device Index and User 2 needs to use the second one of these.
-
@herts101 said in Both joysticks controlling both players in P2 game:
I got a lot of help from this link also https://blog.petrockblock.com/forums/topic/how-to-get-xin-mo-dual-arcade-working-with-retropie-easy-guide/page/2/, but please be wary that it is old and the changing of the kernel is not required for a Pi 3. It will brick the pi.
That link is the source material for the page in the Docs that I mentioned, only the configuration (i.e. adding the
usbquirks
module option) is required with the current release. Glad you got it working. -
@mitu Thank you. Only remaining issue I can see is that the L1 and L2 buttons no longer page down the rom lists.
Is there something else I need to do to update the config for this to work?
Thank you so much for the help.
-
@herts101 Restart Emulationstation, should work.
-
I’ve restarted and still no luck. Any other ideas?
Thank you.
-
@herts101 I don't have any other ideas, I noticed that after first configuring the gamepad the L/R triggers don't work, but they work after ES restarts. Can you paste the output of the
~/.emulationstation/es_input.cfg
file ? This is where Emulationstation stores the mapping for gamepads. -
Thank you. File shows the following:
<?xml version="1.0"?>
<inputList>
<inputConfig type="joystick" deviceName="xin-mo.com Xinmotek Controller" deviceGUID="03000000c0160000e105000010010000">
<input name="a" type="button" id="0" value="1" />
<input name="b" type="button" id="1" value="1" />
<input name="down" type="axis" id="1" value="1" />
<input name="hotkeyenable" type="button" id="8" value="1" />
<input name="left" type="axis" id="0" value="-1" />
<input name="leftshoulder" type="button" id="4" value="1" />
<input name="right" type="axis" id="0" value="1" />
<input name="rightshoulder" type="button" id="5" value="1" />
<input name="select" type="button" id="8" value="1" />
<input name="start" type="button" id="9" value="1" />
<input name="up" type="axis" id="1" value="-1" />
<input name="x" type="button" id="2" value="1" />
<input name="y" type="button" id="3" value="1" />
</inputConfig>
</inputList> -
@herts101 Hm, this looks a bit different than the one I have. Try replacing
leftshoulder
withpageup
andrightshoulder
withpagedown
in the file.
My configuration file looks like this (it's a SNES type gamepad) and has the pageup/pagedown functionality using the shoulder buttons.<inputConfig type="joystick" deviceName="USB,2-axis 8-button gamepad " deviceGUID="03000000830500006020000010010000"> <input name="pageup" type="button" id="4" value="1"/> <input name="start" type="button" id="7" value="1"/> <input name="down" type="axis" id="1" value="1"/> <input name="pagedown" type="button" id="5" value="1"/> <input name="right" type="axis" id="0" value="1"/> <input name="select" type="button" id="6" value="1"/> <input name="left" type="axis" id="0" value="-1"/> <input name="up" type="axis" id="1" value="-1"/> <input name="a" type="button" id="0" value="1"/> <input name="b" type="button" id="1" value="1"/> <input name="x" type="button" id="2" value="1"/> <input name="y" type="button" id="3" value="1"/> </inputConfig>
-
Brilliant. Words perfectly. Thank you once again.
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.