Zona Arcade. Construye, Restaura y Decora tu Máquina Arcade y Pinball.

Usa y configura tus mandos arcade LPT bajo linux., Ayudas para compilación y uso de OpenPPJoy bajo linux.

« Older   Newer »
  Share  
view post Posted on 28/2/2011, 01:20     +1   -1
Avatar


Group:
Moderator
Posts:
2,025
Location:
Sevilla

Status:


Introducción:
OpenPPjoy es un proyecto open source encabezado por David Colmenero. Se trata de un módulo para poder implementar nuestros joystick arcade conectados al puerto paralelo en máquinas con linux. El fundamento del interface es el mismo que el del IPP para windows, salvando la diferencia que en el driver de linux, de momento no es configurable 100% y hay que ajustarse a unos patrones preestablecidos.

En este hilo expondré como compilar el módulo e instalarlo; y explicaré como van pre-configurados los conductores del db25 para poder realizar nuestro IPP y así poder cablear adecuadamente nuestros joysticks.

Las pruebas de OpenPPjoy las he realizado compilando el módulo versión r16 del source, con la distribución Ubuntu 10.04 (lucid) y kernel 2.6.32-28-generic. Arquitectura i386.

El paquete de distribución de OpenPPjoy dispone de una ayuda en forma de "leeme.txt" sin la que no hubiera podido poner en marcha el módulo (para nada soy un experto en estas cosas) y la cual voy a tomar como base, aclarándolo aún más en la medida de lo que pueda.

El código fuente se ha modificado hace relativamente poco y actualmente el módulo es funcional para las distribuciones de ubuntu 10.04 y 10.10.


Vayamos por partes.
El hardware.
La construcción del IPP es la misma que se expone en este hilo enfocado para su implementación en windows:
Tutorial: Construcción sencilla de interface de puerto paralelo (IPP) para panel de control arcade
La única diferencia para implementarlo en linux es que los botones no se asignan arbitrariamente a la hora de asignar contactos en el IPP, sino que los botones de los joysticks ya están pre-establecidos.

Si echamos un vistazo a los pines del db25, las conexiones se consiguen cruzando los pines de estado (10, 11, 12, 13 y 15) con los pines de datos (2,3,4,5,6,7,8,9, 1,14, 16,17).

1952
El módulo tiene posibilidad de configurar hasta un total de 5 dispositivos conectados a la vez en un mismo puerto paralelo, a elegir joysticks de 2 axis con 8 botones y/o hasta dos configuración pre-establecidas de teclado. Las conexiones de cada dispositivo están asignadas a un pin de estado (pines 10,11,12,13 y 15).
Cada uno de los botones del dispositivo se corresponden con cada uno de los pines de datos (2,3,4,5,6,7,8,9, 1,14, 16,17).
Así, las conexiones del primer joystick que podremos configurar las sacaremos del primer pin de estado, el nº10. La del segundo joystick, del nº11, y así sucesivamente con los pines de estado.
Cruzando un pin de estado con los pines de datos tendremos hasta 12 contactos para un mismo dispositivo. En el caso de joysticks virtuales, los 4 primeros corresponden a la cruceta del joystick, y el resto a los botones. Si configuramos una distribución virtual de teclado, tendremos pulsaciones de teclas pre-establecidas. Todo queda reflejado en la siguiente tabla.

1951

Distribución de las conexiones en el db25 en relación con la colocación del diodo quedan como sigue: (prestar especial atención a la orientación del diodo)

1955

Compilación del código fuente
Vamos a por el módulo, lo mejor es compilarlo en nuestro sistema.

Puedes bajarte el código fuente (source) de la página del proyecto. https://code.google.com/p/openppjoy/

De todas formas, os dejo en este link, el paquete con la versión r16.
OpenPPJoy-r16

Nota: Los comandos expuestos a continuación son para debian/ubuntu.

Para compilar el módulo, pon todos los archivos en una carpeta llamada "arcade-modulo".
1953

Luego abre una ventana del terminal y navega hasta donde has puesto la carpeta en tu sistema de archivos. (puedes pulsar CTRL+ALT+T para abrir el terminal).

Una vez allí, y para compilar el módulo, primero necesitas las cabeceras (HEADERS) del kernel que estas usando actualmente. Por lo general el código fuente del Kernel se descarga y se va actualizando con en propio sistema y no os hará falta este paso, pero por si acaso, el siguiente comando es para bajarlo e instalarlo.

