Interface Speed

When clicking through the main menu, I noticed that the gameshell seems snappy and looks good when pressing the d-pad with around 1/2 a second between presses, but when I rapidly cycle the d-pad it seems sluggish. I think this is because of the rising animation that plays between a button press and the next Item being selected. I am looking to speed up the animations from the menu and wondered if anyone new where the code/file that controlled this would be?
I think speeding up this animation and maybe even being able to skip it with a rapid button press would improve the feel of the console and make navigating faster too.

Maybe it comes from the keypad, which has an arduino based microcontroller with the core of the keypad behaviour. The keypad detection has an 1 second pause in the loop. An issue was open long time ago: but code is still not updated or reworked

1 Like

Do you know if the Arduino code gets updated when the OS is changed? It shouldn’t, right?
And this effects the whole system, even games? or is it specifically for the menu?

It can`t be updated by an OS change, only the user can update it manually by recompiling and flashing the code. And it affects everything it is the hardware, so how the hardware of the buttons work, affects the whole system.

Thats what I thought. That means it could be put in place for a specific emulator or program, but also could be affecting how games play as well.
How safe do you think it is to change that value?

It can´t go wrong, you can experiment. If you see something isnt going right you can always reflash it to the original code. I myself customized it and added a debug flag and changed the buttons place:

Here you can find a tutorial on how to upload code to the keypad: [Tutorial] How to compile and upload code to the keypad


Just changed mine to a quarter of a second and it doesn’t seem to make a difference. It could be the animation… or a hiccup in the launcher?

The keyboard adjustment does seem to help reaction time in pico-8. Specifically this level in Celeste where the right timing is crucial. Before the Change it took me a lot longer to pass this level.

1 Like

I think the animation code you’re looking for is part of the Launcher, a Python program. The specific part I believe is this file:, there are functions there referring to easing the animations.

Thank you for finding this!
I adjusted the duration of the easing in “” to “20”. However, in order for it to change how the interface works, you will also have to change the duration in “” to match. I found 20 was about the lowest the speed can be set without really making the animation disorientingly fast.

1 Like

That’s much better!
line 250 of /home/cpi/launcher/
and line 100 of /home/cpi/launcher/
My Gameshell won’t load the launcher anymore, and that may have been the cause. Proceed with caution.