jueves, 30 de julio de 2015

¿No que no tronabas pistolita?

Hola, ¿Cómo están? Bienvenidos sean a este, el blog olvidado de los debrayes, la diversión y la emoción de los videojuegos y la electrónica.

Disculparán la falta de actualizaciones, no me he dado el tiempo de publicar. Hay varias novedades y muchas cosas en el tintero, sin embargo en esta ocasión seré breve.

En la entrada anterior comenté que después de intentar jugar Gran Turismo con un volante USB para PC y fallar miserablemente en el intento decidí emplear los controles del Xbox 360 en el PS3. Mientras que la PS3 es una consola muy dócil con los periféricos que se le pueden conectar (admite discos duros, controles y accesorios genéricos sin mucho problema), la Xbox 360 es el otro lado de la moneda, ya que es sumamente restrictiva. Los accesorios de XB360 también son restrictivos, pues cuentan con medidas de seguridad en hardware que impiden utilizarlos directamente en otros dispositivos.

Si bien es posible conectar un control de XB360 a una PC, se requiere de un driver específico para que el control funcione. Si conectamos directamente un control de XB360 a un PS3 notaremos que no ocurre nada.

Si deseamos disfrutar de la ergonomía de un control de XB360 en un PS3 tenemos algunas alternativas:

  1. Colocar la circuitería de un control compatible con PS3 en la carcasa de un control de XB360. En este vínculo se muestra una guía exhaustiva del procedimiento, el cual implica mucha destreza en el manejo de herramientas manuales, conocimientos básicos de electrónica y bastante dinero, pues implica sacrificar dos controles para obtener uno.
  2. Comprar un adaptador dedicado. Existen adaptadores especializados (siendo los más famosos los de la marca XCM) que permiten conectar controles de PS3 en un Xbox 360 y la inversa. En este video se muestra el funcionamiento de uno de ellos. Estos adaptadores suelen ser caros, pues realizan la conversión de protocolos de forma transparente para las consolas (lo cual requiere circuitería de cierta complejidad).
  3. Usar un adaptador no dedicado. Esta es la opción por la que he optado y que detallaré a continuación, pero antes un poco de historia.

Cuando contaba con Xbox 360 probé algunos juegos de peleas muy buenos, como Super Street Fighter IV, Blazblue y King of Fighters XIII. Sin embargo el control de XB360 no se presta para ese tipo de juegos, ya que es de dominio público que la cruceta del control estándar tiene muy mala respuesta (lo que derivó en la variante 'Pro' del control) y los sticks analógicos no son sustituto de las palancas arcade.

En aquella época aún era 'estudihambres' y las opciones económicas eran muy limitadas. Una de ellas era ahorrar dinero y comprar un fightpad marca Madcatz. En ese entonces sólo existían con el decorado de Street Fighter IV y de Street Fighter x Tekken. Como era la época del segundo apogeo de los juegos de peleas, estaban algo caros.

La otra alternativa que encontré fue comprar un adaptador de controles de PS2 a XB360 y emplear un control del 15 Aniversario de Street Fighter (reseñado acá). Opté por esta última opción, ya que cumplía perfectamente con mis necesidades y además yo contaba con todos los requisitos para emplearlo: un control de PS2, un control alámbrico de XB360 y poco dinero.


Compré un adaptador similar al de la fotografía. Es un adaptador de marca genérica, que permite 'en teoría' conectar un control de PS2 a PS3/PC/Xbox 360. Para realizar la conexión a una Xbox 360 se requiere de un control alámbrico que nos permita hacer la sincronización entre el adaptador y la consola.

Ese adaptador fue muy barato (alrededor de 10 USD) y funcionó a la perfección. Para conectar el adaptador a un PS3 se debe colocar la perilla selectora en la posición PS3 y para conectarlo a una PC o Xbox 360 se coloca la perilla en la posición 360.

Sin embargo no pude darle mucho uso, pues mi Xbox 360 murió al poco tiempo a causa del infame 'Aro rojo de la muerte'. Tiempo después llegó el PS3, sin embargo no empleé mucho este adaptador, ya que prefería jugar los juegos de peleas con los controles de Génesis y el adaptador USB que había hecho meses atrás.