sudo apt-get install linux-headers-`uname -r`

Una vez instalados las cabeceras (o mismo source completo si lo deseas), hacemos:

make

Si todo ha terminado bien, tendriamos que tener un arcade.ko en el directorio donde compilaste el modulo.
1954

Antes de continuar, y debido a que el módulo se puede cargar con 1, 2, 3, 4, ó 5 dispositivos a elegir entre joysticks y/o hasta dos configuraciones de teclado, vamos a explicar como se configura a través del argumento "map=".

El módulo se carga en el sistema con el comando insmod

su uso es insmod archivo [argumentos]

El archivo del módulo es "arcade.ko"
Los argumentos se hacen con la siguiente sintaxis:
map=p , j1 , j2 , j3, j4 , j5

p es el nº puerto LPT al que tenemos conectado el interfaz, normalmente tendremos un único LPT, y su valor será 0.
Separados por comas, le diremos los valores (1,2 ó 3) de j1 , j2 , j3, j4 , j5 que son los 5 dispositivos a cargar de entre los 3 preconfigurados:

valor - Dispositivo
1 - joystick de 8 botones
2 - Distribución de teclado 1 (ver arriba)
3 - Distribución de teclado 2 (ver arriba)

Unos ejemplos para aclarar esto, que es muy sencillo:

Para cargar el módulo con un joystick de 8 botones conectado en la línea 10 de estado:

sudo insmod arcade.ko map=0,1

Para cargar el módulo con 5 joysticks de 8 botones conectados a los pines de estado 10,11,12,13,15:

sudo insmod arcade.ko map=0,1,1,1,1,1

Para cargar el módulo con 4 joysticks de 8 botones conectados a los pines de estado 10,11,12,13, y una de las configuraciónes básicas de teclado en el pin 15:

sudo insmod arcade.ko map=0,1,1,1,1,2


Otros comandos y ayudas de utilidad:
Si al cargar el módulo os reporta el error de que el puerto está ocupado,
insmod: error inserting 'arcade.ko': -1 Device or resource busy
podremos liberarlo descargando el módulo "lp" con el siguiente comando.

sudo rmmod lp

Para ver si tenemos el módulo correctamente cargado haremos:

lsmod | grep arcade

Puedes descargar el módulo haciendo

sudo rmmod arcade

El dispositivo de joystick queda registrado como otro cualquiera en tu sistema, en ubuntu están en /dev/input/js0 js1 js2 .... tantos como hayamos configurado.

Puedes testear el control y sus botones con la utilidad jstest (tendrás que descargártela antes) haciendo

jstest /dev/input/js0



Y hasta aquí todo!!!. Linuxeros, a disfrutar de interfaz!!!

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Página del proyecto y sus últimas revisiones:https://code.google.com/p/openppjoy/source/list
Blog personal de David Colmenero: http://david.dantoine.org/

Edited by pablo33 - 18/3/2023, 10:21
 
Top
view post Posted on 28/2/2011, 21:27     +1   -1
Avatar

Supreme Ñasual Dating - Actual Girls

Group:
Moderator
Posts:
3,171
Location:
Usa

Status:


UOOOO aportazo!!! pablo33 eres muy grande tio!!!

Un brazo!!!
 
Web Contacts  Top
tapule
view post Posted on 1/3/2011, 09:14     +1   -1




Ostras!!, algo referente a Linux.
Pablo33 ¿te estás haciendo algún proyecto basado en Linux o lo del tuto es simplemente por curiosidad?

Saludos.
 
Top
view post Posted on 1/3/2011, 12:00     +1   -1
Avatar


Group:
Moderator
Posts:
2,025
Location:
Sevilla

Status:


:lol: no, nada de programar y de proyectos informáticos, solo es por ayudar a otros usuarios linuxeros que quieran implementar sus mandos arcade en el puerto LPT. Algo que yo pensaba que no se podía. ^_^

Lo del Gelide frontend tiene muy buena pinta, aún tengo que trastearlo. (Tampoco sabía que existía, hay que ver lo que se aprende en estos foros). :D
Saludos.
 
Top
view post Posted on 4/3/2011, 01:20     +1   -1
Avatar

Restless in Peace

Group:
Administrator
Posts:
42,891
Location:
Alcobendas (Madrid)

Status:


Wauuuu, lo has terminado!


Qué prolífico que estas resultando! :lol:


