OpenPPJoy, Proyecto de SL de driver de abierto por LPT
D_Skywalk
view post Escrito el 7/11/2005, 13:07 by: D_Skywalk
Avatar

Dev, Gamming & friski friski xD

Grupo: Moderadores generales
Mensajes: 767
Location: Granada


Status: Offline: ultima azione eseguita il 31/12/2006, 13:17


Buenas llevo unos dias preparando este pequeño proyectillo y ante las multiples dudas que me van surgiendo, prefiero antes de marear mas a Macarro y [Mad], contaros este proyectillo ademas ver las necesidades que hay :)

[ Encuentra la Version Actualizada de este articulo aquí | English Version Here! ]

Proyecto:
Crear un driver totalmente opensource que permita usar el puerto paralelo para nuestros controles; en principio yo voy a trabajar en Linux, pero al ser el driver abierto, si alquien quiere portarlo a MSDOS, MacOS o Windows; es perfectamente libre de hacerlo :D

Mi Idea:
En principio mi objetivo va a ser hacer un keycoder por software, es decir un boton te da una tecla, pero seria luego perfectamente posible hacer un driver mejor para configurar Joys virtuales a partir de una configuracion dada al driver (ya sea con configuraciones base, o dando un archivo ini creado por una aplicacion visual :?).

El Debate:
Pues hay varios problemas, en principio he visto diferentes versiones con formas de leer el LPT y en todas lo que me he encontrado que seria mejor el concepto/politica que tenemos hoy dia de configuracion de los controles, explico:

Ahora mismo configuramos los botones por lineas, asi:
CODE
[            ][    10    ][    11     ][    12    ][    13    ][    15    ]
[     2     ][1-ARRIB][1-ABAJO][1-DEREC][1-IZQUI][1-DISP1]
[     3     ][1-DISP2][1-DISP3][1-DISP4][1-DISP5][1-DISP6]
....


El problema es que se lee siguiendo las columnas y comprobando que bits hay activos en esa posicion, ej: Enviamos un barrido a la columna 10, esperamos unos segundos (el delay que me teneis que decir - ver abajo), luego miramos de nuevo la columna 10 y vemos que estan pulsados [1-ARRIBA] y [1-DISP2], pasamos a la siguiente columna 11 y repetimos...

Y asi con todas, mi idea seria configurar los controles por columnas:


CODE
[            ][    10    ][    11     ][    12    ][    13    ][    15    ]
[     2     ][1-ARRIB][2-ARRIB][            ][            ][            ]
[     3     ][1-ABAJO][1-ABAJO][            ][            ][            ]
....


o algo mas complejo para cuatro jugadores seria:

CODE
[            ][    10    ][    11     ][    12    ][    13    ][    15    ]
[     2     ][1-ARRIB][2-ARRIB][3-ARRIB][4-ARRIB][1-EXTR1]
[     3     ][1-ABAJO][2-ABAJO][3-ABAJO][4-ABAJO][1-EXTR2]
....





de esta forma tendriamos solo que mirar el numero de columnas/controles activos, y no tener que esperar mas de lo necesario, Con esta configuracion podrias configurar cada via con controles virtuales de varias formas:
- Joy4 ejes + 8 botones (Joy4)
- Joy8 ejes + 4 botones (Joy8)
- 12 Botones (Btn12)
- 12 botones como teclas (Key12)
- Custom (Custom) - Usando algun configurador o ini para mandarle tu config
(no se me ocurren mas opciones xD)

Asi podriamos configurar el driver:
insmod arcade.lpt0=Joy8,Joy8,Joy4,Joy4,Btn12
Y direis 4 botones para 8 vias son pocos, pero es que con (12btn) podemos meterle los 4/8 mas que necesitemos, no se si e entiende la idea :?

Si solo quisieramos un simple panel de arcade clasico para 2 jugadores:
insmod arcade.lpt0=Joy4,Joy4
Y tendriamos 2 joystick virtuales de 4 ejes con 8 botones cada uno :)

Vuestra Ayuda:
Desafortunadamente yo no tengo Windows, asi que no puedo comprobar totalmente todas las funcionalidades del PPJoy y los diferentes conceptos que usa. En principio me gustaria saber 2 cosas el delay que tiene el PPjoy por defecto y como hace para configurar los botones de tu panel (supongo que sera una utilidad a parte).

Por favor, debatid y aconsejadme que yo acabo de llegar a este mundillo (como quien dice) y no se las necesidades que hay :)

Un Saludo y seguro que entretodos creamos un util proyecto ^_^


WORK IN PROGRESS

Release publicas del proyecto:
- Driver Linux v0.4 Version de 12 canales - Sin configuracion.

Modificado por D_Skywalk - 22/5/2006, 10:48
51 respuesta(s) desde el 7/11/2005, 13:07