En todos los sitios que consulté con información respecto a este adaptador la información era consistente. El adaptador puede conectar de forma directa un control de PlayStation 1 y 2 a un PS3; además se puede emplear para conectar un control de PlayStation 1 y 2 a un Xbox 360 si se emplea como 'llave' un control alámbrico de Xbox 360. En todos los sitios se advertía explícitamente que el adaptador NO servía para conectar controles de Xbox 360 a un PS3.

Sin embargo yo tuve mis dudas de estas afirmaciones ya que para utilizar el adaptador en un Xbox 360 se debían conectar el control alámbrico de Xbox 360 y el control de PSOne o PS2 al adaptador, posteriormente se conectaba el adaptador a la consola. Una vez realizada la sincronización del adaptador era posible desconectar el control alámbrico de Xbox 360 y el control de PlayStation seguía funcionando sin problemas. Si se mantenía conectado el control de Xbox 360 al adaptador, se combinaban los botones presionados en ambos controles.

Es decir, el adaptador también hacía 'puente' entre la consola y el control de Xbox 360. Aprovechando los resultados de aquella prueba decidí conectar el control de Xbox 360 al adaptador, poner la perilla en PS3 y conectar el adaptador a uno de los puertos USB del PS3.

El resultado me sorprendió, pues contra todo pronóstico, el control de Xbox 360 funcionó a la perfección en la consola. Incluso juegos 'quisquillosos' como Gran Turismo 5 pueden ser jugados sin ningún inconveniente.

Quizás esta información ya no sea de mucha utilidad, dado que tanto del XB360 como el PS3 son consolas que ya están un tanto discontinuadas; asimismo estos adaptadores nunca fueron demasiado populares y ya son un poco difíciles de conseguir. Sin embargo siempre es buena idea probar todo lo que podamos, experimentar y es posible que nos llevemos agradables sorpresas. Si algo es posible o imposible no lo sabremos hasta que lo intentemos.

viernes, 20 de marzo de 2015

Cumpliendo promesas.

Hola ¿Qué tal amables lectores? ¿Cómo están?

Espero que se la estén pasando genial, en muchas partes del hemisferio norte ya se sienten aires primaverales... diluvios primaverales, nevadas primaverales, sequías primaverales, temblores primaverales y muchos otros meteoros primaverales X_x.

Estamos de regreso a reclamo de nuestro amigo Dark "Shingo" Bandit, quien ha exigido una actualización del blog. Y como un caballero nunca falla a su palabra (pues prometimos actualizar más seguido), acá estamos con una nueva dosis de debraye.

También prometimos algo acerca de un experimento fallido, así que es hora de contar una historia larga, poco trascendente y un tanto aburrida... (en este momento se escucha cómo el respetable público conocedor abandona el recinto X_x). Bueno, para los que se quedaron en su lugar ahí les va n_n.

Hace algunos ayeres, su servidor contaba con un Xbox 360 de primera generación en el cuál pudo disfrutar con juegos como Forza Motorsport 3, Bayonetta, KOF XIII y Resonance of Fate. Pues bien, ese Xbox 360 se fue al cielo de las consolas por la infame falla de las tres luces rojas de la muerte (léase con tono macabro).

Vino una época de crisis y bajos ingresos... bueno, eso no es novedad X_x. Decidí vender ese Xbox 360 por la módica cantidad de $450 MXN (unos 30 USD al cambio) con accesorios incluidos, ya que no contaba con la liquidez para llevarlo a reparar... ni para pagar la renta... ni para dar el gasto... En esa época también tuve que vender otras consolas para superar algunos obstáculos financieros.

Pues bien, esa época ya ha pasado (recuerden que este blog se escribe a posteriori n_n) y después tuve oportunidad de comprar de nuevo una consola. Debido al mal sabor de boca de la avería del Xbox 360, decidí comprar un PS3, aprovechando las ofertas de "El buen fin". El primer juego que adquirí para el PS3 fue el Gran Turismo 5. Aquí quiero resaltar un punto, Forza Motorsport 3 es mejor juego de carreras que Gran Turismo 5.

