New game Donut Dodo, ported to RPi, controls don't map correctly.
-
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
-
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 justdonutdodo
) 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 withruncommand-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
-
@sleve_mcdichael I will give this a try! Thank you so much for the starting point and all the config information!
-
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.
HTH
PS: The game feels like Pac-Man, Donkey Kong, Lode Runner, Bombjack, ... on stereoids. :-)
-
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!
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.