Page 1 of 2 12 LastLast
Results 1 to 10 of 18

Thread: Remap joystick / joypad / gamepad buttons with patched jscal

  1. #1
    Join Date
    Jan 2008
    Beans
    92

    Remap joystick / joypad / gamepad buttons with patched jscal

    http://www.mediafire.com/?msitbdej0ad
    http://ubuntuforums.org/attachment.p...2&d=1208782381
    This is patched version of the jscal utility from the joystick package. It will allow the remapping of buttons and axes directly into the driver.
    It's compiled for Ubuntu 7.10 AMD64, but you can recompile it to any version by doing a "make clean;make"

    I have been looking for something like this for ages. Found it here: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=444142

    I have many joypads / joysticks with many different button layouts, and by using this utility I can reconfigure the button layout by running a simple script, intead of reconfiguring every game and emulator everytime I want to use a different joystick.
    Hope you find it useful.

    Quoting the patch author:
    Package: joystick
    Version: 20051019-1
    Severity: wishlist
    Tags: patch

    Motivation

    I found no simple tool that would remap the joystick axes
    and buttons on the device driver level (joydev module), while the driver
    clearly provides the interface for this. My patch extends to
    capabilities of jscal in order to remap axes and buttons. While
    remapping in the X configuration file is possible, that mapping does not
    seem to help in all games.


    Detail

    I bought a Trust GM-2550 Predator joystick the other day, and I noticed
    that the axes were mapped incorrectly: the throttle in place of the
    rudder, and the pinky button's axes were shifted up 1 slot in the axis
    map. I found no tool to re-map the axes on the device driver (joydev)
    level. While remapping is possible in the X config, this did not solve
    the problem for - for example - SearchAndRescue.

    Also I found no way to remap joystick buttons on the device driver
    level. This is quite necessary for example for tuxkart, because some of
    the buttons the game uses are unfortunately unreachable while holding
    the joystick comfortably (some buttons are too far on the stick).

    I found that the joydev kernel module does provide the API for axes and
    button remapping. I added two command line options to jscal and two
    corresponding functions that utilize the API and remap buttons and axes.
    I have tested the axes and button remapping, and it works as intended. I
    can swap buttons and axes as I wish.


    Implementation

    Please find the diff of jscal.c in joystick attached (joystick.diff).

    The modified jscal.c adds two command line arguments:

    -q --print-mappings Print the current axis and button
    mappings as a jscal command line

    and

    -u <n_of_axes,axmap1,axmap2,...,
    n_of_buttons,btnmap1,btnmap2,
    ...> --set-mappings Sets axis and button mappings to the
    specified values

    An example output of -q looks like this (./jscal -q /dev/input/js0):

    jscal -u
    10,0,1,2,5,6,16,17,40,41,42,13,288,289,290,291,292 ,293,294,295,296,297,298,299,300
    /dev/input/js0

    The joystick has 10 axes and 13 buttons. If now one is to switch axes 2
    and 5 (to get the rudder and the throttle right), one has to execute:

    jscal -u
    10,0,1,5,2,6,16,17,40,41,42,13,288,289,290,291,292 ,293,294,295,296,297,298,299,300
    /dev/input/js0

    changing 2,5 to 5,2 on the line.

    Remapping buttons is done the same way.
    Attached Files Attached Files
    Last edited by landeel; April 21st, 2008 at 01:55 PM.

  2. #2
    Join Date
    Jun 2007
    Location
    The United States
    Beans
    518

    Re: Remap joystick / joypad / gamepad buttons with patched jscal

    Quote Originally Posted by landeel View Post
    http://www.mediafire.com/?msitbdej0ad
    This is patched version of the jscal utility from the joystick package. It will allow the remapping of buttons and axes directly into the driver.
    It's compiled for Ubuntu 7.10 AMD64, but you can recompile it to any version by doing a "make clean;make"

    I have been looking for something like this for ages. Found it here: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=444142
    I have many joypads / joysticks with many different button layouts, and by using this utility I can reconfigure the button layout by running a simple script, intead of reconfiguring every game and emulator everytime I want to use a different joystick.
    Hope you find it useful.
    Yeah Qjoypad is like this but its a little buggy,cool find I will check it out next time I am playing something.
    Desktop 1: Asus A8N-E | AMD Athlon +3200 | 2 GB Ram | Geforce 8500 | Windows XP
    Desktop 2: Soyo-KT600 | AMD Athlon +2600 | 768 MB Ram | Geforce 5200 | Ubuntu 10.04
    Netbook: Asus 1001P, Arch Linux

  3. #3
    Join Date
    Jan 2008
    Beans
    92

    Re: Remap joystick / joypad / gamepad buttons with patched jscal

    Yeah, I have used qjoypad too. But I have found out the joystick response is way too slow with some games.
    This solves the problem, because it works directly with the linux joystick driver.

  4. #4
    Join Date
    Feb 2008
    Location
    Virginia
    Beans
    459
    Distro
    Ubuntu 9.10 Karmic Koala

    Re: Remap joystick / joypad / gamepad buttons with patched jscal

    Quote Originally Posted by landeel View Post
    Yeah, I have used qjoypad too. But I have found out the joystick response is way too slow with some games.
    This solves the problem, because it works directly with the linux joystick driver.
    can this map joystick axis to the mouse?

  5. #5
    Join Date
    Jan 2008
    Beans
    92

    Re: Remap joystick / joypad / gamepad buttons with patched jscal

    can this map joystick axis to the mouse?
    No. For this purpose, qjoypad is still the best solution.
    jscal will only change the order of buttons and axes in the joystick node itself.
    Last edited by landeel; April 21st, 2008 at 01:56 PM.

  6. #6
    Join Date
    Jun 2007
    Location
    The United States
    Beans
    518

    Re: Remap joystick / joypad / gamepad buttons with patched jscal

    Quote Originally Posted by landeel View Post
    No. For this purpose, qjoypad is still the best solution.
    jscal will only change the order of buttons and axes in the joystick node itself.
    I never could use qjoypad's mouse feature anyway.It messed up badly and went insane when I moved the mouse axis?????

    I prefer mouse and keyboard on 90% of all computer games anyway.
    Desktop 1: Asus A8N-E | AMD Athlon +3200 | 2 GB Ram | Geforce 8500 | Windows XP
    Desktop 2: Soyo-KT600 | AMD Athlon +2600 | 768 MB Ram | Geforce 5200 | Ubuntu 10.04
    Netbook: Asus 1001P, Arch Linux

  7. #7
    Join Date
    Jan 2008
    Beans
    92

    Re: Remap joystick / joypad / gamepad buttons with patched jscal

    I prefer mouse and keyboard on 90% of all computer games anyway.
    Yeah, but just try playing some Street Fighter or The King of Fighters with your keyboard.
    Qjoypad's joystick to mouse remap works perfectly for me. But I had to edit the configuration by hand, as the gui has some bugs. Try the attached configuration file.
    Attached Files Attached Files

  8. #8
    Join Date
    Jun 2007
    Location
    The United States
    Beans
    518

    Re: Remap joystick / joypad / gamepad buttons with patched jscal

    Quote Originally Posted by landeel View Post
    Yeah, but just try playing some Street Fighter or The King of Fighters with your keyboard.
    Qjoypad's joystick to mouse remap works perfectly for me. But I had to edit the configuration by hand, as the gui has some bugs. Try the attached configuration file.
    Thanks,the configuration file worked

    Don't know why it didn't work with the GUI,I guess its just buggy.I had to disable compiz cause the keyboard didn't work with the 3D desktop.
    Desktop 1: Asus A8N-E | AMD Athlon +3200 | 2 GB Ram | Geforce 8500 | Windows XP
    Desktop 2: Soyo-KT600 | AMD Athlon +2600 | 768 MB Ram | Geforce 5200 | Ubuntu 10.04
    Netbook: Asus 1001P, Arch Linux

  9. #9
    Join Date
    Dec 2008
    Beans
    2

    Talking Re: Remap joystick / joypad / gamepad buttons with patched jscal

    Thank for all of information, the jscal patch is a great solution for my EeePC 900 with Xubuntu 8.04. This is shared my experience of setting my gamepad "e-blue ZASTER" "http://www.e-blue.jp"

    power@yeung:~/download/eeepc/joy> ./jscal -q /dev/input/js0
    jscal -u 6,0,1,2,3,4,40,8,288,289,290,291,292,293,294,295 /dev/input/js0

    power@yeung:~/download/eeepc/joy> ./jscal -u 6,3,4,0,1,2,40,8,288,289,290,291,292,293,294,295 /dev/input/js0

    power@yeung:~/download/eeepc/joy> ./jscal -q /dev/input/js0
    jscal -u 6,3,4,0,1,2,40,8,288,289,290,291,292,293,294,295 /dev/input/js0

    unfortunately the axis-1 is in the resverse direction. We can install the "jscalibrator" package from ubuntu 8.04. Click the "Flip" at the asix-1, calibrate, Save and reboot. Run "Jscal" at everytime of gamepad pluggin.

    power@yeung:~/download/eeepc/joy> ./jscal -u 6,3,4,0,1,2,40,8,288,289,290,291,292,293,294,295 /dev/input/js0

    Thanks
    Attached Images Attached Images
    Last edited by linuxhongkong; January 2nd, 2009 at 05:02 PM. Reason: change last procedure

  10. #10
    Join Date
    Mar 2006
    Location
    Stockholm, Sweden
    Beans
    692
    Distro
    Ubuntu Development Release

    Re: Remap joystick / joypad / gamepad buttons with patched jscal

    Thanks man, great tip! This helped me get an unsupported PS2->USB adapter to work with two simple gamepads (dance mats). Cheers!

    Btw for those who has 32-bit (the attached package has a compiled 64-bit version):
    Unzip and run:
    Code:
    make clean
    make
    Then you have 32-bit binaries instead.
    Last edited by motin; February 24th, 2009 at 08:52 PM.

Page 1 of 2 12 LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •