RaspberryPi: Tu maquina arcade

PeCe

#6 #29 Adjunto foto de mi progreso y aprovecho para preguntar:

No me funciona bien la palanca del segundo jugador. Cuando conecto la controladora USB a Windows me reconoce los dos joysticks y todos los botones sin problemas, funciona perfecta, pero cuando la conecto a la Raspberry me detecta las dos palancas como si fueran una. Es decir, moviendo cualquiera de las dos palancas me mueve al jugador 1, y en el menú de configuración de MAME por ejemplo, al asignar botones, mueva la que mueva la detecta como jugador 1. ¿Sabéis xq puede ser? Antes de conectar los botones arcade hice varias pruebas con un pad logitech.

#4 Te menciono a ti también que te sigo en el otro hilo y se que eres un crack :qq:

2 2 respuestas
Vorhaut

#31 Muy chula !

La mia sigue igual. No he arregaldo nada :_(

Necesito terminarla, porque ahora mismo la tengo muerta, la verdad jaja

AcidNos

#31 Estas usando RetroPie?? Como tienes conectadas las palancas, a las GPIO de la Raspberry o con un controlador por USB?

1 respuesta
Vorhaut

#33 Deberian estar a la entrada USB. Y mediante Retropie darle alguna configuracion para que las detecte por separado pese a tener solo 1 usb

1 1 respuesta
AcidNos

#34 Posiblemente lo que te pase es eso. Tendras que usar algun "receptor" para ver que direccion asigna al RPi a cada boton y a cada direccion del joystick. Despues tendras que crearte una configuracion especifica para cada parte del joystick. Lo suyo para que no te hubiese dado tantos problemas, habria sido un USB por joystick.

Mirate en el hilo de la RetroGear que ahi publique un problema similar de falta de deteccion de botones y tuve que asignar cada boton uno por uno. Ahora mismo no recuerdo como se hacia pero creo que lo puse en ese hilo.

1 1 respuesta
PeCe

#35 Estoy usando RetroPie y una única controladora USB para los 2 jugadores. Mañana con calma repasaré el hilo, gracias!

La verdad es que tendría que habérmelo mirado un poco más antes de preguntar, hoy le he dedicado todo el día a la maquinita y estoy un poco quemado...

Os adjunto el mapa de pins de la controladora que estoy utilizando por si tenéis curiosidad:

1 respuesta
AcidNos

#36 Vale este es el trabajo que segui en su dia. El proyecto era de Adafruit y se llamaba RetroGame. En el lo que se hace es crear una especie de controlador para decirle a la RPi que "via" usa cada boton o cada direccion del joystick.

Yo consegui solucionarlo con esto:

https://learn.adafruit.com/retro-gaming-with-raspberry-pi/buttons

Pero claro, yo enchufe la botonera directamente a la Raspberry y no se si valdra para los perifericos o controladores conectados por USB. Por probar no pierdes nada.

En ultima instancia siempre puedes coger los controles del jugador 2 y conectarlos directamente a la RPi por GPIO para separar circuitos y que no tengas ese problema en el futuro.

2 1 respuesta
PeCe

#37 He seguido investigando y he encontrado este hilo en reddit que me redirigía a este post en petrockblock. Si no lo he entendido mal, comentan que si elimino unas líneas y recompilo el kernel debería solucionarse.

Problema (perdonad, soy así de torpe): no encuentro el fichero a modificar. Teóricamente es este /drivers/hid/hid-input.c pero he buscado en toda la SD de la RPi y nada. ¿Sabéis donde me estoy perdiendo, o si es que directamente estoy perdido del todo?

Edit: Añado que he encontrado un kernel ya compilado con esto corregido, pero me da un poco de miedo ponerlo ya que es de una versión anterior.

7 días después
luzius

Ahora me habeis hecho salivar, a ver si cuando acabe examenes reuno coraje y me meto yo también a hacer una.

1
8 días después
PeCe

Gente, pasadas las fiestas por fin he podido dedicarle tiempo y solucionar el problema de la segunda palanca (#31). Voy a explicar como lo he hecho por si alguien se anima y le pasa lo mismo:

  • Arrancamos nuestra raspberry y vamos a consola
  • Descargamos los fuentes de raspbian:
    $ git clone --depth=1 https://github.com/raspberrypi/linux
    $ sudo apt-get install bc
    
  • En el directorio en el que ejecutamos los comandos anteriores ahora tendremos una carpeta llamada linux. Abrimos el fichero linux/drivers/hid/hid-input.c
    $ sudo nano linux/drivers/hid/hid-input.c 
  • Y eliminamos (o comentamos) las siguientes lineas:
    if (field->flags & HID_MAIN_ITEM_RELATIVE)
    	map_rel(usage->hid & 0xf);
    else
    	map_abs_clear(usage->hid & 0xf);
    break;
    
  • Ahora ya podemos recompilar el kernel. Ejecutamos los siguientes comandos (¡OJO! Son para Raspberry Pi 2. Para RPi1 cambian un poco):
    $ cd linux
    $ KERNEL=kernel7
    $ make -j4 bcm2709_defconfig
    $ make -j4 zImage modules dtbs
    $ sudo make -j4 modules_install
    $ sudo cp arch/arm/boot/dts/*.dtb /boot/
    $ sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
    $ sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/
    $ sudo scripts/mkknlimg arch/arm/boot/zImage /boot/$KERNEL.img
    

Con todo esto, he reiniciado y RetroPie ya me detectaba ambas palancas en ejes diferente y por tanto las podía usar por separado (una para player 1 y la otra para player 2).

5
1 mes después
PeCe

Refloto el hilo con la última foto. Lo que me faltaba eran las tiras de leds en el frontal por detrás de un vinilo que encargué imprimir:

Con esto la doy por terminada. No se si más adelante encargaré vinilos para los laterales pero de momento se queda así.

2
17 días después
Loa

#1 tengo un compañero montando una y tiene un problema un poco raro, el joystick no funciona hacia arriba, se queda constantemente pulsado. ¿algún truco para comprobar si es un fallo físico del mando o es algo de configuración?

1 respuesta
PeCe

#42 Si el joystick tiene interfaz USB que pruebe a conectarlo a Windows. Al mío Windows le asigna driver y lo reconoce como dos pads, y en el panel de control pude revisar que todo estaba correctamente conectado. Si en lugar de una interfaz USB está usando la GPIO de la propia raspberry ni idea...

4 meses después
JohnVoiden

Después de una burrada de tiempo he conseguido ahorrar dinero pero me veo en la dificultad de no tener la posibilidad de cortar la madera como se debería, porque no tengo las herramientas, alguien podría sugerir, algo?

1 respuesta
Vorhaut

#44 En leroy merlin te hacen el corte gratuito. Ahí aproveché y corté algunas maderas.

1 respuesta
JohnVoiden

#45 Oh, muchisimas gracias!

9 meses después
ercabesa

Hola, alguien sabe donde comprar una pantallas de 5 o 7 pulgadas baratita?

Usuarios habituales

  • JohnVoiden
  • Vorhaut
  • PeCe
  • AcidNos
  • Isengard
  • garlor
  • HeXaN