Interesting bug with controllermap

So I’ve been playing with a Rust program that uses the config string generated by controllermap. It shows all the keys and the text of a particular button turns green when you press it and it shows PRESSED/RELEASED.
But it got A and B buttons mixed up and also X and Y. I’d press A, it highlighted B etc.
I checked my code, it wasn’t there. I ran controllermap again and it generated a similar config string.
I then went back to the Pi version of Asteroids, put it on a Pi, started debugging it, pressed the fire button and it hit the line of code for the A button. D’oh.
The only conclusion I can come up with is that controllermap gets it wrong for my gamepad. I had somehow missed it when I added gamepad control for the Asteroid Pi.
It’s quite easy to fix. This is what the full text in gamepad.txt look like.
030000001008000001e5000010010000,usb gamepad,platform:Linux,crc:417e,a:b2,b:b1,x:b3,y:b0,back:b8,start:b9,leftshoulder:b4,rightshoulder:b5,leftx:a0,lefty:a1,
but we’re only interesed in the button mappings for a,b, x and y which are in bold.
a:b2,b:b1,x:b3,y:b0,
Just swap the a b mappings and the x and y so it looks like
a:b1,b:b2,x:b0,y,b3
Then save the file and it now works correctly.

I recently bought one with 8 GB RAM pictured above. I haven’t got an SSD for it yet so am still pottering about with an SD Card.


Well actually I asked Microsoft’s CoPilot AI and it sorted it!
This is on Ubuntu 24.04 LTS. I’ve installed the dev versions of SDL2, including images and TTF. You can read how to install them in
Is that the use needs to specify file::module_name::…