batocera-linux / batocera.linux

batocera.linux
https://batocera.org
Other
1.97k stars 514 forks source link

Non-US keyboard layout not working in RetroArch cores #7595

Open joerg-knitter opened 1 year ago

joerg-knitter commented 1 year ago

Hi,

I am trying to get a German keyboard layout working in RetroArch-VICE. The apparently appropriate way to get a non-US keyboard layout (got it working in RetroArch on Windows) is to take the "sdl_pos_de.vkm" and "sdl_sym_de.vkm" files (or the corresponding ch, da, fi, no etc. files) and put them in RetroArch´s "system/vice/C64" folder, renaming them to "sdl_pos.vkm" and "sdl_sym.vkm" and enabling them in RetroArch in "core settings/input/keyboard keymap" with "Positional (user-defined)". In Batocera, I used the folder "/userdata/system/configs/retroarch/system" and created the subfolders "vice" and "C64" and put the vkm files there. Unfortunately, the logfiles says "[libretro ERROR] Keyboard: Cannot load keymap 'sdl_pos.vkm'." without anymore details (e.g. the expected path). The result is that the keyboard does not work at all with this settings compared to "Positional" or "Symbolic" (without the "user-defined"). Using the "standalone" VICE, the keyboard works as expected, but I prefer using shaders, bezels and all the other features of RetroArch. Also ES, File manager and Terminal work without problems.

Testing with the PUAE core, I get the same problem like with VICE: The German keyboard layout also does not work here, but for this core, no special configuration seems to be needed in contrast to the VICE core.

Tested with Batocera v36 Beta from 2022/11/30 and v35 stable - not sure if it ever worked before.

How to reproduce:

iconoclusterdotexe commented 1 year ago

Try to add them to userdata/bios/ instead of /userdata/system/configs/retroarch/system/

The bios folder is used as a reference to RA system folder. So, you can add files like PUAE floppy sound driver, Vice jiffydos files, epyx fast-load cartridge etc...

joerg-knitter commented 1 year ago

Thanks for this hint, but I wouldn´t know now how to change this for PUAE.

With RetroArch-Vice, it kind of works when I put the files into the userdata/bios/vice/C64 folder, but not right from the start. If I start "Fix it Ralph" now, I still have the US keyboard, even though "Options/Input/Keyboard Keymap" is set to "Positional (User-defined)". If I switch to another option, then back to "Positional (User-defined)" and select "Quick Menu/Resume" or "Reset", it works, but not right after the start of "Fix it Ralph"/RetroArch.

joerg-knitter commented 1 year ago

The mentioned problem of the C64 keymap not being loaded from the start has been fixed in the core recently: https://forums.libretro.com/t/keyboard-keymap-not-automatically-loaded-on-core-start/39932