Keyboard not working in any game
-
Hello.
I installed retropie on a 64 bit laptop running Debian 12 using the method described in the docs. Everything seems to work correctly, I configured the keyboard using emulation station's config and it works in the menus. However openning a game, makes the keyboard totally unresponsive. No keys work and not even hotkeys. It looks like the emulationstation doesn't create/update configs for Retroarch although all scripts are there.
I don't know if it matters but I copied the configs from a backup and I noticed that the user there was called pi while the user in my new system is called retropie.
I searched and replaced the occurrences I found but still the controls don't work.
Any ideas?
Thanks in advance.
-
@m33ts4k0z said in Keyboard not working in any game:
It looks like the emulationstation doesn't create/update configs for Retroarch although all scripts are there.
It does, unless there's a permission or installation issue (i.e. you removed the auto-configuration from ES or changed the permissions and the install user doesn't have the proper rights to write the file). I use my keyboard all the time in RetroArch. The configuration is saved in
/opt/retropie/configs/all/retroarch.cfg
directly.I don't know if it matters but I copied the configs from a backup and I noticed that the user there was called pi while the user in my new system is called retropie.
Which configs did you copy ? Please post the
es_input.cfg
file from your$HOME/,emulationstation
folder, surrounded by code blocks. -
Thank you for your answer.
I copied the /etc/emulationstation as well as the /opt/retropie/configs. These came from a Rpi3b+ installation.
Another note: I haven't added the user to the sudoers that dont need to input the password as the docs suggest. Should I do that?
Here comes the es_input.cfg file:
<?xml version="1.0"?> <inputList> <inputAction type="onfinish"> <command>/opt/retropie/supplementary/emulationstation/scripts/inputconfiguration.sh</command> </inputAction> <inputConfig type="keyboard" deviceName="Keyboard" deviceGUID="-1"> <input name="rightanalogdown" type="key" id="106" value="1"/> <input name="left" type="key" id="1073741904" value="1"/> <input name="rightanalogleft" type="key" id="109" value="1"/> <input name="right" type="key" id="1073741903" value="1"/> <input name="pagedown" type="key" id="101" value="1"/> <input name="down" type="key" id="1073741905" value="1"/> <input name="rightanalogup" type="key" id="105" value="1"/> <input name="pageup" type="key" id="113" value="1"/> <input name="rightanalogright" type="key" id="108" value="1"/> <input name="y" type="key" id="97" value="1"/> <input name="x" type="key" id="119" value="1"/> <input name="b" type="key" id="115" value="1"/> <input name="a" type="key" id="100" value="1"/> <input name="up" type="key" id="1073741906" value="1"/> <input name="select" type="key" id="27" value="1"/> <input name="start" type="key" id="13" value="1"/> <input name="leftanalogright" type="key" id="104" value="1"/> <input name="leftanalogup" type="key" id="116" value="1"/> <input name="leftanalogdown" type="key" id="98" value="1"/> <input name="leftanalogleft" type="key" id="102" value="1"/> </inputConfig> </inputList>
The retroarch.cfg file seems to have saved at least some of the values correctly:
input_player1_a = "d" input_player1_a_axis = "nul" input_player1_a_btn = "nul" input_player1_a_mbtn = "nul" input_player1_analog_dpad_mode = "0" input_player1_b = "s" input_player1_b_axis = "nul" input_player1_b_btn = "nul" input_player1_b_mbtn = "nul" input_player1_down = "down" input_player1_down_axis = "nul" input_player1_down_btn = "nul" input_player1_down_mbtn = "nul" input_player1_gun_aux_a = "nul" input_player1_gun_aux_a_axis = "nul" input_player1_gun_aux_a_btn = "nul" input_player1_gun_aux_a_mbtn = "nul" input_player1_gun_aux_b = "nul" input_player1_gun_aux_b_axis = "nul" input_player1_gun_aux_b_btn = "nul" input_player1_gun_aux_b_mbtn = "nul" input_player1_gun_aux_c = "nul" input_player1_gun_aux_c_axis = "nul" input_player1_gun_aux_c_btn = "nul" input_player1_gun_aux_c_mbtn = "nul" input_player1_gun_dpad_down = "nul" input_player1_gun_dpad_down_axis = "nul" input_player1_gun_dpad_down_btn = "nul" input_player1_gun_dpad_down_mbtn = "nul" input_player1_gun_dpad_left = "nul" input_player1_gun_dpad_left_axis = "nul" input_player1_gun_dpad_left_btn = "nul" input_player1_gun_dpad_left_mbtn = "nul" input_player1_gun_dpad_right = "nul" input_player1_gun_dpad_right_axis = "nul" input_player1_gun_dpad_right_btn = "nul" input_player1_gun_dpad_right_mbtn = "nul" input_player1_gun_dpad_up = "nul" input_player1_gun_dpad_up_axis = "nul" input_player1_gun_dpad_up_btn = "nul" input_player1_gun_dpad_up_mbtn = "nul" input_player1_gun_offscreen_shot = "nul" input_player1_gun_offscreen_shot_axis = "nul" input_player1_gun_offscreen_shot_btn = "nul" input_player1_gun_offscreen_shot_mbtn = "nul" input_player1_gun_select = "nul" input_player1_gun_select_axis = "nul" input_player1_gun_select_btn = "nul" input_player1_gun_select_mbtn = "nul" input_player1_gun_start = "nul" input_player1_gun_start_axis = "nul" input_player1_gun_start_btn = "nul" input_player1_gun_start_mbtn = "nul" input_player1_gun_trigger = "nul" input_player1_gun_trigger_axis = "nul" input_player1_gun_trigger_btn = "nul" input_player1_gun_trigger_mbtn = "1" input_player1_joypad_index = "0" input_player1_l = "q" input_player1_l2 = "num1" input_player1_l2_axis = "+5" input_player1_l2_btn = "nul" input_player1_l2_mbtn = "nul" input_player1_l3 = "g" input_player1_l3_axis = "nul" input_player1_l3_btn = "nul" input_player1_l3_mbtn = "nul" input_player1_l_axis = "nul" input_player1_l_btn = "nul" input_player1_l_mbtn = "nul" input_player1_l_x_minus = "nul" input_player1_l_x_minus_axis = "nul" input_player1_l_x_minus_btn = "nul" input_player1_l_x_minus_mbtn = "nul" input_player1_l_x_plus = "nul" input_player1_l_x_plus_axis = "nul" input_player1_l_x_plus_btn = "nul" input_player1_l_x_plus_mbtn = "nul" input_player1_l_y_minus = "nul" input_player1_l_y_minus_axis = "nul" input_player1_l_y_minus_btn = "nul" input_player1_l_y_minus_mbtn = "nul" input_player1_l_y_plus = "nul" input_player1_l_y_plus_axis = "nul" input_player1_l_y_plus_btn = "nul" input_player1_l_y_plus_mbtn = "nul" input_player1_left = "left" input_player1_left_axis = "nul" input_player1_left_btn = "nul" input_player1_left_mbtn = "nul" input_player1_mouse_index = "0" input_player1_r = "e" input_player1_r2 = "num3" input_player1_r2_axis = "+4" input_player1_r2_btn = "nul" input_player1_r2_mbtn = "nul" input_player1_r3 = "k" input_player1_r3_axis = "nul" input_player1_r3_btn = "nul" input_player1_r3_mbtn = "nul" input_player1_r_axis = "nul" input_player1_r_btn = "nul" input_player1_r_mbtn = "nul" input_player1_r_x_minus = "nul" input_player1_r_x_minus_axis = "nul" input_player1_r_x_minus_btn = "nul" input_player1_r_x_minus_mbtn = "nul" input_player1_r_x_plus = "nul" input_player1_r_x_plus_axis = "nul" input_player1_r_x_plus_btn = "nul" input_player1_r_x_plus_mbtn = "nul" input_player1_r_y_minus = "nul" input_player1_r_y_minus_axis = "nul" input_player1_r_y_minus_btn = "nul" input_player1_r_y_minus_mbtn = "nul" input_player1_r_y_plus = "nul" input_player1_r_y_plus_axis = "nul" input_player1_r_y_plus_btn = "nul" input_player1_r_y_plus_mbtn = "nul" input_player1_right = "right" input_player1_right_axis = "nul" input_player1_right_btn = "nul" input_player1_right_mbtn = "nul" input_player1_select = "escape" input_player1_select_axis = "nul" input_player1_select_btn = "nul" input_player1_select_mbtn = "nul" input_player1_start = "enter" input_player1_start_axis = "nul" input_player1_start_btn = "nul" input_player1_start_mbtn = "nul" input_player1_turbo = "nul" input_player1_turbo_axis = "nul" input_player1_turbo_btn = "nul" input_player1_turbo_mbtn = "nul" input_player1_up = "up" input_player1_up_axis = "nul" input_player1_up_btn = "nul" input_player1_up_mbtn = "nul" input_player1_x = "w" input_player1_x_axis = "nul" input_player1_x_btn = "nul" input_player1_x_mbtn = "nul" input_player1_y = "a" input_player1_y_axis = "nul" input_player1_y_btn = "nul" input_player1_y_mbtn = "nul"
-
@m33ts4k0z said in Keyboard not working in any game:
I copied the /etc/emulationstation as well as the /opt/retropie/configs. These came from a Rpi3b+ installation.
I suggest you clear
retroarch.cfg
, re-install theretroarch
package to generate the default (for a PC) configuration file and then re-configure the keyboard in EmulationStation. Clearly the configuration is saved, but you may have some leftovers from your previous config, since the default RetroPie configuration doesn't contain all those input definitions. -
-
@m33ts4k0z said in Keyboard not working in any game:
I tried to do that but I receive an error now when I compile retroarch from source. Here is the log.
This looks like a Github problem to clone the repository for
joypad-autoconfig
, try again later on. -
It looks like something happens right after the joypad-autoconfig gets cloned. I commented it and the same error occrus right after the libretro-core is cloned. But I can't seem to find the source of this since this error seems to come from the
runCmd
function that its never called after that? -
@m33ts4k0z said in Keyboard not working in any game:
But I can't seem to find the source of this since this error seems to come from the runCmd function that its never called after that?
Not sure what part is called, but I can't reproduce the error. Since it worked before, did you change anything after the initial installation that might make the install fail ?
-
Ok I figured it out. The error was that the
/opt/retropie/configs/all/retroarch/shaders
directory wasn't empty and the git pull was aborting. Maybe you can add a git reset --hard or something similar there? Because the .git directory existed in there.About the initial issue, I got the keyboard working now but still it looks like the keys that I assigned through emulationstation are not used? Instead the default Retroarch keys are used (z x c v)
I believe I have to delete some more cfg files in order for emulation station to recreate them.
-
@m33ts4k0z said in Keyboard not working in any game:
Maybe you can add a git reset --hard or something similar there? Because the .git directory existed in there.
It's because the shaders repos are different on a PC than on a Pi. Even if
reset
is used, it wouldn't work.I believe I have to delete some more cfg files in order for emulation station to recreate them.
You may have overrides or saved configis in each system's folder that trumps the main config file.
EDIT: if you used reset or save configuration from RetroArch's menu, that's likely the case. Not something we recommend. -
No actually I haven't touched any Retroarch settings.
For example, for arcade, my
retroach.cfg
looks like this:# Settings made here will only override settings in the global retroarch.cfg if placed above the #include line input_remapping_directory = "/opt/retropie/configs/arcade" #include "/opt/retropie/configs/all/retroarch.cfg"
It looks like fb-neo and mame have totally different key bidnings for some reason although they both use the same cfg:
lr-fbneo = "/opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-fbneo/fbneo_libretro.so --config /opt/retropie/configs/arcade/retroarch.cfg %ROM%" lr-fbneo-neocd = "/opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-fbneo/fbneo_libretro.so --subsystem neocd --config /opt/retropie/configs/arcade/retroarch.cfg %ROM%" lr-mame2003 = "/opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-mame2003/mame2003_libretro.so --config /opt/retropie/configs/arcade/retroarch.cfg %ROM%" default = "lr-mame2003" lr-mame = "/opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-mame/mamearcade_libretro.so --config /opt/retropie/configs/arcade/retroarch.cfg %ROM%" lr-flycast = "/opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-flycast/flycast_libretro.so </dev/null --config /opt/retropie/configs/arcade/retroarch.cfg %ROM%"
-
@m33ts4k0z said in Keyboard not working in any game:
It looks like fb-neo and mame have totally different key bidnings for some reason although they both use the same cfg:
Hm, for
mame2003
- not from what I've experienced so far - do you have an example where the bindings are 'totally different' ? Excluding any remaps/overrides, just the OOB configuration. -
I tried cadillacs and dinosaurs using fb-neo and lr-mame-2003 and the keys where different. However I'm sure the issue is somewhere with the configs I copied. I have no overrides anywhere but how could I be sure that I have no overrides when a load the game?
-
@m33ts4k0z said in Keyboard not working in any game:
I have no overrides anywhere but how could I be sure that I have no overrides when a load the game?
Usually the loading of overrides is printed by RetroArch on start, unless disabled. Mame2003 can also be differently configured through the MAME menu, which trumps the input configuration from RetroArch - see https://retropie.org.uk/docs/lr-mame2003/#mame-menu.
-
Yes indeed retroarch says that the config is saved to /opt/retropie/configs/arcade/retroarch.cfg when it starts? I suppose the issue is a setting that overrides retropie, right?
-
Issues solved.
The problem was that emulationstation didn't have permission to right to
/opt/retropie/configs/all
. All keybidnings are working fine now.
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.