RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    Gamepad calibration problem

    Scheduled Pinned Locked Moved Help and Support
    calibrationgamepad configudevretroarch confi
    3 Posts 2 Posters 1.4k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      Protocultor
      last edited by

      Hello! I recalibrated the analog sticks on the Nintendo Switch Pro Controller and saw that Retroarch emulators, or at least lr-pcsx-rearmed, completely ignore the calibration. jstest and jstest-gtk show my changes on the sensibility of the sticks, and calibration is restored with no problems after every restart, but lr-pcsx-rearmed uses the old, original sensibility, where its evident that the sticks don't reach the full -32767..32768 range (PS1 Moto Racer doesn't lie). Non-Retroarch emulator PPSSPP uses the calibration and plays amazing now. For reference, I also have a PS3 controller, which works flawlessly on every emulator without needing calibration (haven't tested messing it up, to see if the change is reflected on Retroarch).

      I followed every step in here:
      https://github.com/RetroPie/RetroPie-Setup/wiki/Controller-configuration-(driver-level)
      ... but I bet the problem is in the udev driver in Retroarch.
      The gamepad is only recognized as /dev/input/js0. Should it have an entry in the /by-id/ directory? What is the "udev" driver anyway? Anytime I change it to "linuxraw" or "sdl" the gamepad gets disabled.

      Any tip is appreciated.

      1 Reply Last reply Reply Quote 0
      • mituM
        mitu Global Moderator
        last edited by mitu

        I think udev it's used only for detection and enumerating devices and evdev is used for actual joystick/gamepad interaction.
        Linux has 2 APIs for joystick/gamepad - https://wiki.archlinux.org/index.php/Gamepad#Joystick_input_systems - , jstest/jscal use the old API, while RA uses the new (evdev) api.

        Normally, I think the SDL2 input driver should support your gamepad - see this auto-configuration in the Libretro repository.

        If you wish to calibrate the gampead using the new API (evdev), then you need to use evdev-joystick - see the 1st page on the ArchWiki I posted, which has a lot of good info.

        1 Reply Last reply Reply Quote 1
        • P
          Protocultor
          last edited by

          Many thanks for the info on evdev. I thought it wasn't being used since evdev-joystick --l doesn't show anything, but the gamepad was being assigned to /dev/input/eventX

          I ended up using this solution:
          https://joaorb64.github.io/2018/02/14/Configuring-a-Nintendo-Switch-Pro-Controller-on-Linux.html

          1 Reply Last reply Reply Quote 0
          • First post
            Last post

          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.