HOWTO Pad PSX
De Gentoo Linux Wiki
| Kernel & Hardware • Red y Servicios • Portage • Relacionado con el Sistema • Servidor X • Juegos • Misceláneos |
Tabla de contenidos |
[editar] Introducción
Hace un tiempo lei en Emulatronia sobre la posibilidad de construir un adaptador de playstation y así poder conectarlo al ordenador, así que decidí probarlo y sí funcionaba, pero como siempre el driver sólo existía para Windows, al menos era lo que yo pensaba hasta que vagando por internet descubrí esto así que lo probé en mi suse y funcionaba perfectamente así paso el tiempo hasta que salte a gentoo, seguí el mismo manual pero nada, al parecer algo había de diferente, después de investigar un poco encontré que el problema era el devfs, que es el que tengo (espero que cuando me pase a udev siga rulando), así que hoy pude instalarlo, y bueno hay que compartir no, aqui vamos:
[editar] Hardware
Primero que nada tenemos que hacer el montaje aqui va el esquema que viene con la doc del kernel:
| Explicación: Esquema |
+---------+---------+---------+ 9 | o o o | o o o | o o o | 1 parallel \________|_________|________/ port pins | | | | | | | | | | | +--------> Clock --- (4) | | | | +------------> Select --- (3) | | | +---------------> Power --- (5-9) | | +------------------> Ground --- (18-25) | +-------------------------> Command --- (2) +----------------------------> Data --- (one of 10,11,12,13,15) |
Es un poco confuso pero si quieren algo mas gráfico vayan aqui es la página de emulatronia, viene muy bien explicado como hacer el montaje.
[editar] Software
Ahora tenemos que darle soporte en nuestra gentoo, voy a dar las opciones del kernel que debemos activar (de preferencia como módulos) para el kernel gentoo-dev-sources que según una encuesta que vi era el mas usado:
| Código: Consola |
cd /usr/src/linux make menuconfig |
Activamos estas opciones:
| Código: Kernel |
Device Drivers --->
Parallel port support --->
<M> Parallel port support
Input device support --->
<M> Joystick interface
<M> Gameport support (este no se si sea realmente, solo que sin este a mi no me jalaba)
<M> Parallel port keyboard adapter
[*] Joysticks
<M> Multisystem, NES, SNES, N64, PSX joysticks and gamepads
|
Ahora hacemos un:
| Código: Consola |
make make modules_install |
Si te fijaste la opcion Joystick sólo se puede activar como parte del núcleo no como módulo, si es tu caso también tendrás que copiar la imágen y actualizar tu grub o lilo, pero consuerte no tendrás que hacerlo así que pasamos de eso.
Ahora conectas tu pad si no lo tenías, con la precaución de que como no es hotplug te toca apagar-conectar-prender, cargamos los módulos así:
| Código: Consola |
modprobe joydev modprobe gamecon map=0,7 |
Si todo va bien devfs te creará automáticamente el js0 en /dev, así que sólo queda probarlo con un juego, te recomiendo que instales el excelente emulador de snes zsnes, es la leche, sólo le das en configurar input1 y listo.
Sólo dos cosas más, si tienes impresora por puerto paralelo y cups, primero cargate cups quítalo del inicio, o dale stop al servicio, y quita el módulo lp con un:
| Código: Consola |
rmmod lp |
y después ya cargas el joydev y gamecon, por otro lado si tu máquina se pone lenta con el pad conectado prueba a recompilar el módulo gamecon, asi (es un copy-paste del articulo de Bulma):
| Explicación: Cita |
Optimización del driver gamecon.c Si habeis notado que aunque todo vaya bien,las aplicaciones pierden mucho rendimiento cuando el pad está conectado(jugar a un juego de cps-2 con el xmame es un buen ejemplo Wink) se debe a que el driver está constantemente ocupando la CPU, para solucionar esto necesitamos tocar unas pocas líneas del código del driver gamecon.c el cual lo podreis encontrar en /usr/src/linux/drivers/char/joystick. Los cambios a realizar son muy simples: * Cambiar en la constante GC_PSX_DELAY el valor de 60 por uno bastante menor. Ejemplo: #define GC_PSX_DELAY 15 * Cada vez que se use la variable observareis que se multiplica por 2, pues bien, quitar ese * 2 y dejar la variable tal cual. Ejemplo: udelay(GC_PSX_DELAY); Una vez realizados los cambios, recompila el módulo y compruebas que tal va. El valor de GC_PSX_DELAY es arbitrario, tienes que ir jugando con él hasta que encuentras uno que te vaya bien, yo primero probe 30 y seguia demasiado lento, hasta que probé al 15 y me gusto como iba. |
En realidad con kernel 2.6 ya se da el delay en 25, yo casi no lo noto y no edité nada, esto era para un 2.4.
[editar] UDEV
Migre ya hace un rato a udev y no tuve que hacer gran cosa lo único que cambia es la ubicación del dispositivo:
- de:
/dev/js0
- a
/dev/input/js0
Cada vez que conectes el pad y cargues los móduos udev creará automáticamente el dispositivo.
[editar] Créditos
- [www.emulatronia.com Emulatronia]
- Artículo escrito por Navegante
