martes, 4 de noviembre de 2008

hackeando un pad. Proof of concept... OK!

Un pequeño paso mas en este blog, un gran paso para la finalizacion de PROJECT MAI :P

Esta vez tocaba el turno de uno de los asuntos mas divertidos, el hackeo del pad de playstation para construir la interfaz de control del "arcade stick"

En principio, como ya sabeis, se habia elegido para tal tarea un pad de PS2 marca nisupu, bautizado por alguna mente inteligente como "gay pad". xD

Asi que hace un par de dias, aprovechando que estaba en uno de esos ratos ociosos, pues me puse a desmontar el pad y sacarle la placa para proceder al "hackeo".

No me voy a detener en las sutilezas y vericuetos del elusivo arte del hackeo de pads, para eso teneis tutoriales muy buenos por ahi, como por ejemplo este de aqui.

El asunto es que yo en principio iba a usar un pad de PS2, pues bien. MEJOR NO. Resulta que en los pads de ps2 los botones de accion son analogicos (cosa que jamas entendi y que nunca vi realmente comprobable en la practica), y en consecuencia, el circuito es mas complejo.

La cuestion es que cuando desmonte el pad APL, pues me encontre, cosa logica, 3 subplacas colgando de la placa principal, dos para los shoulder buttons, y otra para los analogicos. Y tener estas placas colgando por ahi dentro del mueble de MAI no me parecia en absoluto oportuno... asi que desmonte la de los analogicos... y me encontre que la placa dejaba de funcionar y daba respuestas erraticas, y lo mismo desmontando cualquiera de las placas de los shoulder buttons.

Asi pues, tocaba buscar una solucion al problema... bucee un rato por la red y me encontre con que practicamente no hay montajes basados en "hackeo de pad" que usen pads de PS2, en realidad, lo normal es utilizar pads de playstation (de PS1, 100% digitales) o de PC.

Vaya hombre, 6 leuros a la basura (lol). Me puse a buscar alternativas por casa, asi que rebusque en el baul de los recuerdos (uu-uh) y me encontre mis viejos pads originales de PSX.

(la foto no es de mi pad... este esta mas limpio... jejejeje)

gueno... que de donde sacar pads como este a estas alturas de la vida si no teneis alguno por casa? pues de tiendas de segunda mano como cash converters, o por ebay. En este caso, yo tenia dos por casa sin usar desde hace eones (probablemente desde el siglo pasado :D). Segun oslando, "sacrificar" un pad de estos es un sacrilegio... pero yo lo veo mas como una nueva vida renovada... o algo asi.

A efectos del plan de gastos, lo mantendre como estaba originalmente, ya que cuento con que el pad lo tendreis que comprar/encontrar en alguna parte o_-

Y bueno... me puse a desmontar el pad, y efectivamente, mucho mas sencillo y comodo que el otro. En este en 10 minutos tenia todo localizado, y no hubo ningun problema por desmontar las placas de los shoulder buttons.

Aqui una foto en macro de la placa (y este si es mi pad, heheheheh)



Si os fijais con atencion, vereis aqui y alla unos cuantos puntos estañados y marcados con numeros, bien, esos son los puntos donde se soldaran los botones del panel. En total hay 17 puntos.

1 - Triangulo
2 - Circulo
3 - X
4 - Cuadrado
5 - L2
6 - R2
7 - L1
8 - R1
9 - select
10 - start
11 - L3??
12 - R3??

y ademas de estos 12, los 4 correspondientes a los cursores del d-pad (uno por direccion), y la masa comun de todo el circuito. Los numeros no los he puesto yo (de hecho yo no los pondria en ese orden). Es la numeracion que pone el driver del Twin PSX Pad en el panel de control de windows.

Aqui supongo que algun lector avezado habra pillado una pequeña incongruencia... botones L3 y R3? pero si ese pad no tiene!

Ciertamente, los botones L3 y R3 (los que resultan de pulsar los analogicos) no se incorporaron hasta el dual shock... pero resulta que, primero, en el panel de control del driver al conectar el pad, aparecen, y segundo y mas curioso todavia... es que electricamente existen en la placa del pad original.

sip... resulta que andaba yo buscando los puntos que correspondian a los botones select y start (en la foto de la placa, abajo y en el centro, justo entre las placas de sus contactos) y me encontre dos puntos mas entre estos dos y el chip controlador (en el centro un poco mas arriba). Me puse a comprobarlos y... otia! los botones 11 y 12 xD

Contrariamente a la sugerencia de los tutoriales de hackeo, que suelen recomendar andar lijando los contactores de la placa para buscar puntos de soldadura, yo lo que hice fue encontrar puntos de soldadura ya hechos... me encontre alguno en la pista de los botones y me dije "seguro que esto funciona"... y efectivamente, los encontre todos.

Respecto a los botones 11 y 12... muy probablemente si que los voy a conectar y dar uso, nunca vienen mal un par de botones extra (por ejemplo asignar uno a capturar pantalla o algo asi).

Otra decision que tome a la hora de hacer el montaje, es que no voy a soldar directamente en los conectores de los componentes arcade, en lugar de eso, voy a emplear conectores faston, como estos de la foto

Estos conectores, tambien llamados "conectores rapidos" se utilizan habitualmente en circuitos electricos con paneles de botoneras o filas de conectores (por ejemplo en coches son muy habituales), y asi puedes andar conectando y desconectando sin necesidad de desoldar.

Para el montaje en cuestion, necesitare 2 conectores de estos por boton, osea, 24 conectores. En la practica me voy a comprar 30 por si acaso, mejor que sobre que no que falte. Esto se compra en tiendas de componentes electronicos (y probablemente tambien en tiendas de suministros electricos y en ferreterias) y vienen costando unos 10-20 centimos por conector dependiendo de la calidad, pongamos en total que 3 o 4 eurillos para comprarte un saco de conectores faston.

y bueno, para terminar el tinglado, y como "proof of concept", solde uno de los botones (concretamente el del boton 3, el X) y lo conecte mediante los faston a uno de los botones sanwa, y a la placa de MAI mediante el adaptador twin pad.
















Y aqui, pulsando el boton en el menu de propiedades del panel de control del pad en windows (funciona!!)


ah, probablemente mañana vaya a recoger el 3er adaptador externo (el de dreamcast) que playasia me ha mandado amablemente por segunda vez (tercera, si contamos el primer pedido en el que tendria que haber venido y no lo hizo)

Resumen de coste:

[B2] Conectores Faston para los componentes arcade. 2 conectores por componente, en total aproximadamente 4€