I confirm the same as @mosi0815 the buttons in runcommand are very slow to respond, but indeed it is much better (but not good!) when controler does not move. By very slow I mean we need several seconds to have the button acquired.
Thus, I need to constantly press (not hold) f.e. DPad Down button for few seconds to see the action reflected in runcommand menu.
Other menus and games work perfectly fine.
Edit:
The problem is due to time.sleep is always performed, even when there are events. So after each event is processed, the script waits some small amount of time, if there are many events waiting to be processed, then this is lagging menus. I fixed this problem by amending /opt/retropie/supplementary/runcommand/joy2key.py
At end of script I added check if the script can sleep, so if event occurs no sleep is performed:
js_fds = []
rescan_time = time.time()
while True:
# added this:
do_sleep = True
if not js_fds:
js_devs, js_fds = open_devices()
if js_fds:
i = 0
current = time.time()
js_last = [None] * len(js_fds)
for js in js_fds:
js_last[i] = current
i += 1
else:
time.sleep(1)
else:
i = 0
for fd in js_fds:
event = read_event(fd)
if event:
# added this:
do_sleep = False
if time.time() - js_last[i] > JS_REP:
if fd in js_button_codes:
button_codes = js_button_codes[fd]
else:
button_codes = default_button_codes
if process_event(event):
js_last[i] = time.time()
elif event == False:
close_fds(js_fds)
js_fds = []
break
i += 1
if time.time() - rescan_time > 2:
rescan_time = time.time()
if cmp(js_devs, get_devices()):
close_fds(js_fds)
js_fds = []
# added this:
if do_sleep:
time.sleep(0.01)
Created pull request with this fix: https://github.com/RetroPie/RetroPie-Setup/pull/2039