• 0 Votes
    11 Posts
    290 Views
    mituM

    This works, but I'll need to test across other games which hopefully will not involve more than sorting out correct button mappings. I noticed that for scummvm, its only backend options are for SDL2 and therefore will not work (as far as I can tell) with xboxdrv.

    That's because ScummVM is already a SDL2 application and there's no need for a compatibility shim like sd12-compat.

    It's looking to me as if xboxdrv may be a bit of a dead end when it comes to button remappings for non-libretro emulators in RetroPie. Can such remappings be done in SDL2 or is there another option that could be applied system-wide?

    Not dead, just not widely used. xboxdrv itself is mostly feature complete and there's little development nowadays, since compatibility with Xbox controllers is offered OOB by Linux kernel modules (xow, xpad, xpadneo).

    There are no alternative re-mapping solutions in RetroPit, though anything that works in Linux and without X11/Wayland could work.

  • 0 Votes
    1 Posts
    182 Views
    No one has replied
  • Xboxdrv or XINIT problem

    Help and Support
    2
    0 Votes
    2 Posts
    359 Views
    N

    I see in process list "dbus-daemon" that probably launched by xinit. When controls fails at the first launch, this process is after the game process in the list. When controls are ok during next launches, this process is before. It looks like the game need this process before.

    Is there a way to delay the launch of the game started by xinit command ?

    xinit '/home/pi/box86/build/box86' '/home/pi/RetroPie/roms/ports/ut99/System/ut-bin-x86'
  • 0 Votes
    3 Posts
    273 Views
    R

    @mitu said in mapping select+start to Alt+F4, using xboxdrv:

    Try with:

    ... --ui-buttonmap start=KEY_ENTER,back=KEY_BACKSPACE,back+start=KEY_LEFTALT+KEY_F4 ...

    this works, thanks a lot! i could swear i'd tried this...

  • 0 Votes
    25 Posts
    1k Views
    A

    @mitu Perfect! That's solved it! Everything works brilliantly now, thanks again so much for all your help!

  • 0 Votes
    6 Posts
    2k Views
    D

    @mitu WELL after I did the jtest my original controller didn't work anymore in the GUI so I did a sudo reboot. While it was rebooting I removed the dongle in sadness and saw "xbox controller disconnected" small info tag in the corner, and BOOM now xbox 360 controller is working!! I have no idea after countless reboots it worked.

    Thank you

  • "Cannot use 'JS5B_S' in a combo event"

    Help and Support
    9
    0 Votes
    9 Posts
    508 Views
    S

    @mitu Thanks. Unfortunately, jstest gives me yet a third set of inputs different both from what event_diag and the other program told me. IT shows for my old fat PS3 controller:
    (Axes): X, Y, Z, Rx, Ry, Rz

    (Buttons): BtnA, BtnB, BtnX, BtnY, BtnL, BtnR, BtnL2, BtnR2, BtnSelect, BtnStart, BtnThumbL, BtnThumbR, null, null, null, null

    It's anyone's guess which of those axes the dpad uses, and how the hackfile would interpret it, since even the latest event_diag still shows nothing for anything except the analog sticks...

    I'm thinking event_diag just has trouble reading from these types of controllers, since it reads my arcade joystick and button sets, and my buffalo controller buttons, just fine.

  • 0 Votes
    1 Posts
    271 Views
    No one has replied
  • 0 Votes
    4 Posts
    580 Views
    F

    @fadangalini
    Fixed the problem.
    By putting KEY_#302 in place of where you would put BTN_THUMB for example, works.

  • 0 Votes
    7 Posts
    890 Views
    K

    @mitu That worked! Thanks a million

  • 0 Votes
    2 Posts
    559 Views
    mituM

    @derebo RetroPie logs every installation in $HOME/RetroPie-Setup/logs, can you look into the last log file to see if the xboxdrv installation was successful ? You can also re-run the installation to generate a new log file and then post the log file on pastebin.com.

  • 0 Votes
    6 Posts
    973 Views
    S

    @mitu said in xboxdrv dpad-as-axis: is it possible? (ps3 controller + intellivision):

    --displaysize=%XRES%x%YRES%

    Yes. So this needs to go, I think, after the -config option for those custom jzintv commands. It wasn't working for me until I did that. If all else fails, this version of the xboxdrv line worked for me:

    jzintv-xboxdrv = "sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --config /opt/retropie/configs/xboxdrv/intellivision.xboxdrv >>/dev/shm/runcommand.log & /opt/retropie/emulators/jzintv/bin/jzintv -p /home/pi/RetroPie/BIOS -q --displaysize=%XRES%x%YRES% --kbdhackfile=/opt/retropie/configs/intellivision/hackfile_trondd.cfg %ROM%; sudo killall >/dev/null xboxdrv"

    But you will need to update RetroPie from source for the PS3 buttons to show up in event_diag.
    Now if I could figure out why the config menus no longer work with controllers (I need my keyboard to use them)...
    For updaters: RetroPie -> Run Command Configuration -> set Joy2Key version to udev (instead of sdl) and then re-enabling the launch menu from the same set of options will fix this

  • 0 Votes
    6 Posts
    647 Views
    M

    @churchill7 in mame2003-plus and mame2003 this core option will be hidden unless you're playing a game that uses the feature. I recommend running pacman then going into the core options.

    https://github.com/libretro/mame2003-libretro/blob/7ea22d44c0d899cf7670d458cd6dac0942839d2d/src/mame2003/mame2003.c#L187

    The default is probably decent though like you observed in Tron.

  • 0 Votes
    8 Posts
    2k Views
    W

    @mitu thanks for all your help!

  • 0 Votes
    33 Posts
    4k Views
    W

    @icebear81 For Spyhunter I have the pedal mapped to the pitch :

    input_map[p1_pedalgas] -joystick[2,stick,y]

    I think this works for Paperboy too.

    This runs the throttle for Lunar Lander:

    llander/input_map[p1_paddlex] -joystick[2,stick,y]

    ws

  • Add xboxdrv to main options menu

    Help and Support
    1
    0 Votes
    1 Posts
    286 Views
    No one has replied
  • 0 Votes
    9 Posts
    1k Views
    C

    It has worked!

    In a bit more detail:

    I didn't add entries for P3 and P4 on retroarch.cfg because, what would I set them to if I only have two controllers? 4 and 5, assuming that I could be plugging in additional ones?

    Anyway, I tried to re-add the two physical Logitech controllers to EmulationStation; it detect 4 controllers, but it would keep detecting the button presses as coming from the emulated Xbox controllers.

    I then reset the controller settings for EmulationStation on the Retropie menu and again, it would detect 4 controllers, but it also would keep detecting the button presses as coming from the emulated Xbox controllers.

    I had to disable xboxdrv and then it would only detect 2 controllers and the button presses a coming from the physical Logitech controllers. The conclusion here is for EmulationStation the physical and emulated controllers don't clash; the emulated ones take priority and the button presses are understood to be coming from them.

    I then checked that on the Retroarch menu the emulated controllers were assigned to P1 and P2 and removed the physical controllers that were assigned to P3 and P4. And then everything was fine. The crux here appears to be that I had a clash, as both the emulated and physical controllers were assigned to players and probably registering button presses. Something that support this hypothesis is that on games where you have a grid to select your character (e.g. Mario Kart) it was fairly obvious that when I was pressing once to move one cell to the right, for instance, the selection box was moving two cells.

    Thanks again for all your time helping me figure this out.

  • 0 Votes
    7 Posts
    5k Views
    C

    @luzer I am in this exact situation, did you manage to solve it?

  • xboxdrv with lr-x1

    Help and Support
    2
    0 Votes
    2 Posts
    315 Views
    P

    could somebody help me with this example runcommand-onstart.sh script from the xboxdrv guide for retropie?

    for the following example script, i want to try using xboxdrv just for a certain rom, and if that rom doesn't match i don't want to launch/use xboxdrv. ex. in the fba) section below, what if i wanted to use xboxdrv if there is a match for one of the $rom cases, but do nothing if not? would i just delete these lines?:

    $xboxkill joycommand="$basicPS3 &" eval $joycommand ;; #!/bin/sh ## Uncomment one or all of the following if you need to find some information about the emulator or roms ## Name of the emulator #echo $1 >> /dev/shm/runcommand.log ## Name of the software used for running the emulation #echo $2 >> /dev/shm/runcommand.log ## Name of the rom #echo $3 >> /dev/shm/runcommand.log ##Executed command line #echo $4 >> /dev/shm/runcommand.log ### The FUN begins #Get ROM name striping full path rom="${3##*/}" ### Try to automatically find the correct event[•] of the connected controllers controller1=`cat /proc/bus/input/devices | egrep -i "js*" | sort | grep -o 'event[0-9]' | sed -n -e '1{p;q}'` controller2=`cat /proc/bus/input/devices | egrep -i "js*" | sort | grep -o 'event[0-9]' | sed -n -e '2{p;q}'` controller3=`cat /proc/bus/input/devices | egrep -i "js*" | sort | grep -o 'event[0-9]' | sed -n -e '3{p;q}'` controller4=`cat /proc/bus/input/devices | egrep -i "js*" | sort | grep -o 'event[0-9]' | sed -n -e '4{p;q}'` ### Set variables for your joypad and emulator ### Basic Configuraions - Standard controller mappings basicPS3="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv >/dev/null \ --evdev /dev/input/$controller1 \ --silent \ --detach-kernel-driver \ --force-feedback \ --mimic-xpad \ --dpad-as-button \ --trigger-as-button \ --evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_Z=x2,ABS_RX=y2 \ --evdev-keymap KEY_#302=a,KEY_#301=b,BTN_DEAD=x,KEY_#300=y,BTN_THUMB=tl,BTN_THUMB2=tr,BTN_BASE5=lb,BTN_BASE6=rb,BTN_BASE3=lt,BTN_BASE4=rt,BTN_TRIGGER=back,BTN_TOP=start,BTN_SOUTH=guide,BTN_TOP2=du,BTN_PINKIE=dr,BTN_BASE=dd,BTN_BASE2=dl --calibration x1=-32767:0:32767,y1=-32767:0:32767,x2=-32767:0:32767,y2=-32767:0:32767" ### Extended Configurations ### Specific emulator configuration or any other parameters you will need only for some emulators scummVM="--axismap -Y1=Y1,-Y2=Y2 \ --ui-axismap x1=REL_X:10,y1=REL_Y:10 \ --ui-buttonmap a=BTN_LEFT,b=BTN_RIGHT,start=KEY_F5,back=KEY_ESC \ --ui-buttonmap guide=void,x=void,y=void,lb=void,rb=void,tl=void,tr=void,lt=void,rt=void,back=void \ --ui-axismap x2=void" amiga="--axismap -Y1=Y1,-Y2=Y2 \ --ui-axismap x2=REL_X:1,y2=REL_Y:1 \ --ui-axismap x1=KEY_LEFT:KEY_RIGHT,y1=KEY_DOWN:KEY_UP \ --ui-buttonmap du=KEY_UP,dd=KEY_DOWN,dl=KEY_LEFT,dr=KEY_RIGHT \ --ui-buttonmap lt=BTN_LEFT,rt=BTN_RIGHT,start=KEY_ESC,back=KEY_LEFTCTRL,y=KEY_SPACE,a=KEY_LEFTCTRL,b=KEY_LEFTALT,x=KEY_LEFTSHIFT \ --ui-buttonmap guide=void,tl=void,lt=void,rt=void,back=void \ --ui-axismap x2=void" fourway="--four-way-restrictor" invert="--ui-buttonmap du=KEY_DOWN,dd=KEY_UP" ### Kill Command xboxkill="sudo killall >>/dev/shm/runcommand.log xboxdrv" ### Execute the driver with the configuration you need # $1 is the name of the emulation, not the name of the software used # it is intellivision not jzintv case $1 in mame-libretro) ;; fba) case $rom in "amidar.zip"|"atetris.zip"|"puckman.zip") # Configuration used only for these ROMs $xboxkill joycommand="$basicPS3 $fourway &" eval $joycommand ;; *) # Configuration for every other ROMs on this emulator $xboxkill joycommand="$basicPS3 &" eval $joycommand ;; esac ;; daphne) ;; scummvm) $xboxkill joycommand="$basicPS3 $scummVM &" eval $joycommand ;; amiga) $xboxkill joycommand="$basicPS3 $amiga &" eval $joycommand ;; intellivision) ;; esac