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

Retroflag GPI Case pcsx-rearmed controller config (SOLVED)



  • @eskodisk You can't use Bluetooth keyboard ?



  • @lolo You should be able to but I don't have one to test it out.



  • I used a otg cable to connect a keyboard... Doing so seems to disable the buttons on the gpi case itself so.... still no good speed psx emulation here.... anyone succes with the non lr version of pcsx rearmed????



  • No, unfortunately the gpi case is detected like a X-Box 360 pad in the emulator.
    And if you test PCSX-ReARMed just on the Pi Zero W... with a X-Box 360 pad you will have the same thing. The D Pad don't works, just the left analog stick works.
    Ironically i've tested also with the "retroflag megapi pad" and it works. The pad is detected like a RetroFlag Wired Controller. I tested everything with the pcsx.cfg without success.
    A pity because PCSX-ReARMed works very well on the Pi Zero.



  • Well, it's a driver problem, thanks to SinisterSpatula:
    www.reddit.com/r/retroflag_gpi/comments/c1psvj/dpad_not_working_in_pcsxrearmed_and_gpsp/

    #######################
    
    sudo ./RetroPie-Setup/retropie_setup.sh
    go to manage packages, driver, xboxdrv, install from source.
    Takes 1 hour 15 mins to compile.
    
     'Enable xboxdrv'
    and then 'Disable xboxdrv'.
    
    ##############
    
    sudo reboot
    
    
    ################################################
    sudo nano /opt/retropie/configs/all/runcommand-onstart.sh
    
    #!/bin/sh
    
    if [ "$1" = "psx" ] || [ "$1" = "gba" ]
    then
        sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \
        --evdev /dev/input/by-id/usb-RetroFlag_GPi_Case_RetroFlag_01-event-joystick \
        --detach-kernel-driver \
        --silent \
        --force-feedback \
        --deadzone-trigger 15% \
        --deadzone 4000 \
        --mimic-xpad \
        --dpad-as-button \
        --evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_RX=x2,ABS_RY=y2,ABS_Z=lt,ABS_RZ=rt \
        --evdev-keymap BTN_SOUTH=a,BTN_EAST=b,BTN_NORTH=x,BTN_WEST=y,BTN_TL=lb,BTN_TR=rb,BTN_THUMBL=tl,BTN_THUMBR=tr,BTN_MODE=guide,BTN_SELECT=back,BTN_START=start,BTN_TRIGGER_HAPPY3=du,BTN_TRIGGER_HAPPY4=dd,BTN_TRIGGER_HAPPY1=dl,BTN_TRIGGER_HAPPY2=dr \
        --evdev-absmap ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y \
        --ui-buttonmap x=KEY_X,a=KEY_C,b=KEY_V,lb=KEY_A,Y=KEY_S,rb=KEY_D \
        --ui-buttonmap guide=KEY_B,start=KEY_ENTER,back=KEY_ESC \
        --ui-buttonmap du=KEY_UP,dd=KEY_DOWN,dl=KEY_LEFT,dr=KEY_RIGHT \
    &
    fi
    
    
    #########################################
    sudo nano /opt/retropie/configs/all/runcommand-onend.sh
    
    #!/bin/sh
    
    fbset -g 320 240 320 240 8
    fbset -g 320 240 320 240 32
    sudo killall xboxdrv
    
    ####################################
    
    That's it,  Now you'll need a bluetooth keyboard to hit esc and setup the controller 
    inputs, --Or try adding these to your pcsx.cfg
    
    nano /opt/retropie/configs/psx/pcsx/pcsx.cfg
    
    binddev = sdl:keys
    bind return = player1 START
    bind escape = player1 SELECT
    bind escape = Enter Menu
    bind a = player1 L1
    bind c = player1 SQUARE
    bind d = player1 R1
    bind s = player1 CIRCLE
    bind v = player1 CROSS
    bind x = player1 TRIANGLE
    bind up = player1 UP
    bind down = player1 DOWN
    bind right = player1 RIGHT
    bind left = player1 LEFT
    binddev = sdl:Microsoft X-Box 360 pad
    bind escape = Enter Menu
    
    #####################################
    
    useful test commands (while the emulator is running, do them on ssh session):
    
    cat /proc/bus/input/devices
    ls /dev/input/by-id/
    evtest /dev/input/event[1]
    


  • Yep, those instructions are a workaround to the issue. The D-pad on the GPi acts like an axis controller, and some older cores don't work with axis inputs. So the workaround is to use xboxdrv to map the axis to keyboard keys, and set keyboard key inputs in the core. This is not needed for any libretro cores, only standalone cores. It could also be solved in a future update from retroflag if they give us the ability to change from x-input to d-input. Let me know if I can be of help.



  • Great job SinisterSpatula, thanks! !



  • @lolo Most welcome! And thank you for sharing it here, I just happened across the thread looking to see if there was other fixes for GPi on here that I haven't seen yet. :)



  • Wow... So far indeed solved...
    Followed :
    https://www.reddit.com/r/retroflag_gpi/comments/c1psvj/dpad_not_working_in_pcsxrearmed_and_gpsp/

    .... and played crash bandicoot fullspeed !



  • Here is another way to solve the controller issue.
    GPI by default works in D-pad mode. Retroflag provide a way to change D-pad to axis mode.
    For new GPI model, use "START" instead of "SELECT". The power LED will change to purple and back to red.

    "SELECT + D-PAD UP" for 5 seconds to enable D-PAD input mode
    "SELECT + D-PAD LEFT" for 5 seconds to enable Joystick/Axis input mode

    Run pcsx-rearmed and connect a bluetooth keyboard, use ESC to enter menu, change GPI to "Joystick/Axis input mode", config controller and save to "/opt/retropie/configs/psx/pcsx/pcsx.cfg".

    Finally, you can add "bind \xA2 = Enter Menu" to pcsx.cfg. Then X key can be used as "ESC" to enter pcsx-rearmed menu. You don't need a keyboard in the future.

    For you reference, https://www.reddit.com/r/retroflag_gpi/comments/d91tuv/how_to_get_pcsxrearmed_to_work_on_retropie_for



  • If your Gpi is a newer model, the select button was changed to the start button, so select+DPAD LEFT becomes start+DPAD LEFT.



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.