I have tried it with the simple configuration you suggest in /opt/retropie/configs/msx/retroarch.cfg and have not been successful. I have run different combinations and, after no luck, I have reintalled from scracth:
Latest RetroPie 4.6
Only SNES Compatible USB Controller
Installed only xboxdrv and lr-bluemsx
to reach the same situation in previous message. Briefly:
pi@retropie:~ $ ls -alh /dev/input/by-id/
total 0
drwxr-xr-x 2 root root 80 Apr 29 21:26 .
drwxr-xr-x 4 root root 200 Apr 29 21:26 ..
lrwxrwxrwx 1 root root 9 Apr 29 21:26 usb-0810_usb_gamepad-event-joystick -> ../event0
lrwxrwxrwx 1 root root 6 Apr 29 21:26 usb-0810_usb_gamepad-joystick -> ../js0
pi@retropie:~ $ sudo cat /etc/rc.local
if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
fi
sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \
--evdev /dev/input/by-id/usb-0810_usb_gamepad-event-joystick \
--silent \
--detach-kernel-driver \
--force-feedback \
--deadzone-trigger 15% \
--deadzone 4000 \
--device-name "VIRTUAL-SNES2XBOX-CONTROLLER" \
--evdev-absmap ABS_X=dpad_x,ABS_Y=dpad_y \
--evdev-keymap BTN_THUMB=a,BTN_THUMB2=b,BTN_TRIGGER=x,BTN_WEST=y \
--evdev-keymap BTN_BASE3=back,BTN_BASE4=start \
--evdev-keymap BTN_TOP2=lb,BTN_PINKIE=rb \
--dpad-only \
--ui-axismap lt=void,rt=void \
--ui-buttonmap y=KEY_SPACE \
--ui-buttonmap lb=void,rb=KEY_0 \
&
exit 0
pi@retropie:~ $ sudo cat /opt/retropie/configs/all/retroarch-joypads/VIRTUAL-SNES2XBOX-CONTROLLER.cfg
input_device = "VIRTUAL-SNES2XBOX-CONTROLLER"
input_driver = "udev"
input_enable_hotkey_btn = "4"
input_up_axis = "-1"
input_left_axis = "-0"
input_state_slot_decrease_axis = "-0"
input_select_btn = "4"
input_right_axis = "+0"
input_state_slot_increase_axis = "+0"
input_y_btn = "3"
input_x_btn = "2"
input_menu_toggle_btn = "2"
input_down_axis = "+1"
input_start_btn = "5"
input_exit_emulator_btn = "5"
input_b_btn = "1"
input_reset_btn = "1"
input_a_btn = "0"
pi@retropie:~ $ cat /opt/retropie/configs/all/runcommand-onstart.sh
pi@retropie:~ $ cat /opt/retropie/configs/all/runcommand-onend.sh
cat: /opt/retropie/configs/all/runcommand-onend.sh: No such file or directory
runcommand-onstart.sh is an empty file and runcommand-onend.sh does not exist
pi@retropie:~ $ evtest
No device specified, trying to scan all of /dev/input/event*
Not running as root, no devices may be available.
Available devices:
/dev/input/event0: usb gamepad
/dev/input/event1: VIRTUAL-SNES2XBOX-CONTROLLER - Keyboard Emulation
/dev/input/event2: VIRTUAL-SNES2XBOX-CONTROLLER
Select the device event number [0-2]: ^C
Mind it is event2 that responds to SNES Compatible USB Controller (not event1) and mind controller configuration is set to global (all).
pi@retropie:~ $ sudo cat /opt/retropie/configs/all/retroarch.cfg
[...]
input_player1_joypad_index = "1"
input_player2_joypad_index = "0"
input_player3_joypad_index = "2"
input_player4_joypad_index = "3"
[...]
With the configuration above SNES Compatible USB Controller is usable in EmulationStation. When entering RetroPie > Retroarch (usable as well)...
usb gampead configured in port #0
VIRTUAL-SNES2XBOX-CONTROLLER configured in port #1
Retroarch > Settings > Input >
Port 1 Binds VIRTUAL-SNES2XBOX-CONTROLLER
Port 2 Binds usb gamepad
So the correlation between /opt/retropie/configs/all/retroarch.cfg and Port Binds is obvious.
Entering MSX videogame...
usb gampead configured in port #0
VIRTUAL-SNES2XBOX-CONTROLLER configured in port #1
Controller is irresponsive. However, Select+Start (exit emulator) works at least and I can return to EmulationStation. At this stage, I don't know what else to test...
Many thanks in advance for your support all the way.