Ya con el PS3 retomé las sesiones de juego en uno de los géneros que más disfruta su servidor y que además considero, es el que exige más al hardware. Un juego de simulación de carreras requiere de un manejo de físicas muy cuidadas, unas gráficas convincentes y una sensación de velocidad que requiere del uso de técnicas gráficas demandantes como el motion blur.

En lo personal, el diseño del control de Playstation nunca me ha parecido cómodo, pese a su similitud involuntaria y accidental con el esquema del control de Super NES. Por otra parte, el control de Xbox 360 me parece muy cómodo, ergonómico y preciso, debido a su forma, a la respuesta de los gatillos y la forma de los postes de los sticks analógicos.

Para juegos de conducción, el control de Xbox 360 permite controlar muy bien el freno y el acelerador con los gatillos, mientras que con el control DualShock (que no cuenta con gatillos) se pierde un poco de precisión aunque se gana en velocidad de respuesta de los botones.

Debido a que la experiencia de juego con el Gran Turismo 5 no era del todo satisfactoria por causas achacables al control, decidí probar alternativas. Compré un viejo volante para computadora USB, el cual fue reconocido por la consola y el juego, pero el mapeo no era el correcto, por lo que no era posible siquiera escoger las opciones del menú.

Debido a que ya había desarrollado algunos adaptadores USB con el mapeo correcto para su uso en el PS3, decidí probar suerte y hacer una reimplementación del circuito del volante con un ATMEGA48. Debido a que el volante no cuenta con cruz direccional  ni suficientes botones, decidí integrar en el diseño un adaptador de control de SEGA Genesis. Después de probar el circuito en la PC de forma satisfactoria fue momento de conectarlo al PS3 y probarlo con el juego de Gran Turismo 5.

En un principio todo parecía funcionar adecuadamente, pues era posible desplazarse por los menús con el control y con las direcciones del volante. Sin embargo al iniciar una carrera, sólo respondían los botones de pausa y de aceptar. Aún si se mapeaban funciones como el acelerador o el freno en dichos botones, el juego no respondía de la forma deseada.

En un principio atribuí la falla a que el circuito no trataba de emular un control de PS3, por lo que procedí a investigar un poco al respecto. A pesar de que el PS3 acepta controles USB estándar para PC, sólo si el control cuenta con ciertas características se puede activar el botón PS (botón 13 del descriptor) y la detección de presión (valores analógicos) en los botones.

Una de esas características es enviar una cadena de bits después de iniciar la comunicación entre el control y la consola (los llamados "magic bytes") y la otra es que el descriptor del dispositivo lleva una estructura particular.

Se trató de replicar ambas condiciones con la biblioteca V-USB, y las primeras pruebas fueron satisfactorias, pues fue posible desplegar el menú que se activa al presionar el botón PS. Sin embargo, el Gran Turismo 5 se volvió a negar a funcionar.

Es por ello que considero que este experimento es fallido. A pesar de ello les comparto el archivo que contiene el programa del intento. Este programa puede servir como base de algunos proyectos, como un adaptador de controles de SEGA Genesis a PS3 (PORTB), o como base de un emulador de control, pues puede tomar valores analógicos para los ejes XY a través del convertidor analógico/digital (PORTC) e incluso una parte del proyecto puede servir para leer arreglos matriciales de botones por multiplexado (PORTD).

A la fecha desconozco el porqué el circuito es rechazado por el Gran Turismo 5 (y sólo por ese juego, inclusive es posible jugar Tekken Tag Tournament 2 con el volante X_x), aunque sospecho que el juego hace verificaciones más exhaustivas de las características del control. Tengo pendiente probar en otros juegos de carreras, esperemos que la liquidez en próximas fechas permita comprar algún título a precio competitivo.

A pesar de esos problemas, actualmente puedo jugar Gran Turismo 5 de forma tan cómoda como lo hacía con Forza Motorsport 3... con un control de Xbox 360 n_n.