Enhorabuena por tu trabajo y gracias por compartirlo en nombre del resto de usuarios!

Ojalá tuviésemos muchos más usuarios como tú! ^_^



Saludos


 
Web  Top
view post Posted on 4/3/2011, 11:09     +1   -1
Avatar


Group:
Moderator
Posts:
2,025
Location:
Sevilla

Status:


Gracias, Mikonos, el compartir siempre ha sido un placer para mí.

No lo publiques aún, que tengo que trastear las configuraciones de teclado y actualizar la tabla de asignación de teclas, pues las teclas asignadas han cambiado en la versión que hablo en el tutorial.

La configuración no la he podido trastear en el IPP aún porque necesito comprar un db25, Pues corté un cable LPT por la mitad y no me trae conectados todos los pines que necesito :huh:



Saludos.
 
Top
view post Posted on 5/3/2011, 01:14     +1   -1
Avatar

Restless in Peace

Group:
Administrator
Posts:
42,891
Location:
Alcobendas (Madrid)

Status:


Muy bien, pablo33! Ya me avisas cunado lo tengas!


Saludos
 
Web  Top
view post Posted on 7/3/2011, 00:06     +1   -1
Avatar


Group:
Moderator
Posts:
2,025
Location:
Sevilla

Status:


Ok, Mikonos, testeado, comprobado, y actualizado. módulo funcional al 100%


Saludos.
 
Top
view post Posted on 7/3/2011, 00:16     +1   -1
Avatar

Restless in Peace

Group:
Administrator
Posts:
42,891
Location:
Alcobendas (Madrid)

Status:


Estupendo, Pablo33! Pronto te lo tendré recopilado! ^_^


Nuevamente gracias por aportar cosas que tienen un importante interés para la comunidad del ocio de Zona Arcade! :)



Saludos


 
Web  Top
view post Posted on 7/3/2011, 00:25     +1   -1
Avatar


Group:
Moderator
Posts:
2,025
Location:
Sevilla

Status:


:D De nada; pues verás cuando veas el IPP que me he preparado para este módulo :B): . Lo quiero postear también, por si a alguno le quedara alguna duda de como hacerlo con la configuración pre-establecida

Esto está siendo mi rodaje para meterle mano a la upright ! :D

Saludos.
 
Top
view post Posted on 7/3/2011, 01:23     +1   -1
Avatar

Restless in Peace

Group:
Administrator
Posts:
42,891
Location:
Alcobendas (Madrid)

Status:


QUOTE
De nada; pues verás cuando veas el IPP que me he preparado para este módulo . Lo quiero postear también, por si a alguno le quedara alguna duda de como hacerlo con la configuración pre-establecida

Genial! ^_^


QUOTE
...meterle mano a la upright!

Ey, dominas la terminología! :lol:



Saludos
 
Web  Top
daniel nunes
view post Posted on 20/4/2011, 18:47     +1   -1




cómo cargar el módulo en el núcleo :sudor: javascript:;
 
Top
view post Posted on 20/4/2011, 19:52     +1   -1
Avatar


Group:
Moderator
Posts:
2,025
Location:
Sevilla

Status:


QUOTE
Para cargar el módulo con 4 joysticks de 8 botones conectados a los pines de estado 10,11,12,13, y una de las configuraciónes básicas de teclado en el pin 15:

sudo insmod arcade.ko map=0,1,1,1,1,2

Es posible cargar el módulo automáticamente junto al arranque de la máquina, me han comentado que hay varias maneras, pero aún tengo que probarlo. Los comandos insmod y rmmod cargan y descargan el módulo al kernel respectivamente en el momento en que los necesitemos desde una ventana del terminal.

Saludos.
 
Top
daniel nunes
view post Posted on 20/4/2011, 20:03     +1   -1




agradecido por la resposta amigo.

em breve posto material de Brasil en relacion a porta lpt.
 
Top
view post Posted on 2/5/2022, 23:50     +1   -1
Avatar


Group:
Member
Posts:
1

Status:


QUOTE (daniel nunes @ 20/4/2011, 21:03) 
agradecido por la resposta amigo.

em breve posto material de Brasil en relacion a porta lpt.

No me compila el archivo revise en la pagina del creador y dice... ERRORES al compilar pero no hay solucion estoy usando Ubuntu 18.04 de RGBUntu y lo uso en un gabinete que usaba SNESKEY para los controles
 
Top
14 replies since 28/2/2011, 01:20   803 views
  Share