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

    New game Donut Dodo, ported to RPi, controls don't map correctly.

    Scheduled Pinned Locked Moved Help and Support
    arcadeconfigurationanalogdigitaljoystick
    5 Posts 4 Posters 724 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.
    • M
      MarcusRaven86
      last edited by

      I have an RPi4 in an Arcade1Up Marvel Super Heroes cabinet. I recently purchased the RPi port of Donut Dodo (link below). The controls don't map correctly to what I would've expected, and my arcade Start button ended up being the jump. The creator added a mapping option to the game, but the process goes through each control sequentially starting with directions. My joystick works perfectly fine until this point, to where it no longer detects when mapping starts. Apparently the mapping cycle is looking for digital input, whereas my joystick uses analog (I think?), and the basic analog usage works fine but won't allow me to remap, so I can't even remap the controls themselves. Any idea what I might be able to do, or settings in my RPi4 I could look at to fix this?

      Link to game (not free, but not expensive either): https://zapposh.itch.io/donut-dodo-retropie-edition

      Tweet with my video of the issue I sent to them: https://twitter.com/MarcusRaven86/status/1667577801774448640

      1 Reply Last reply Reply Quote 0
      • S
        sleve_mcdichael
        last edited by sleve_mcdichael

        You can probably remap your controls with xboxdrv. See https://retropie.org.uk/docs/Universal-Controller-Calibration-%26-Mapping-Using-xboxdrv/

        Just a default mapping that mimics an Xbox controller may be enough, either for it to work out the box or at least allow you to remap in-game. Or in the worst case, you can brute-force a custom mapping that puts the action buttons back where they belong.

        Follow the instructions in that guide and you should end up with a mapping that looks somewhat like this (this is a default mapping for a Logitech wireless controller; of course your values may be different):

        sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv >> /dev/shm/runcommand.log 2>&1 \
            --evdev /dev/input/by-id/usb-Logitech_Wireless_Gamepad_F710_AC0899B0-event-joystick \
            --silent \
            --detach-kernel-driver \
            --force-feedback \
            --deadzone-trigger 15% \
            --deadzone 4000 \
            --device-name "Custom XBOXDRV gamepad" \
            --evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_RX=x2,ABS_RY=y2,ABS_Z=lt,ABS_RZ=rt,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y \
            --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 \
            &
        

        Save this mapping to a .sh file, named for the "system" that the port runs as (likely just donutdodo) in some folder, for example:

        File: /opt/retropie/configs/all/xboxdrv/donutdodo.sh

        (I use this folder because, as with all of configs, it is already included in the Samba file share for remote backups or network file access)

        Now you need to "activate" this mapping whenever you start the game (and deactivate it after).

        Option 1, you can add a couple lines to the Donut Dodo launch script in the roms/ports folder, before and after the "/opt/retropie/supplementary/runcommand/runcommand.sh" line:

        #!/bin/bash
        bash /opt/retropie/configs/all/xboxdrv/donutdodo.sh #xbd
        "/opt/retropie/supplementary/runcommand/runcommand.sh" 0 _PORT_ "donutdodo" ""
        sudo killall xboxdrv >> /dev/shm/runcommand.log 2>&1 #xbd
        

        Or option 2, set runcommand-onstart.sh to automatically apply a mapping whenever it matches the "system" under which a rom or port is launched, and kill the process afterwards with runcommand-onend.

        File /opt/retropie/configs/all/runcommand-onstart.sh:

        # $1=system, $2=emulator, $3=rompath, $4=command
        [[ -f "/opt/retropie/configs/all/xboxdrv/$1.sh" ]] && bash "/opt/retropie/configs/all/xboxdrv/$1.sh" #xbd
        

        File /opt/retropie/configs/all/runcommand-onend.sh:

        sudo killall xboxdrv >> /dev/shm/runcommand.log 2>&1 #xbd
        
        M 1 Reply Last reply Reply Quote 0
        • M
          MarcusRaven86 @sleve_mcdichael
          last edited by

          @sleve_mcdichael I will give this a try! Thank you so much for the starting point and all the config information!

          1 Reply Last reply Reply Quote 0
          • LolonoisL
            Lolonois
            last edited by Lolonois

            For other hitting this topic:

            I have hacked another workaround which will map the buttons (in the green box, see screen below) to the settings to one of your controller configs from RetroPie.

            Find the script and instructions here.

            donutdodo_controller_remap.png

            HTH

            PS: The game feels like Pac-Man, Donkey Kong, Lode Runner, Bombjack, ... on stereoids. :-)

            1 Reply Last reply Reply Quote 0
            • T
              ts-x
              last edited by ts-x

              For anyone running an older version of RetroPie, this game successfully installed on 4.3 for me. Note that I ran the normal install process but then had to manually move the install script module from ext to scriptmodules/ports, and then install like a normal port from within RetroPie to complete. The keymapper is indeed buggy, using it with my Xbox 360 controller corrupts the Dpad mapping for the game. So you basically have a choice between accepting the default mappings or losing Dpad support (with the game still being playable via the joystick). FYI, I tried @Lolonois' script but it errors out because of missing dependencies related to my older 4.3 install.

              Regardless, this is a frantic and fun game...definitely worth checking out!

              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.