Mas detalles de eso en próximas entradas, así sólo queda decir ¡Estamos en contact! y muchas gracias.

lunes, 9 de febrero de 2015

Volviendo a las andadas.

Hola ¿Que tal? Espero que se la estén pasando muy bien en este inicio de año. Acá estamos de nuevo en nuestro blog, para retomar como se debe las sesiones de debrayancia (que su servidor ha echado mucho de menos X_x).

Se han estado cocinando varias cosas en el laboratorio, por lo que tendremos actualizaciones a un ritmo más regular. Entre ellas está un prototipo fallido de conexión USB que emplea unos "misteriosos números mágicos" y un descriptor de dispositivo de 13 botones. Quizás ya se imaginen de que se trató, y si no, en la próxima entrada (prometido) les acercaré los por menores y por supuesto, código fuente y diagrama.

La entrada del día de hoy la dedicaremos de nuevo (si de nuevo X_x) a los 8 bits de Nintendo. En la entrada pasada "famicloneamos" un NES perfectamente funcional. Pues bien, el experimento no paró ahí y "tomando como inspiración" (es decir, fusilándonos la idea) una de las entradas del blog de 133MHz decidimos hacer lo propio con el Inteltron 7000. Aprovechando que el Inteltron 7000 también tenía el PPU y el CPU montados en zócalos, sólo era cuestión de desoldar los circuitos del NES y sustituirlos por los de algún famiclón.

Debido a que no cuento con una pistola de aire caliente, se tuvo que recurrir a un cautín de lápiz para retirar los chips "a mano". La labor fue ardua pero al parecer fue exitosa, pues al probar el Inteltron con sus nuevos circuitos se notó una mejora notable en el audio y en los colores de los juegos.

Para que el NES no quedara "inservible", decidí colocarle los chips de mi primer famiclón, los cuales ya había desoldado con anterioridad. Para probar el NES le coloqué el juego de Super Mario Bros 2 y al corroborar que la pantalla de inicio aparecía sin ningún glitch, decidí dar el trabajo por terminado y guardarlo.

Así transcurrieron algunos días, hasta que decidí donar el NES a mi amigo Dash "Shingo" Bandit, ya que él tiene un aprecio muy fuerte por las consolas y aparatos "vintage". Sin embargo, cuando se decidió a probar algunos juegos notó que la consola generaba unos errores muy extraños. Todo parece indicar que la placa del NES no soportó de muy buena manera la extracción de sus chips X_x. El único consuelo es que Shingo tiene otros NES, en los cuales puede emplear partes y refacciones.

Hace algunos meses su servidor compró un famiclón descompuesto, que tenía como peculiaridad el contar con conector para cartuchos de Famicom (60 pines) y conector para cartuchos de NES (72 pines). Ese famiclón mostraba errores gráficos, atribuibles a fallas en la PPU o en la SRAM de video. Reparar ese famiclón no resultaba práctico, pues se encontraba montado en una sola placa de circuito, de doble cara y con una distribución de componentes muy densa (lo que hacía casi imposible retirar un componente sin dañar otro). Decidí sacrificar ese famiclón, en aras de conseguir el conector de 72 pines.

Recientemente compré un lote de "chacharas", entre los cuales venían unos famiclones más recientes en perfectas condiciones de funcionamiento. Con tantos materiales a disposición, era sólo cuestión de tiempo antes de que decidiera emprender otro de esos proyectos laboriosos que se traducen en algo poco productivo (que son tradición en el blog X_x).

Uno de los santos griales del coleccionismo de consolas NES lo representa el NES 2 (también conocido NES Toploader). Se trata de una implementación del NES que Nintendo lanzó cerca del final del ciclo de vida de la consola. Debido a que la fama de la consola ya se encontraba consolidada en el mercado occidental, Nintendo pudo prescindir del diseño tipo "reproductor de video" y pudo lanzar una reedición con un diseño más estilizado y acorde a un sistema de videojuegos. Funcionalmente hablando es muy similar a una NES de primera edición, sin embargo tiene algunas diferencias como la ausencia de la salida de video compuesto y del chip 10NES, así como el cambio del conector ZIF por un conector convencional de filo.

