Autofire on the axis

This topic contains 277 replies, has 69 voices, and was last updated by  janmilpol 1 year, 9 months ago.

Viewing 35 posts - 1 through 35 (of 278 total)
  • Author
  • #87596


    Hey, I was wondering if anyone has had issues where the autofire seems to be turned on for the axis of a directional pad.

    I installed RetroPie on a Pi 1 a while back and have loved it. This weekend I gave myself the project of getting it going on my new Pi2. So started from a backup of my current install. Updated completely. The issue I have is that the directional pad appears to autofire. As in if I hold down the direction it looks like I’m hitting it rapidly. This behaviour is plainly seen when I run jstest –event /dev/input/js0. It quickly fills the screen with events as the axis goes from 0 to 32676 and back.

    Has any one seen this before. I plug the controller into my Pi1 and jstest gives me a constant 32676 as it’s pressed.




    Same thing is happening to me with a THT / Xinmo arcade stick.


    RPI2 – 2.5 – Slow Down EM toggling??

    And here

    Joystick sending multiple actions with a single click? (2.4.2)

    What joystick are you using??
    If it’s not the THT, this is good news… As its to do with the new image + rpi2 latest kernel/update.

    What’s your controller??



    I am using a genesis controller attached to a retrobit Genesis to USB adapter.

    I think I figured it out. Or at least I found something that worked for me. I suppose I should spend some more time testing but I’ll post what I’ve done anyway. This does involve compiling the kernel. Which I had to do anyway to get my controller working.


    Retrobit USB Genesis Adapter Driver Install?

    Here is a link to the code that was put in, that I removed to make it work.

    In short, find the following lines

    if (field->flags & HID_MAIN_ITEM_RELATIVE)
    	map_rel(usage->hid & 0xf);
    	map_abs_clear(usage->hid & 0xf);

    And remove them, and then recompile.

    If you don’t want to compile, I can probably post my compiled package for you. It was created using Adafruit’s Kernel-o-Matic.

    You may just not want the other change I made, which can be seen in the first link I posted.



    Having the exact same issue with a Xin-Mo Dual USB controller, my Pi knowledge is certainly lacking a little but this seems quite manageable, if it isn’t too much trouble and seeing only as it was mentioned would it be too much hassle for you to post the updated compiled Kernel feederchain?




    Here is a link to my custom kernel.

    It has both of the fixes mentioned. The Left and down buttons not working, and the “auto fire” on the directional pad.

    I can’t say this has been thoroughly QA tested, but I haven’t seen any issues since installing it. They appear to be rather minor changes.

    So use at your own risk. Back up πŸ™‚

    Anyway. You should just have to place this somewhere on your Pi, however you do that.

    tar xf custom_kernel_1.20150216-1.tar.gz
    cd custom_kernel_1.20150216-1
    sudo ./

    As said this was created with Adafruit’s Kernel-o-Matic. It appears to make backups and such of your current setup, but I have never needed to revert anything.

    I really hopes this helps.



    Worked perfect Mate, however It has developed a small problem on my XinMo after replacing it with the modded Kernel, the Autofire issues is gone, but now for some odd reason hotkeys aren’t working on the controller , any ideas at all ?

    EDIT: Please ignore me, It is intact working perfectly, thank you very much feeder !




    Glad to here it!



    I just updated with instruction listed as well and all is working with my xim mo dual. Awesome job guys.



    Wow! Thank you feederchain, this has corrected my autofire problem. I am so thankful for your help!



    Just out of curiosity guys, are any of you experiencing any problems setting up the second player configuration in the controller file for the Xin Mo Dual ? I have searched high and low for the answer and tried everything I can think of and just cannot get it to work.




    I don’t actually have one of those, so I don’t think I can be much help. Sorry.



    Yes this fixes the 2nd player joystick not working.




    I have downloaded and applied the kernel patch to my pi2 retropie 2.6 image and it has fix my Xin Mo multiple input problem – thanks very much πŸ™‚

    However I cannot get the Xin Mo to be seen as two joysticks in piFBA, is there something else I need to do?

    When I use jstest it shows as one joystick with 4 axis and 22 buttons on /dev/input/js0.

    In MAME I can map the two joysticks and buttons how I like and play two player games, in piFBA I cannot.

    Any help is greatly appreciated….




    Having a similar issue myself still mate, cannot regardless of which combination I try get player 2 (or 1) to work in retroarch emulators. For some reason when I add in the prefix”player1″ or”player2″ retroarch then seems to ignore all input from these buttons and Joysticks, the only buttons that remain working are the hotkey enabled buttons. If i remove the player prefix from each line of code, for instance

    input_b_btn = “12” (Works perfectly)
    input_player1_b_btn = “12” (Stops working)
    I’ve pasted my config file for the Xin-Mo in retroarch incase anyone spots a glaring error that I’ve missed.


    input_device = “Xin-Mo Xin-Mo Dual Arcade”
    input_driver = “udev”
    input_player1_joypad_index= “0”
    input_player1_b_btn = “12”
    input_player1_y_btn = “13”
    input_player1_select_btn = “14”
    input_player1_start_btn = “15”
    input_player1_up_axis = “-2”
    input_player1_down_axis = “-3”
    input_player1_left_axis = “+3”
    input_player1_right_axis = “+2”
    input_player1_a_btn = “10”
    input_player1_x_btn = “11”
    input_player1_l_btn = “17”
    input_player1_r_btn = “16”
    #input_l2_axis = “”
    #input_l3_axis = “”
    #input_r3_axis = “”
    #input_l_x_plus_axis = “”
    #input_l_x_minus_axis = “”
    #input_l_y_plus_axis = “”
    #input_l_y_minus_axis = “”
    #input_r_x_plus_axis = “”
    #input_r_x_minus_axis = “”
    #input_r_y_plus_axis =
    #input_r_y_minus_axis = “”

    input_enable_hotkey_btn = “14”
    input_exit_emulator_btn = “15”
    #input_shader_next_btn = “17”
    #input_shader_prev_btn = “16”

    input_player2_joypad_index = “0”
    input_player2_b_btn = “1”
    input_player2_y_btn = “0”
    input_player2_select_btn = “4”
    input_player2_start_btn = “9”
    input_player2_up_axis = “+0”
    input_player2_down_axis = “-1”
    input_player2_left_axis = “-0”
    input_player2_right_axis = “+1”
    input_player2_a_btn = “2”
    input_player2_x_btn = “3”
    input_player2_l_btn = “7”
    input_player2_r_btn = “6”



    I kinda had the same issue. My adapter only shows up as one controller, but once I noticed that all I had to do was just map player 2 to use the other buttons. RetroArch’s emulators then worked.

    Looking at your config, I don’t see much difference between yours and mine. The only thing I notice is that I never used the quotes.

    input_player1_joypad_index = 0
    input_player1_a_btn = 2
    input_player1_b_btn = 1
    input_player1_y_btn = 0
    input_player1_start_btn = 6
    input_player1_up_axis = -1
    input_player1_down_axis = +1
    input_player1_left_axis = -0
    input_player1_right_axis = +0
    input_player2_joypad_index = 0
    input_player2_a_btn = 10
    input_player2_b_btn = 9
    input_player2_y_btn = 8
    input_player2_start_btn = 14
    input_player2_up_axis = -3
    input_player2_down_axis = +3
    input_player2_left_axis = -2
    input_player2_right_axis = +2


    Cheers for the quick reply mate, just gave that a bash too, hoping that maybe I’d overlooked that option, sadly though it’s not worked for me, I very much appreciate the effort though !



    I assume that all buttons work in jstest? Have you tried removing the player 2 all together? To see if the setup for just player 1 works. Clownfish360 seems to imply that player two should be working.

    Sorry I can’t be much more help.



    Yea buddy, I tried it without player 2, also tried it just with the “player1” lines of code active, for some odd reason as soon as the prefix “player” is included in the lines of code, retroarch seems to refuse to acknowledge their input completely, I know the controller file is being passed to retroarch correctly as the hotkeys to exit the emulator remain working but not the controllers, in a bit of a pickle Haha !



    I used jstest to figure out my button numbers.

    Looking at your config, I did not include input device or driver in my config.
    input_device = β€œXin-Mo Xin-Mo Dual Arcade”
    input_driver = β€œudev”

    I also have my axis for player 1 and 2 reversed

    This is what you have
    input_player1_up_axis = β€œ-2β€³
    input_player1_down_axis = β€œ-3β€³
    input_player1_left_axis = β€œ+3β€³
    input_player1_right_axis = β€œ+2β€³
    input_player2_up_axis = β€œ+0β€³
    input_player2_down_axis = β€œ-1β€³
    input_player2_left_axis = β€œ-0β€³
    input_player2_right_axis = β€œ+1β€³

    This is what I have
    input_player1_up_axis = β€œ-1β€³
    input_player1_down_axis = β€œ+1β€³
    input_player1_left_axis = β€œ-0β€³
    input_player1_right_axis = β€œ+0β€³
    input_player2_joypad_index =”0β€³
    input_player2_up_axis = β€œ-3β€³
    input_player2_down_axis = β€œ+3β€³
    input_player2_left_axis = β€œ-2β€³
    input_player2_right_axis = β€œ+2β€³



    Out of curiosity bud, are you hard coding the buttons within the retroarch.cfg file ? or doing it under /retropie/emulators/retroarch/configs/ Xin Mo config file?

    EDIT : tried it also using the global retroarch config file and the emulator local config file and still nothing. Also did a fresh 2.6 install and fresh kernel patch and still no joy. This thing will be the death of me




    I think that one may be a little different buddy. No worries though I think I’ll just have to wait until somebody patches the driver for this particular controller ! Cheers anyway



    there is another patch here for this problem – which just involves a new definition line to enable some quirks



    Hi there
    I’ve got mi pi2 today and i want to install my 2-player arcadecontroller with a XinMo, but im a realy noob with pi and linux πŸ™‚

    Can somene tell me what i must put in the pi that it function ;)?

    -i use the retropie image, would u change that?
    -i downloaded your costum kernel and install it. After that was the trigger away but RetroPie found only 1Player Controller and second will not found.

    Thx and best greetz from switzerland.



    I think that you should be good with those steps. I created my build a few months ago compiling from source. This takes alot of time. But I’m sure the image is fine. The custom kernel I posted fixes some of the issues. According to buzz’s post above, there is a fix for player 2. That is not in my custom kernel. If you like, I could compile that in, if no one has done that yet.

    EDIT: I actually had some time. Made the code change and compiled. Here is the link.

    Note that I haven’t even tested this at all. Just compiled and uploaded.



    i try it today and hope it function.

    with the evtest can i test the controller but there
    does not write a xinMo encoder its a different πŸ™

    (sorry for my english) πŸ˜‰



    I can dowload and unzip it
    I see the directory and the
    But i can`t start it.

    “Sudo: ./ command not found”

    Any idea?

    -usb keyboard
    -tht tht arcade console 2p usb player

    But the retropie does only see one player…



    If that is the install command you used that is slightly wrong.
    Lower case ‘s’ and no ‘:’

    sudo ./

    sudo is the command used to run the script with superuser priveledges.



    sorry just forgot it to write.
    and also with the comand “sudo ./” it doesn’t do something.

    What im Do:
    the step on this side:
    Title: Configuring Controllers and Other Settings
    i config the retroarch.cfg for the 2players like this:
    input_player1_joypad_index = “0”
    input_player1_b_btn = “1”
    input_player1_y_btn = “0”
    input_player1_select_btn = “7”
    input_player1_start_btn = “6”
    input_player1_up_axis = “-1”
    input_player1_down_axis = “+1”
    input_player1_left_axis = “-0”
    input_player1_right_axis = “+0”
    input_player1_a_btn = “2”
    input_player1_x_btn = “4”
    input_player1_l_btn = “3”
    input_player1_r_btn = “5”

    input_player2_joypad_index = “0”
    input_player2_b_btn = “11”
    input_player2_y_btn = “10”
    input_player2_select_btn = “17”
    input_player2_start_btn = “16”
    input_player2_up_axis = “-3”
    input_player2_down_axis = “+3”
    input_player2_left_axis = “-2”
    input_player2_right_axis = “+2”
    input_player2_a_btn = “12”
    input_player2_x_btn = “14”
    input_player2_l_btn = “13”
    input_player2_r_btn = “15”

    input_exit_emulator_btn = “9”

    but retroPie doesn’t see player2.

    thx for all your comments and help at this time πŸ™‚



    I don’t have the controller setup that you are using. It just happened my issue was showing up the same as with what you are trying to use. I’m guessing since the custom kernel didn’t install, this would be the reason that it still doesn’t work. (Although since I don’t have this exact setup, maybe I messed up the compile)

    So how are you transferring the download above to the raspberry pi? It seems odd that if you see the it doesn’t run.

    Unless you are unpacking it before moving it to the pi. This might cause you to lose the executable permission.

    Without knowing the exact steps you used I can only guess as to what the issue might be at this point.

    The following are the steps that should work.

    Download the latest kernel I compiled above.
    Copy it to your raspberry pi somewhere.
    Go to this directory on your raspberry pi
    Run the following 3 commands.

    tar -xf custom_kernel_1.20150306-1.tar.gz
    cd custom_kernel_1.20150306-1
    sudo ./

    If this doesn’t work, I think I’ll need a clearer picture of the steps you used to get to this point.




    it was my fault πŸ™ sorry

    it works now. the system see now two of *tht tht arcade console 2p usb player*
    so now can i try to config all the buttons
    hope i can that also πŸ˜‰

    thx for your help.



    Any time, glad to hear that you are getting somewhere.



    I am a really noob in linux, but your Solution works like a charm feederchain! Now nearly all is working; the only thing left is to find out how to change the y-axis in scummvm:) (This one is reverted and the buttons have to be remapped for my arcade.)

    Thank you very much for your hard work! ;D



    I cant’t config my player2
    For 1player is all okay just the coin button doesnt function.

    How did u config your 1 and 2player buttons?



    @krauthaus.. It’s good to hear this is working for so many people. Unfortunately I have not looked into running ScummVM yet. So I don’t think I can provide much help on that front.

    @yves1984.. There are examples of button maps earlier in this thread that appeared to be working for others. Have you tried running jstest to see if the buttons all map out and function properly? I don’t recall if jstest is installed by default in retropie or not.

    If it isn’t simply run

    sudo apt-get install joystick
    jstest /dev/input/js0

    ctrl-c anytime to close the program

Viewing 35 posts - 1 through 35 (of 278 total)

Forums are currently read only - please visit the new RetroPie forums at

PLEASE NOTE: All orders that are placed between January 14th and January 28th will be shipped on January 29th. Dismiss