Skip to content

xarcade2jstick infinite loop prevents IPAC support

ian57 has a custom build of xarcade2jstick which supports IPAC keyboard encoders. Unfortunately, the main() function was not updated to abort the main while() loop checking for TANKSTICK devices. As such, the recalbox startup script /etc/init.d/S26recalboxsystem, which launches xarcade2jstick in detached mode (-d), expecting an error code to return immediately before attempting to launch xarcade2jstick with explicit IPAC device path(s), is never able to support IPAC devices.

This can be replicated by logging in via ssh, listing all processes (ps -aux), noting that xarcade2jstick -d is still running (it has not exited, nor has it relaunched with an -e switch and the path to the IPAC device instance). Killing the initial xarcade2jstick process and re-listing the processes again (ps -aux) will then show the expected xarcade2jstick process with explicit device path to the IPAC device.

ian57 does not seem to have any way to submit issues for his custom branch of xarcade2jstick or I would submit this issue there.

Recommend either adding a timer of some sort to the S26recalboxsystem startup script then explicitly killing the initial xarcade2jstick process or contacting ian57 and updating the main() function to add a proper escape to the main while() loop.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information