Sin embargo, conseguir un NES 2 a precios competitivos es muy difícil. En sitios de ventas por internet suelen tener valores por encima de los de un Wii, un N64 y un Gamecube... ¡Juntos! Sin lugar a dudas se trata de una inversión poco inteligente.

Sin embargo, es muy práctico poder cargar los cartuchos por la parte superior de las consolas, tanto así que es prácticamente la forma estándar en todas las consolas (con excepción de la primera edición del NES). En internet hay personas que han realizado distintas implementaciones de NES con carga de superior o lateral empleando conectores de filo. Algunos ejemplos notables podemos verlos en este video, en esta página y en esta otra. En el video podemos apreciar como puede convertirse un NES de primera edición a "Toploader" realizando un rediseño completo de la consola. Sin lugar a dudas el resultado es muy llamativo. En la segunda página podemos ver una reimplementación del NES, lo cual es un acercamiento aún más radical, pero más laborioso y costoso. En la última página podemos ver cómo se puede hacer un NES Toploader empleando un conector de 72 pines y un famiclón NOAC.

Una opción rápida y directa para emular la funcionalidad de un NES toploader es comprar un adaptador de cartuchos de NES a Famicom. Sin embargo esa solución es algo extraña, pues el adaptador y el cartucho sobresalen demasiado del cuerpo de la consola, además de que el cartucho de NES queda viendo "hacia atrás", es decir, la etiqueta del cartucho queda hacia la parte posterior del famiclón, lo que se ve extraño.



Aprovechando el conector de 72 pines que extraje y uno de los famiclones NOAC decidí implementar una solución similar a la del "instructable". Monté el conector de 72 pines en una placa de prototipos y le soldé los cables necesarios.


Posteriormente retiré el conector de 60 pines del famiclón y le alargué los cables que conectan la placa de los controles y de las salidas de AV a la placa principal. Luego soldé los cables del conector de 72 pines a las terminales que alojaban al conector anterior.


En este punto quise realizar una corrección y dañé una de las pistas del circuito impreso X_x. Por fortuna fue posible reparar la fractura con un alambre calibre 28. La línea dañada fue la denominada CIRAM A10. Cuando la línea se encontraba cortada la resolución horizontal del juego se reducía la mitad, lo que hacía que los juegos funcionaran, pero se vieran muy extraño.

Posteriormente extendí un poco la apertura superior de la carcasa del famiclón, para que fuere capaz de alojar un cartucho de NES. Una vez que todo quedó en orden, fue momento de cerrar la carcasa y probar el experimento con los dos únicos juegos de NES con que cuenta su servidor n_n.




Este ha sido otro de esos proyectos que terminan siendo realizados por capricho de su servidor. La imagen de estos famiclones NOAC es muy buena, el audio es mejor que en los famiclones antiguos (también llamados "de chips") sin llegar al nivel del obtenido con el 2A03 (CPU original del NES). La ventaja de contar con un Famiclón toploader para cartuchos de NES es que mientras el conector no se estropee, las refacciones para la consola se encuentran con mucha facilidad y a precios muy bajos. Esta implementación costó menos del 5% del precio de un NES 2 en el mercado, además de que le ayudó a su servidor a elevar su ego y su confianza en sus habilidades manuales n_n. Y si bien es cierto que juegos como Castlevania 3 o Kirby's Adventure no funcionarán, lo cierto es que son juegos sumamente caros que muy probablemente su servidor no tendrá siquiera oportunidad de poseer en formato físico.

Bueno, con esto hemos iniciado las dosis de debraye de este año 2015. Actualizaremos más seguido, así que ¡Estamos en contact!

¡Feliz 2021! El retorno del debraye pandémico (Edición "Rompemuros").

Hola, ¿Cómo han estado? Espero que estén con bien, con buena salud y con muchas ganas de aburrirse una vez más con una ronda de debrayes. Es...