Yet another Xin-Mo 2 Player Installation question Retropie 3.6/ Pi 3B
-
I know a lot of people have asked about this USB arcade set, but I haven't found a solid working guide. I was able to have Retropie detect both Joysticks and all 16 buttons by following the first step in https://github.com/retropie/retropie-setup/wiki/Xin-Mo-Controller
"Add the following to /boot/cmdline.txt (just add a space to the existing entry so its all on one line)
usbhid.quirks=0x16c0:0x05e1:0x040 "However, now I am having issues. JStest shows all buttons working and both joysticks working. However, when I configure then in the GUI in retropie, upon configuring the second player, the first player's buttons lose their mapping. Its strange, I'll start a two player game like mario all stars for example and 2nd player will work fine and 1st players buttons don't work. The joystick however still works. If I reconfigure 1st player, then 2nd player loses its mapping. It's just a back and forth.
So I followed this site and installed the kernel:
However, this froze my pi 3B and I had to reinstall.
So, with nowhere to turn, I come back here to bother you all. Is there a definitive way to config all or most of the emulators together to register all the buttons for the Xin- Mo? If so, I may need some real hand holding through this.
I can open up the config file and see what is there... but it doesn't show two joysticks. Is there something I can put in there replacing the text currently there that will set this straight? I did take a screenshot of the text in the controller's cfg file if that helps, however haha I don't know how to upload pics to the forum...
Yes, I am a NOOB.
Thanks in advance. I have had a ton of help and finally got most everything else sorted out, so I do really mean it when I say you guys have been great.
-
I'm at that point where I am considering just purchasing a second Xin-Mo USB board and thus running each set of controls to a separate board. Any other recommendations?
-
My settings in retroarch:
input_device = "THT THT Arcade console 2P USB Player"
input_driver = "udev"
input_l2_btn = "4"
input_start_btn = "7"
input_exit_emulator_btn = "7"
input_up_axis = "-1"
input_a_btn = "2"
input_b_btn = "0"
input_reset_btn = "0"
input_down_axis = "+1"
input_r2_btn = "5"
input_right_axis = "+0"
input_state_slot_increase_axis = "+0"
input_x_btn = "3"
input_menu_toggle_btn = "3"
input_select_btn = "6"
input_enable_hotkey_btn = "6"
input_y_btn = "1"
input_left_axis = "-0"
input_r2_btn = "5"
input_right_axis = "+0"
input_state_slot_increase_axis = "+0"
input_x_btn = "3"
input_menu_toggle_btn = "3"
input_select_btn = "6"
input_enable_hotkey_btn = "6"
input_y_btn = "1"
input_left_axis = "-0"
input_state_slot_decrease_axis = "-0" -
My Xin-Mo was giving me hell and I searched and searched. On my 2 there was a kernel patch that worked but on my 3 it was too tricky. I found this site and followed these steps and my Xin-Mo is working great now on my Pi3.
https://gameroomsolutions.com/raspberry-pi-3-retropie-setup-easy-guide/
I have avoided going in to the retropie retroarch settings all together and make changes as needed in the retroarch.cfg file itself. So far this solution has worked the best for me.
-
@dthree36 hey dude, i need some help. I've got the Pi 3 with RetroPie 3.6 (i could change to 3.7 if it's necessary ).
I've got the THT THT Arcade console 2P USB Player like your, but i can't make it work as 2 controllers separatedly.
For example in Super Mario War i can use only 1 THT console for 1 player, and for the player 2 i'm forced to use the keyboard.
I managed to get it work with Street Fighters II (Snes) but the Joysticks controlls both players (if i move to left the 1° joystick then both Ryu and Ken moves to left) however i can use buttons separatedly.Any clue on how to fix this situation? I'm driving crazy, i don't know where to find the solution.
I've even included the usbfix in the cmdline.txt and still nothing.
I've modified RetroArch settings and nothing.
I'm dead inside. -
Hi at all!
I got the same problems and i can't configure my "THT THT Arcade console 2P USB Player" Arcade Controls...only for one Player (not two).
Need help for my raspberry pie 3 (retropie 3.8.1).
THX
-
@jimd0586
Hi, jimd0586I have the same problem as you has in this post, did you ever get it sorted? Have you got it working? If so how?
Your advice would be appreciated
Thanks
-
@jimd0586 After a lot of search it seems this THT interface need a kernel modification which is apparently not available for the Pi3 and Retropie 4, so I switched to a real Xin Mo and it works great by just adding the line as described in the wiki and input the both gamepads detected in the emulation station controller config menu
-
did anyone resolve this? Having the same issues. Fairly certain I Have an official xin mo board. Bought from Ultracabs and when checking numbers using the wiki my part numbers match so not sure why the usbhid.quirks fix isn't working for me...?
-
The problem you are experiencing with overwritten controls is that ES seems to use the same identifier when writing out the configuration of both joysticks in its configuration file. Hence, one of the configurations is lost and ES reads the same one for both sticks. This is due to the quirky nature of the Xin-Mo board (and probably because ES needs to be improved in this area).
The solution is to make sure that the controls of both joysticks are wired in exactly the same way. That includes both joystick directions and buttons. The jstest command is very useful for this.
Here'so how I did it:
-
set quirks mode in boot file as described in some earlier posts and reboot. This is needed so ES will treat the Xin-Mo board as a dual stick set.
-
Unplug all the connections from the board (if you had them wired already), except for the ground terminals
-
go to the command line and run "jstest /dev/input/js0". This will run the joystick test tool interactively for the first joystick
-
connect the player 1 joystick control socket to the board (if you look at the board with the USB port upwards, the stick should go in the pin array to the right - refer to the printed layout that comes with the board. Check that the stick is working by looking at the output of jstest. You may have to unplug and replug your crimp terminals to get it right. As a convention, I like to map them as follows:
Left: axis 0 negative value
Right: axis 0 positive
Up: axis 1 negative
Down: axis 1 positive -
connect the player 1 buttons one by one and make sure they are in some specific order. I like to assign 0 to 5 for the six fire buttons, 6 and 7 for the select and start buttons. Note that on this board, player 1 has only 10 buttons whereas player 2 has 12. Note also that since the wiring is bunched in sockets of 4 holes each, it is not practical to attach to the actual ST and SE pins (buttons 8 and 9) because the board comes with only one wire with a 2-hole socket. I prefer to connect this to the lower left ground pins and use it to ground both joysticks. Finally, also note that I assume six fire buttons but your setup may vary. If you have more, then the Xin-Mo may not be the best choice or you may need a secondary board.
-
when you're done with the first joystick, press CTRL-C to stop the jstest tool and rerun it for the second stick by entering "jstest /dev/input/js1"
-
repeat steps (4) and (5) for the second stick, keeping the same convention including axis values and button order. This is very important ( it's the point of the whole procedure)
-
if you have additional controls like side buttons for pinball games, you can use player 2 buttons 8 to 11. What matters is that buttons 0-7 are wired the same for both sticks.
-
start ES, go to the configuration menu and configure the sticks. You need only set buttons A, B, X, Y, Left trigger, RIghtf trigger, Select and Start. For the second stick you can include the additional buttons in step (8)
Good luck, I hope that helps!
-
-
As @colinvella stated, you need the buttons wired up the exact same on both players. In emulationstation only set up 1 player. Reset emulationstation. Both controllers will be set up. But it is important you wire both controllers identical.
-
Hi there!
I'm only replying here to give you the solution I found to get my THT THT 2 Player Encoder working on Raspberry PI3, and Retropie 4.3.
I can say the usbhid.quirks=0x16c0:0x05e1:0x040 command didn't work for me and after hour and hour of trying I opened the cmcline.txt via the retropiecd /boot/
sudo nano cmdline.txtBefore that I did it only by pulling out the sd card putting in to my pc, changing the cmdline.txt with the windows editor with one space at the end of the line and....... Never worked...
After I took a look in the cmdline.txt via retropie I saw that the "usbhid.quirks=0x16c0:0x05e1:0x040" had two spaces between the last command and was also in the second row of the file. I wonderes an changed it. Bam! That was it! Now 2 Gamepads are detectet and eveything is fine for me. May someone will have the same issue with the cmdline.txt file without recognizing it.
Have a nice christmas!
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.