Autofire on the axis

RetroPie has a new website and forum. Please visit https://retropie.org.uk/ for the new site. The new forum is located at https://retropie.org.uk/forum/. This forum is left here as a read-only archive.

This topic contains 277 replies, has 69 voices, and was last updated by Profile photo of janmilpol janmilpol 1 year ago.

Viewing 35 posts - 1 through 35 (of 278 total)
  • Author
    Posts
  • #87596
    Profile photo of feederchain
    feederchain
    Participant

    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.

    Thanks

    #87621
    Profile photo of dpicc68
    dpicc68
    Participant

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

    Here
    http://blog.petrockblock.com/forums/topic/rpi2-2-5-slow-down-em-toggling/#post-87505

    And here
    http://blog.petrockblock.com/forums/topic/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??

    #87676
    Profile photo of feederchain
    feederchain
    Participant

    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.

    See
    http://blog.petrockblock.com/forums/topic/retrobit-usb-genesis-adapter-driver-install/

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

    https://github.com/raspberrypi/linux/commit/79346d620e9de87912de73337f6df8b7f9a46888

    In short, find the following lines

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

    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.

    • This reply was modified 2 years, 1 month ago by Profile photo of feederchain feederchain.
    #87751
    Profile photo of daveireland20
    daveireland20
    Participant

    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?

    Cheers

    #87758
    Profile photo of feederchain
    feederchain
    Participant

    Here is a link to my custom kernel.

    https://www.dropbox.com/s/oobz4e58r0afhwf/custom_kernel_1.20150216-1.tar.gz?dl=0

    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 ./install.sh
    

    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.

    #87792
    Profile photo of daveireland20
    daveireland20
    Participant

    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 !

    Cheers

    • This reply was modified 2 years, 1 month ago by Profile photo of daveireland20 daveireland20.
    #87812
    Profile photo of feederchain
    feederchain
    Participant

    Glad to here it!

    #87842
    Profile photo of clownfish360
    clownfish360
    Participant

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

    #87910
    Profile photo of
    Anonymous

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

    #88019
    Profile photo of daveireland20
    daveireland20
    Participant

    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.

    Cheers

    #88042
    Profile photo of feederchain
    feederchain
    Participant

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

    #88048
    Profile photo of clownfish360
    clownfish360
    Participant

    Yes this fixes the 2nd player joystick not working.

    #88854
    Profile photo of craigbnz
    craigbnz
    Participant

    Hi,

    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….

    Cheers,
    Craig.

    #88869
    Profile photo of daveireland20
    daveireland20
    Participant

    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.

    Cheers

    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”

    #88873
    Profile photo of feederchain
    feederchain
    Participant

    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
    
    #88878
    Profile photo of daveireland20
    daveireland20
    Participant

    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 !

    #88881
    Profile photo of feederchain
    feederchain
    Participant

    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.

    #88887
    Profile photo of daveireland20
    daveireland20
    Participant

    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 !

    #88889
    Profile photo of clownfish360
    clownfish360
    Participant

    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β€³

    #88903
    Profile photo of daveireland20
    daveireland20
    Participant

    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

    • This reply was modified 2 years, 1 month ago by Profile photo of daveireland20 daveireland20.
    #88911
    Profile photo of clownfish360
    clownfish360
    Participant
    #88916
    Profile photo of daveireland20
    daveireland20
    Participant

    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

    #89562
    Profile photo of buzz
    buzz
    Keymaster

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

    https://github.com/VladislavVesely/linux/commit/2f94af3f19689b014817990fe1cb500f6121f339

    #90248
    Profile photo of yves1984
    yves1984
    Participant

    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 ;)?

    P.s.
    -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.

    • This reply was modified 2 years ago by Profile photo of yves1984 yves1984.
    • This reply was modified 2 years ago by Profile photo of yves1984 yves1984.
    #90318
    Profile photo of feederchain
    feederchain
    Participant

    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.

    https://www.dropbox.com/s/yr8ab00crk30nyc/custom_kernel_1.20150306-1.tar.gz?dl=0

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

    • This reply was modified 2 years ago by Profile photo of feederchain feederchain.
    #90389
    Profile photo of yves1984
    yves1984
    Participant

    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) πŸ˜‰

    #90494
    Profile photo of yves1984
    yves1984
    Participant

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

    “Sudo: ./install.sh command not found”

    Any idea?

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

    But the retropie does only see one player…

    #90505
    Profile photo of feederchain
    feederchain
    Participant

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

    
    sudo ./install.sh
    

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

    #90521
    Profile photo of yves1984
    yves1984
    Participant

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

    What im Do:
    the step on this side: https://supernintendopi.wordpress.com/
    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 πŸ™‚

    • This reply was modified 2 years ago by Profile photo of yves1984 yves1984.
    #90532
    Profile photo of feederchain
    feederchain
    Participant

    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 install.sh 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 ./install.sh
    

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

    Thanks

    #90542
    Profile photo of yves1984
    yves1984
    Participant

    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.

    #90544
    Profile photo of feederchain
    feederchain
    Participant

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

    #90545
    Profile photo of krauthaus
    krauthaus
    Participant

    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

    #90551
    Profile photo of yves1984
    yves1984
    Participant

    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?

    #90556
    Profile photo of feederchain
    feederchain
    Participant

    @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 https://retropie.org.uk/forums/

Skip to toolbar