Buenas
Te cuento mi experiencia mapeando botones. Retropie es un linux, eso facilita bastante las cosas para ver que puede estar fallando. Con una consola y 2 comandos podrás obtener bastante información de lo que esta pasando por debajo.
Desde una consola lo primero que miraremos es si reconoce el adaptador usb, en mi caso tengo un xin-mo doble, hacemos un lsusb:
La linea que pone Bus 001 Device 004: ID 16c0:05e1 Van Ooijen Technische Informatica Free shared USB VID/PID pair for CDC devices este es el controlador del xin-mo, lo reconoce.
Dependiendo de la placa adaptadora de los botones puede ser algo distinto, eso ya depende del fabricante.
Ya sabiendo que la reconoce nos vamos a hacer el test de como esta mapeando el linux dichos botones, para ello haremos un jstest "adaptador", en mi caso el xin-mo crea los dos joysticks y los llama js0 y js1, y estan creados en /dev/input
Escribimos jstest /dev/input/js0
Nos aparece el mapeo de los botones, para saber a que corresponde cada uno, según pulsas cualquier botón de ese mando o mueves la palanca del joystick se te va a poner un valor a on, dependiendo del numero que sea ya sabes a que valor corresponde. También puedes comprobar si todos los botones comunican con la placa y si alguno esta entrando por dos sitios a la vez (es raro..).
Y para comprobar el otro mando, pues hacemos otro jstest al js1
Igual, pulsando botones y moviendo el joysitck veras que cambian los valores a on, con eso compruebas si los esta capturando la placa y el orden que te los esta cogiendo.
Espero que te sirva.
Saludos