viernes, 22 de agosto de 2014

NES Famicloneado.

Hola ¿Como están? Bienvenidos sean de nuevo a este, su blog favorito... n_n. Últimamente le hemos dedicado mucho espacio a los 8 bits de Nintendo, sin embargo eso no es por un capricho de su servidor, la circunstancia actual se ha inclinado un poco en esa dirección.

Recientemente cayó en mis manos un NES... ¡Si, un verdadero y auténtico Nintendo Entertainment System! Esta vez no lidiaremos con circuitería china de alta calidad, ni circuitería china de baja calidad... ¡Sino con verdadera circuitería japonesa de la década de 1980! Bueno, ejem, ejem, creo que me he dejado llevar un poco n_n.

Realmente, es la primera vez que he tenido la oportunidad de examinar un NES a detalle, ya que el único NES que alguna vez entró por la puerta de mi casa fue el de mi primo (que ya he comentado antes) en aquél lejano año de 1992. Lo primero que me sorprendió fue la ligereza del aparato, ya que lo recordaba bastante más pesado.

Compré ese NES, ya que mi amigo MaxClowReed me facilitó un par de cartuchos, Super Mario Bros 2 y Duck Tales. Ambos son verdaderos clásicos. Y si bien la primera intención era emplearlos en un experimento algo destructivo, opté por darles un uso más constructivo.


Aquí se pueden apreciar ambos cartuchos. El cartucho de Duck Tales está algo maltratado; proviene de un lote de chacharas que compré hace unos años y en el cual venía incluido un Fightstick de SEGA Genesis. El cartucho de Super Mario Bros 2 por su parte, está en perfecto estado. Lo mejor de todo es que mi amigo me dio el cartucho raro que no tiene el sello de calidad de Nintendo y decidió conservar para sí mismo la versión estándar con el sello de calidad. El cartucho sin el sello de calidad tiene en su interior una placa inusual, con todos los pines del filo conector, además de que tiene cierto valor de colección. Fue principalmente por ese cartucho que decidí no realizar el experimento destructivo.


Mi amigo puso a funcionar frente a mis ojos, con su NES el cartucho de Super Mario Bros 2, sin embargo el de Duck Tales no respondió. Para poder usar ambos cartuchos tenía dos opciones: comprar un NES o comprar un adaptador que me permitiera emplear los cartuchos de NES en uno de mis Famiclones. Una visita rápida a MercadoLibre reveló era más barato comprar un NES funcionando al 100% que comprar el adaptador (incongruencias de la vida X_x).

Pues ni tardo ni perezoso compré el NES, le conecté el adaptador de corriente de un viejo router y funcionó a la perfección. Mi amigo también me pasó su viejo conector de 72 pines, el cual al parecer ya daba muchos problemas para leer los cartuchos.

En internet existe la creencia popular de que el conector de 72 pines es el punto flaco en el diseño del NES. Este conector es muy similar a los conectores "de filo" que se emplean en la industria para conectar tarjetas de circuito en estándares como ISA, PCI, AGP, JAMMA, etc. Sin embargo tiene la peculiaridad de ser ZIF (Zero Insertion Force), ya que al introducir el cartucho de NES a la consola, la conexión se realiza sólo cuando la bandeja del cartucho se presiona y se fija en su posición. Se trata de un sistema bastante ingenioso, similar al empleado en las rebobinadoras de videocasetes (VHS o Beta)... O sea ¡Tecnologia ochentera en su máxima expresión n_n!

Pues bien, resulta que el conector ZIF es susceptible a ensuciarse, ya que al no existir fricción entre el filo del cartucho y el conector, no existe el efecto abrasivo que limpia los conectores de forma involuntaria. También, el color de los pines da el efecto óptico de óxido, por lo que algunas personas descartan conectores en buen estado, creyendo que se han oxidado.

Lo principal es detectar la causa de la falla del conector, ya que puede deberse a simple suciedad, a pines dislocados o vencidos, a pines rotos, óxido o definitivamente a una fractura.

Pues bien, el conector de 72 pines si es artilugio algo complicado, sin embargo es fácil repararlo si se cuenta con paciencia y mucho, pero mucho tiempo libre. El conector que acompañaba a mi NES funciona a la perfección, pero me dí a la tarea de reacondicionar el conector que era de mi amigo para entrenar y de paso, tener un conector de repuesto.

Pues bien, dada la estructura del conector, es difícil realizar una limpieza profunda. Hace muchos años se vendía el NES Cleaning Kit. Se trataba de un accesorio original de Nintendo que sin lugar a dudas era una compra obligada para todos los propietarios de un NES. Sin embargo era un accesorio muy escaso y nunca llegué a verlo, ni siquiera en los anaqueles de las tiendas.

Debido a que el NES es una consola con muchos años de antigüedad y seguramente con muchos tantos de uso, en la actualidad es difícil encontrar un NES que funcione al 100% a precio competitivo. Algunos de los que funcionan "bien" tienen conectores reacondicionados (en el mejor de los casos) o conectores genéricos (en el peor de los casos). Los conectores OEM (originales de Nintendo) son muy duraderos, ya que usan materiales de excelente calidad y las especificaciones de construcción son muy rígidas. Por otra parte los conectores genéricos tienden a tener terminales fabricadas en un metal muy dúctil, por lo que tienden a vencerse rápidamente.

Pues bien, para reacondicionar el conector de 72 pines que me dio mi amigo procedí a desmontarlo.

Hay que tener mucho cuidado y paciencia al realizar esta labor. Para sacar los pines basta con emplear una herramienta plana y jalar los pines delicadamente. Una vez retirados los pines podemos limpiarlos con alcohol y un paño, cuidando de no doblarlos. Aprovechando que están fuera del conector, podemos aprovechar para inspeccionarlos detenidamente y descubrir si están deteriorados. Yo aproveché para corregir un poco la forma de los pines y garantizar que hagan contacto con los cartuchos.

Al volver a montar el conector y colocarlo en la consola, noté que me había excedido un poco en la corrección de los pines, pues en lugar de quedar un conector ZIF (Zero Insertion Force) quedó un ZIF (Zangief Insertion Force X_x). Los pines quedaron tan apretados, que los cartuchos funcionaban aún sin bajar la bandeja. Con unas pinzas y mucho cuidado ajusté los pines nuevamente y quedó un LIF (Little Insertion Force). Nada mal, ya que los cartuchos pueden sacarse de la consola con muy poco esfuerzo y además los juegos sólo funcionan cuando la bandeja se fija en la posición adecuada.

Ya entrado en estos menesteres decidí deshabilitar el chip de seguridad del NES, llamado 10NES o CIC. Pues bien, alguien se me había adelantado en esa labor pues el chip ya se encontraba deshabilitado.

Por capricho decidí retirar el aparentemente inútil puerto de expansión inferior de la consola. Es una tarea sencilla que al final de cuentas resultó ser de mucha ayuda. En este punto, ya tenía un NES funcional, un par de títulos y ¿Los controles? ¡Bien gracias X_x!

Dado que no tengo controles con el conector de 7 pines que empleaba el NES (recordemos que mi control lo adapté para Famiclones X_x), decidí modificar la consola para que aceptara mis accesorios de famiclón. Y justamente ahí fue donde retirar el puerto de expansión valió la pena, pues pude soldar a ese conector los plugs DB9 necesarios para conectar los controles de Famiclón.

Y ya entrados en este asunto ¿Porqué no colocar un conector de cartuchos de 60 pines? Pues bien, gracias a los diagramas de la página Nesdev pude realizar esas "mejoras" en la consola.

Aquí se pueden apreciar ambas modificaciones. El conector de cartuchos era de mi primer famiclón, que apenas duró medio año antes de sólo mostrar una pantalla verde sólida (con o sin cartucho). Fue un trabajo bastante laborioso, ya que hay que mantener la cuenta de los pines y vigilar las sutiles diferencias entre el conector de 60 pines del famiclón y el conector de 72 pines del NES.



Mi destreza con el Dremel es nefasta, por lo que los orificios para las adaptaciones quedaron horrorosos... Aunque al menos son 100% funcionales n_n.

Y debido a mi falta de destreza decidí colocar el conector de 60 pines en la parte trasera de la consola, ya que así no sería tan evidente el destrozo y además, utilicé cables muy cortos...

Ya con todo montado comencé las pruebas y todo parecía funcionar correctamente, pero al probar los cartuchos de Famiclón el NES sólo mostraba una pantalla gris sólida, similar a cuando no se introduce ningún cartucho... Por lo que después de 22 años surgió el culpable de la falla de mi primer Famiclón ¡El conector de cartuchos dejó de funcionar! Apliqué un poco de tensión en los pines con un destornillador fino y los cartuchos comenzaron a funcionar.

Sin embargo, otra vez me excedí y si no hay un cartucho insertado, los pines de un extremo del conector hacen contacto con su contraparte. Para solventar este inconveniente y el problema de la eventual suciedad (pues el conector se encuentra expuesto), decidí colocar una tarjeta telefónica en el conector. Así los pines no entran en "cortocircuito" y la suciedad no puede acumularse en los pines.

Y pues bien, después de esos ajustes por fin funcionó todo de forma correcta. Si se trata de encender la consola con un cartucho de NES y un cartucho de Famiclón insertados al mismo tiempo, la consola no arranca y sólo muestra una pantalla gris.

Este experimento ha sido muy gratificante, pues además de que ahora cuento con un banco de pruebas completo para algunos experimentos, la calidad sonora y gráfica del NES es superior a la de cualquier Famiclón. El "jail banding" es prácticamente imperceptible, los colores son más nítidos y el sonido es más claro. Son detalles ínfimos, pero que demuestran que lo original siempre es mejor que las imitaciones.

Inclusive surgió un detalle curioso. La música del Super Mario Bros 2 de Famiclón está acelerada y tiene un timbre más agudo que en el cartucho original.

Y bien, ¿Porque no compré un adaptador de cartuchos de Famiclón a NES? Porque uno de los principales responsables del daño en el conector de 72 pines es el grosor excesivo en las placas de circuito de los adaptadores de cartuchos y los juegos sin licencia (como los de Tengen). Dado que el NES ya tiene muchos años (mi consola tiene fecha de manufactura de 1987), no considero prudente someter el conector a más estrés. Además, el conector de 60 pines ya lo tenía y es una de las pocas formas en que se me ocurrió aprovecharlo.

Si desean aplicar estas modificaciones y requieren ayuda, puedo ampliar un poco la información. Las consideraciones que hay que tomar son pocas pero muy importantes, por lo que a continuación listo las que considero indispensables.

  • Al retirar el conector de la expansión debemos tener cuidado de extraer muy bien la soldadura, sino podemos fracturar la tarjeta de circuito al intentar jalar el conector. El conector está soldado a ambas caras de la tarjeta de circuito.
  • El pin 45 del cartucho del famiclón va al pin 22 del puerto de expansión (Audio Out). Este se mezcla con la entrada del micrófono.
  • El pin 46 del cartucho de famiclón va al pin 3 del puerto de expansión (Audio In). Este es el empleado por Akumajo Densetsu.
  • Para conectar los controles al puerto de expansión hay que identificar las terminales correctamente, ya que en los diagramas se emplea una nomenclatura bastante técnica. A modo de traducción: Data es D0, Clock es /OE o Read Strobe, Latch es Out 0 (se comparte entre ambos controles).
  • El conector de 60 pines es prácticamente un espejo del conector de 72, excepto las terminales destinadas al CIC, al puerto de expansión y las líneas PPU A10 y PPU A11 (en el NES están en numeración intercalada).
  • Las soldaduras deben hacerse lo más finas posibles, ya que la tecnología MOS utilizada en el NES induce mucho ruido. Si al soldar quedan gotas grandes, se inducirá interferencia entre soldaduras contiguas. Si eso pasa, a veces los juegos muestran errores gráficos o fallas en el programa.
Pues bien, ahora solo queda divertirse ¡Estamos en contact!

domingo, 17 de agosto de 2014

Otra breve actualización (Ésta es la quinta n_n)

Hola ¿Qué tal? ¿Cómo están? Bienvenidos sean de nuevo a este blog, como ya saben amables lectores, uno de los más inconsistentes e irrelevantes de internet.

En esta ocasión sólo traigo una breve actualización de la entrada del Inteltron 7000. En aquella entrada del blog realicé unas pruebas conectando controles "estándar" de famiclón por medio del puerto frontal de expansión DB-15.

En el mercado japones existieron controles con un conector DB-15 compatible con el puerto frontal del Famicom (y por consecuencia de los famiclones). Uno de los más populares fue el control de la marca Hudson (célebre por juegos como Adventure Island, Bloody Roar y el infame Super Mario Bros Special). Ese control era similar a los controles convencionales de Famicom, con el agregado de tener turbo ajustable (2 niveles) para los botones A y B.


El detalle principal que surge al tratar de conectar periféricos al puerto frontal del Famicom es que el conector DB-15 macho es muy profundo, por lo que un conector DB-15 hembra estándar no es capaz de alcanzar los pines y realizar la conexión.


Para mi primera prueba empleé unos arneses temporales para conectar el control de NES a los pines del conector DB-15 del Inteltron 7000. Sin embargo, en términos electrónicos y de fiabilidad, estas conexiones son una pésima alternativa.

En el sitio de Famicom World, varios entusiastas del Family Computer comparten su conocimiento y sus experiencias con la primera consola de Nintendo. Incluye varias guías técnicas de reparación y de modificaciones. En una de las entradas se menciona que el conector DB-15 adecuado se puede obtener de extensiones de controles para NeoGeo. El problema es que encontrar accesorios para NeoGeo es aún más difícil que encontrar accesorios de Famicom. El usuario 133Mhz comparte un diagrama (que tiene un error) y fotos de su adaptador de controles de NES a Famicom que "eléctricamente funciona, pero mecánicamente no"... En pocas palabras, no funciona X_x.

Dado que encontrar el conector DB-15 adecuado es complicado, una buena alternativa es construir nuestro propio conector. Una muy buena guía pueden encontrarla en el blog de old8bits, donde se emplea un conector convencional y otros materiales baratos y de fácil adquisición. En ese blog se emplea el conector para hacer conexiones de audio y video. Sin embargo, el mismo principio se puede aplicar para un adaptador de controles.


En mi caso, opté por hacer un adaptador de un solo control de famiclón. Se puede hacer un adaptador doble sin ningún inconveniente. Sin embargo este adaptador sólo lo hice "para quitarme la espinita", ya que en realidad prefiero jugar con el famiclón de toda la vida. Los propios controles del Inteltron 7000 funcionan, además si llegan a descomponerse son de fácil reparación, pues en su interior tienen circuitos convencionales CD4021 (un registro de corrimiento) y CD4069 (compuertas inversoras).

Utilicé la configuración de pines de la entrada dedicada al Inteltron 7000 y el adaptador funciona a la perfección. Este adaptador para mí es un simple capricho, pero puede ser de suma utilidad para personas dedicadas al coleccionismo de consolas retro, que no pueden darse el lujo de modificar sus consolas. En mi caso, pude optar por colocar el conector DB9 macho en la carcasa del Inteltron 7000, sin embargo no quise quitarle la estética a la parte frontal de la consola.

!Estamos en contact!

martes, 12 de agosto de 2014

Episodio 2: El ataque de los famiclones.

Hola ¿Cómo están?

Espero que estén bien y sean bienvenidos de nueva cuenta a nuestro blog. En esta ocasión, tal y como se ha anticipado en el título, la entrada carecerá de toda creatividad X_x.

En la entrada anterior conté que mi amigo Dash "Shingo" Bandit había comprado un lote de consolas viejas. Pues bien, como era de suponer, algunas de las consolas presentaban fallas (al igual que el Inteltron 7000). Y su servidor, fiel a su costumbre de entrometerse en dificultades ajenas decidió echarle un vistazo a un par de esas consolas.



Aquí tenemos a los pacientes, un par de famiclones Home Video Computer Game, que tienen una forma que recuerda al Famicom, cuentan con conectores frontales para controles y tienen unas de las combinaciones de colores mas extrañas que su servidor ha visto en una consola.

Pues bien, el síntoma que presentaba la consola blanco con dorado (combinación "iglesia" X_x) era que no detectaba ningún comando introducido por los controles. Por otra parte la consola verde con negro (combinación "pantano" X_x) definitivamente no hacía nada (sin video y sin audio). Dado que cada una de las consolas presentaba fallas distintas, mi amigo intentó combinar las partes funcionales de ambas. Sin embargo, la reparación no llegó a concretarse.

Viendo el estado de ambas consolas, mi nada agudo sentido común y el noblesse oblige me indicaron que debería intentar la reparación. El primer paso fue volver a colocar a cada consola sus respectivas piezas y comenzar con las pruebas. Ambas consolas son famiclones basados en NOAC (NES On A Chip). Para alimentar los famiclones debe utilizarse un "eliminador de corriente" que en el centro del conector tenga GND y en la parte externa tenga un voltaje mayor a 7[V] y menor a 25[V]. Hay que ser cuidadosos en este aspecto, ya que por lo general, la configuración en los cables de fuentes de alimentación comerciales es la opuesta, es decir, el voltaje está en la parte central del conector y GND se encuentra en la parte externa (ya que actúa como blindaje).

Para probar los famiclones adapté un viejo cargador de teléfono celular Motorola V200, que en su ficha técnica indica una salida de 4.8[V] a 350[mA] de corriente directa, cuando en realidad entrega 12.8[V] de corriente continua. Hay que tener la precaución de medir las fuentes de alimentación antes de conectarlas a cualquier circuito y no confiarse de los datos impresos en la ficha técnica, ya que en la mayoría de los casos (sobretodo en cargadores de teléfonos celulares) el voltaje de salida indicado no coincide con el real.

Empezando con "iglesia", aparentemente todo estaba en orden, tanto en las placas de circuito como en las conexiones entre ellas. Sin embargo, al probar la continuidad entre los conectores de los controles y las terminales del NOAC resultó que la placa de circuito impreso con los conectores  presentaba fisuras en las pistas. Esa es una falla común en placas de baja calidad, ya que la capa de cobre se desprende de la resina fenólica y con los cambios de temperatura se forman grietas. Las fisuras también pueden aparecer cuando se aplica una fuerza excesiva a la placa de circuito, al punto de doblarla. Lo anterior suele ocurrir cuando se aprietan en exceso los tornillos que fijan la placa de circuito en el aparato.


La solución fue sencilla, soldar cables en la placa de circuito para completar el trazado de las pistas. Las pruebas con ambos controles fueron satisfactorias, así que dimos (la voz dentro de mi cabeza y su servidor) el trabajo por terminado.

Ahora bien, pasamos a "pantano". La falla era evidente, había un problema con la alimentación. Sin embargo, diagnosticar el punto exacto de la falla requiere un poco de conocimiento previo.

En los famiclones de "primera generación" (como el Inteltron 7000 y mi famiclón de toda la vida) se emplea una fuente regulada basada en el circuito integrado 7805 para alimentar a la consola. Ese diseño obedece a dos características principales. Una es que en un principio los famiclones eran precisamente eso, clones del Famicom, por lo que los fabricantes no cambiaban la configuración del circuito, presumiblemente para garantizar la compatibilidad y no perder tiempo en probar diseños u optimizaciones. La segunda es que los famiclones "de primera generación" consumen mucha corriente debido a la cantidad de circuitos integrados que poseen.

Por otra parte, los famiclones basados en NOAC ya no son clones en el aspecto electrónico del Famicom, aunque tratan de serlo en el aspecto funcional. La propia implementación del NOAC es una optimización que reduce los costos y los requerimientos de potencia. La fuente de alimentación de los famiclones NOAC no utiliza un 7805, sino una fuente básica de diodo Zener. El circuito exacto se indica en el siguiente diagrama.


El voltaje de entrada VIN debe ser un voltaje de corriente continua en el rango de 7[V] a 25[V]. El diodo Zener en la base del transistor funciona como una referencia de voltaje, mientras que el transistor funciona como una fuente de corriente que mantiene estable al circuito ante los cambios de demanda en la carga. Los capacitores sirven para reducir las oscilaciones en los voltajes de entrada y de salida de la fuente. Este tipo de fuente regulada es muy conveniente para alimentar circuitos de baja potencia, ya que es muy compacta y económica.

Esta topología de fuente regulada es de mucha utilidad para los estudiantes de electrónica que tienen maestros algo "quisquillosos", que les piden como práctica una fuente regulada de 5[V] o de 12[V] a 5[A]. Debido a que los reguladores fijos de las familias 78XX o 79XX están limitados a 1[A] o 3[A], si se emplea este circuito y se ajustan los componentes a las exigencias de corriente, es posible construir una fuente regulada de alta potencia. También sirve en el caso contrario, cuando los maestros piden un circuito sumamente pequeño de muy bajo consumo, ya que esta topología se puede implementar con componentes de montaje superficial (SMD).

Los famiclones emplean este tipo de fuentes por una cuestión de costos, pues el transistor y el diodo Zener cuestan una fracción del costo de un regulador de voltaje 7805, además de que evitan el uso del disipador metálico de calor.

En estas fuentes las fallas se suelen centrar en dos componentes, en el diodo Zener o en el transistor. Es conveniente probar ambos componentes al dar mantenimiento a la fuente. En el caso de "pantano", el transistor 2SC8050 se encontraba abierto entre colector y emisor. Es una falla relativamente común, ya que toda la conducción de potencia en la vida útil del famiclón ocurre a través de la unión colector-emisor de ese transistor. En otras palabras, es el componente que más estrés sufre en todo el circuito. Para probar ambos componentes recomiendo que se retiren de la placa de circuito, ya que no es posible detectar a simple vista un diodo o transistor con falla sin la ayuda de un osciloscopio.
 


El transistor 2SC8050 se puede sustituir por cualquier transistor NPN que tenga una capacidad de corriente entre colector y emisor de por lo menos 1[A]. En un principio lo sustituí por un 2N2222, ya que no tenía a la mano un reemplazo más coherente. Sin embargo el 2N2222 se calienta demasiado, ya que admite corrientes de hasta 600[mA], mientras que el 2SC8050 admite corrientes de hasta 1.5[A]. A final de cuentas empleé un MPS8050, con una corriente máxima entre colector y emisor de 1[A]. El MPS8050 se calienta un poco, pero no alcanza temperaturas alarmantes o que pongan en riesgo la integridad del componente.

Una vez realizado el cambio de transistor, se ensambló la consola y se probó. Algo que me causó curiosidad es que "pantano" tiene dos circuitos integrados cubiertos en epóxico negro, por lo que intenté arrancar la consola sin cartucho y descubrí que tiene 5 juegos incluidos. Los juegos que tiene son Super Mario Bros, Track and Field, Duck Hunt, Soccer y un juego de destreza estilo "Quadra Pop". No son la octava maravilla, pero son un buen valor agregado en la consola.

En el mundo de las consolas retro, los famiclones basados en NOAC suelen ser considerados los "patitos feos", ya que tienen fama de ser frágiles, tener pésima construcción y no brindar la misma calidad audiovisual de un NES o un famiclón de primera generación. En el aspecto electrónico carecen de la conexión de audio del pin 46 del conector de cartuchos, por lo que Akumajo Densetsu no funcionaría al 100%. Hay reportes de ciertos títulos de NES y Famicom que no pueden ser  jugados con un famiclón NOAC. Sin embargo, tienen la ventaja de ser muy baratos, requerir menos potencia para funcionar y sobretodo son muy fiables, ya que tienen menos componentes que puedan provocar fallas.

Los famiclones NOAC tienen una notable capacidad para entretener, pues el catálogo de juegos es muy extenso, está repleto de juegos divertidos y de buena calidad. Además dada su amplia disponibilidad, son excelentes opciones para la diversión y la experimentación.

¡Estamos en contact!

jueves, 17 de julio de 2014

Inteltron 7000.

Hola, ¿Cómo están?

Como siempre, espero que estén bien. Por fin he podido hacer un poco de espacio en la vida real para dedicarle un poco de tiempo a este, uno de los blogs más inconsistentes dedicados al debraye.


En cuanto a novedades videojueguiles, han pasado muchísimas cosas. Tenemos pendientes algunas recomendaciones de JRPGs de la época dorada de los 16-bits y unos proyectos homebrew... Que quedarán pendientes porque en esta ocasión no debrayaremos al respecto n_n.

Recientemente mi amigo Dash "Shingo" Bandit decidió reencontrarse con su infancia y comprar un famiclon similar al que tuvo en su niñez. Por alguna circunstancia extraña me involucré en la transacción de ese famiclon, un lote de consolas, unos Pongs y otros enseres. A final de cuentas, quedó en mis manos un famiclon llamado Inteltron 7000.



A primera instancia parece un clon bastante decente del Family Computer, pues tiene una forma que recuerda bastante a la consola de Nintendo, además de que tiene el detalle de tener los controles conectados de forma permanente en la parte posterior. La consola venía sin eliminador de corriente, pero a modo de "compensación" se incluía un cartucho. Según la publicación de la consola, la única falla que presentaba era que los controles no respondían y el juego incluido era Mario Bros.

Pues bien, al probar el cartucho en mi famiclon de toda la vida resultó ser el juego de Konkey Kong Jr. Así es estimado lector, no he errado el nombre del juego, así es como se lee en la pantalla de título.


Aunque se trata de un juego muy sencillo, por lo menos fue una grata sorpresa, pues es el único juego donde el personaje de Mario es el villano. Además, ya tengo el juego de Mario Bros.

Sin embargo, esto me mostró que la publicación no era acertada, así que antes de intentar encender el famiclon decidí abrirlo para evaluar su condición real. Y en esta ocasión mi desconfianza y sospechosismo fueron justificados, pues el interior de la consola estaba en condiciones deplorables. Humedad, tornillos oxidados, terminales y patas de circuitos oxidados, un insecto muerto y un par de placas de circuito impreso cubiertas con un lodo pegajoso se escondían bajo la carcasa del Inteltron 7000.

Llegado a este punto, la decisión más sensata sobre el destino del Inteltron 7000 era obvia, la consola debía irse a la basura. Pero por fortuna para la consola, su servidor no se caracteriza por tener un agudo sentido común... Así que decidí reacondicionarla.

Por desgracia no tomé fotos del estado inicial de la consola, solo tomé una de la placa del modulador RF posterior a una limpieza con cepillo abrasivo.


La foto salió borrosa, pero junto al conector para el eliminador de corriente se encuentran las patitas de un capacitor electrolítico, que no se encontraba en el circuito. Viendo el estado tan deplorable de las placas de circuito, lo primero fue limpiarlas con cantidades generosas de alcohol y generosos tallones con el cepillo abrasivo.

Después de la limpieza, el siguiente detalle fue encontrar la forma de encender la consola. Decidí descartar la placa del modulador RF, por lo que tuve que improvisar algunas conexiones para evaluar el estado funcional del famiclon. Para dotar de energía a la consola decidí utilizar la fuente de alimentación de un disco duro externo en desuso, que entrega 5[V] y tiene una capacidad de 2000[mA], más que suficiente para hacer funcionar a la consola sin inconvenientes.

Para conectar las señales de audio y de video a la televisión dupliqué parte de la circuitería del famiclon de toda la vida. La señal de video debe ser amplificada con un transistor NPN y a la señal de audio se le agrega un pulldown.


Este es el diagrama de las conexiones de audio y de video.


En esta foto se puede apreciar el circuito improvisado, junto con la fuente de alimentación empleada para las pruebas. Al encender la consola, el sentimiento fue agridulce, pues si bien la consola encendió el video se veía muy oscuro, al punto que salvo las cosas blancas, todo lo demás era completamente imperceptible.

Podría parecer una falla aparatosa, pero en realidad no lo es. Afortunadamente, el NES es un sistema bastante documentado. En el sitio Nesdev es posible encontrar información muy detallada de la consola, incluyendo el diagrama electrónico.

El video compuesto del famiclon sale de la terminal 21 del PPU, pasa a un amplificador de transistor PNP. En este caso hay que reajustar el punto de operación del transistor, para lo cual nos auxiliamos de un potenciometro, con el que polarizaremos de forma temporal el emisor del transistor. Una vez que la imagen se vea claramente y con colores vibrantes, desconectamos el potenciómetro del circuito, evitando variar su valor. Medimos el valor actual del potenciómetro y procedemos a colocar una resistencia de valor cercano en el emisor del transistor.

Debido a que la fuente de alimentación que decidí emplear es conmutada, se podía percibir un poco de ruido de alta frecuencia en la señal de video. Para contrarrestar ese efecto, debe conectarse un capacitor electrolítico de valor alto en paralelo con la fuente de alimentación. Para las pruebas preeliminares emplee un capacitor de 3900[uF] a 10[V], pero en el circuito final fue suficiente emplear 1000[uF]. Hay que tener cuidado de respetar la polaridad del capacitor, si no quieren tener fuegos artificiales en su espacio de trabajo.



La prueba de funcionamiento esta vez fue exitosa, además de que pude corroborar que ambos controles funcionaban perfectamente. El siguiente paso fue colocar todos los componentes de prueba en una placa de circuito impreso y proceder al ensamblaje de la consola.


En esta foto se puede apreciar la nueva placa de conexión. Tiene la ventaja de tener un generoso blindaje y además, dado que se omite el modulador RF se obtiene una señal más limpia y sin interferencia.

Y pues bien, con el circuito montado solo resta cerrar la consola y probar algunos juegos.


En esta prueba tenemos a "Score", el fontanero más famoso del mundo, a punto de caer en la trampa de un bucle infinito.

La imagen del Inteltron 7000 quedó muy limpia, comparada con la del famiclon de toda la vida.


A modo de comparación, en esta foto se puede apreciar que el famiclon de toda la vida sufre de mucho "jail banding", a pesar de que tampoco tiene el modulador RF. Sin embargo este famiclon no tiene tanto blindaje. En la foto podemos apreciar algo completamente irreal, a la selección alemana de fútbol golear a la selección brasileña 7 goles a 1. Algo que por supuesto sólo puede ocurrir en la fantasía de los videojuegos...

Y ya que estaba entrado en estos menesteres, decidí reacondicionar un control de NES que tenía por ahí, para usarlo con los famiclones. La distribución de pines y el color de los cables que emplee es el siguiente:



Uno de los detalles evidentes del Inteltron 7000 es que carece de conectores DB9 en la parte frontal para conectar controles de otros famiclones. Sin embargo es posible emplear el conector frontal de expansión y periféricos para conectar controles y no depender de los que se encuentran unidos a la consola. Para conectar ambos controles al puerto frontal se emplea la siguiente distribución de terminales:


Las terminales VCC, GND y STROBE/LATCH se comparten entre ambos controles.


En esta foto se empleó el control de NES para atorar a "Score". Por un extraño motivo, si antes de atravesar el muro no se visualiza ningún tubo, el scroll se queda fijo y no es posible avanzar la pantalla para que aparezca el tubo que llevaría a nuestro héroe a la trampa del bucle infinito. Debajo del control de NES se puede apreciar una placa de famiclon, que su servidor ha estado empleando para probar componentes y corroborar el diagrama de circuito de la consola.

El reacondicionar al Inteltron 7000 ha sido una experiencia muy gratificante y enriquecedora. Por una parte adquirí bastante conocimiento sobre el funcionamiento a nivel electrónico de un sistema al que considero, sentó las bases de mi vocación. Recuerdo que en mi infancia leía los anuncios de "El Taller de Luigi" en nuestra revista Club Nintendo y me parecía increíble que existieran personas con las capacidades tecnológicas y el conocimiento tan avanzado que se requería para diagnosticar y reparar a nivel de componentes, dispositivos tan complejos como un NES o un SNES.

La ingeniería en el diseño del NES y los Famiclones es digna de admiración, pues bastantes carencias y limitaciones de la tecnología de la época fueron solventadas aplicando mucha imaginación y creatividad.

Estamos en contact!

jueves, 22 de mayo de 2014

USBmegaISP... o algo así.

Hola que tal ¿Como están? Bienvenidos sean de nuevo.

En esta ocasión retomaremos un tema de los inicios del blog. Ya ha pasado mucho tiempo (más de tres años) desde que Dash ("Shingo") Bandit salvó el día con su ayuda para armar un programador USB para microcontroladores AVR.

Recientemente Dash ha tenido la inquietud de hacer una consola minimalista de videojuegos basada en AVR, tomando como base los proyectos de AVGA. Se trata de un proyecto bastante ambicioso, ya que requiere de mucho tiempo de investigación y de experimentación. De cierta forma me sentí identificado, pues recuerdo que para ensamblar el adaptador de controles de SNES a USB tuve que lidiar con varios obstáculos.

El primero de esos obstáculos fue conseguir un programador fiable de microcontroladores. Sin el programador es muy dificil avanzar, pues además de la obvia limitante de no poder armar los proyectos, también se restringe de forma importante la capacidad de incrementar la destreza y el conocimiento en el manejo de microcontroladores.

Por ese motivo decidí regalar a mi amigo el programador USBtinyISP que empleé en el desarrollo de todos los proyectos que hay en el blog hasta la fecha.

Hasta hace poco no resentí la falta del programador, pues había dejado un poco de lado la programación de microcontroladores. Sin embargo hace unos días tuve la inquietud de refinar unos programas. Traté de utilizar un programador USBasp "hechizo" que conseguí hace tiempo por internet, pero se presentaron varios errores al tratar de programar unos ATTINY25.

Por fortuna conservé un ATTINY2313 programado con el firmware del USBtinyISP, por lo que pude salir del apuro montando todo el proyecto en protoboard.

Con esa experiencia me quedó la lección de tener siempre un respaldo de las cosas que nos suelen ser de utilidad cotidiana. Decidí montar dos USBtinyISP, uno para el uso cotidiano y otro de reserva en caso de emergencia.

Sin embargo surgió una nueva dificultad, pues agoté mi stock de microcontroladores ATTINY2313. Además, como es costumbre, han incrementado su precio de forma importante en estos meses. Por fortuna tenía varios ATMEGA48, por lo que decidí utilizarlos para portar el firmware del USBtinyISP a esos dispositivos.

Aunado a lo anterior, la versión más reciente de la biblioteca V-USB admite la frecuencia de 12.8 [MHz] utilizando el oscilador RC incluído en todos los AVR. Gracias a esa mejora en la biblioteca es posible prescindir del cristal y los capacitores de resonancia.

Así que, después de varias pruebas exitosas he decidido publicar esta variante del USBtinyISP. Debido a que emplea la versión más reciente de la biblioteca V-USB, se puede adaptar fácilmente a cualquier otro dispositivo de la familia AVR.

USBmegaISP (archivo binario, código fuente, diagrama y lista de partes).

Diagrama esquemático.
La lista de componentes es la siguiente:
  • C1       0.1uF cerámico        
  • C2       10uF electrolítico
  • D1       3V6 diodo zener (3.6 [V])         
  • D2       3V6 diodo zener (3.6 [V])        
  • IC1      ATMEGA48 (20MHz)     
  • ISP      10 pin header             
  • LED1                  
  • LED2                  
  • R1       68R          
  • R2       68R          
  • R3       10K          
  • R4       220R         
  • R5       1.5K         
  • R6       1.5K         
  • R7       220R         
  • R8       1.5K         
  • USB    Conector hembra.
Debo aclarar que no he tenido problemas para programar con este circuito, sin embargo, al programar microcontroladores ATTINY25 el programa Avrdude muestra un error al terminar de verificar los fusibles. A pesar el error, los microcontroladores se programan y verifican de forma correcta.

Espero que les sea de utilidad, estamos en contact!

jueves, 17 de abril de 2014

Debraye autocomplaciente v1.00


Hola, ¿Cómo están? Bienvenidos sean nuevamente a este espacio, dedicado única y exclusivamente a los debrayes autocomplacientes de su servidor. En esta ocasión retomaremos (la voz dentro de mi cabeza y yo) la entrada anterior, por lo que continuaremos con las reseñas de baja calidad de grandes juegos.

Después de probar un juego tan bueno como Dragon Quest IV, decidí darle un vistazo a un juego que sólo fue lanzado en Japón para SNES, Chou Mahou Tairiku Wozz (conocido simplemente como WOZZ). Es un juego desarrollado por Royal Emperor Dragon Company (RED Company), empresa creadora de joyas como Far East of Eden Zero (para SNES) y Sakura Taisen. Este juego me llamó la atención desde el lejano año de 1995, cuando nuestra revista Club Nintendo cubrió por primera vez el evento Shoshinkai Show. En un breve párrafo dedicado al booth de BulletProof Software, aparecía una imagen de Leona (protagonista del juego), una foto del juego y un breve texto que decía "WOZZ (un RPG que a decir de varios es interesante)"... Y en ese mismo párrafo mostraron una foto de Shutokou Battle 2 de Super Famicom, antecesor de uno de los juegos de carreras favoritos de su servidor, Tokyo Xtreme Racer 3. Ante tan "extensa" cobertura mediática, parece increíble que me haya quedado algún recuerdo de ese juego.

Por fortuna, en aquella época recién estaba descubriendo mi afición por el anime y el manga, por lo que cualquier cosa que tuviere una estética tipo anime tenía la cualidad de llamar poderosamente mi atención. Y por fortuna, ahora he podido no solo probar el juego, sino terminarlo y comprender su historia gracias a la traducción de Nightcrawler's Translation Corp.

WOZZ es un RPG lanzado en 1995, cuando la consola PlayStation comenzaba a consolidarse en el mercado japonés y toda la atención de los medios especializados se volcaba hacia la próxima consola de Nintendo (la prometedora Nintendo 64). Así, WOZZ fue un juego que pasó bastante desapercibido en Japón y aún más en occidente, donde su presencia es prácticamente nula. A pesar de ello, es un juego que vale mucho la pena.

En el juego, el mundo mágico de Wozz se encuentra en dificultades, pues una extraña lluvia desatada por un ente malvado convierte a las criaturas en demonios. Sullivan, el mago más poderoso de Wozz recurre a su última esperanza. Utiliza todo su poder mágico para invocar a un héroe legendario, sin embargo, el ritual convoca a tres jóvenes del mundo humano. En principio, ninguno de los jóvenes planea ser héroe, pero ante la imposibilidad de volver a su mundo, deciden embarcarse en la aventura para ayudar a los habitantes de Wozz y de paso descubrir una forma de volver a sus hogares.

Wozz es sin lugar a dudas uno de los RPG más infravalorados del SNES. El aspecto gráfico del juego es excelente. Tanto los escenarios, como los personajes y los efectos especiales están al nivel de los máximos exponentes del género en 16 bits. La música es otro aspecto sorprendente, pues tiene una gran calidad. La historia es buena, aunque tarda un poco en enganchar al jugador, al tomar ritmo se vuelve muy ágil. El guión del juego es muy bueno, pues tiene las dosis correctas de tensión, emoción y humor.

Wozz es un juego muy especial, pues es uno de esos juegos que logran captar al jugador de tal forma, que al terminarlo queda una sensación de vacío, al saber que hemos agotado todo lo que el juego tiene para ofrecernos.

Existen juegos que tienen la cualidad de ofrecerle al jugador una nueva experiencia cada vez. Juegos como Super Mario Bros, Megaman X, Street Fighter II y Sonic Adventure tienen esa cualidad. Otros juegos como Doom también poseen esa cualidad, pero además brindan al jugador la posibilidad de expandir el juego de una forma increíble, gracias a los agregados que pueden descargarse por internet o ser creados por uno mismo con herramientas como DoomBuilder. También hay muchos juegos que en la actualidad pueden ser expandidos gracias a las modificaciones hechas por los videojugadores.

Existen editores de niveles muy completos para juegos como Super Mario Bros 3, Super Mario World, Super Mario Kart. Otros juegos incluyen opciones de depuración que permiten editar los niveles de forma dinámica, como es el caso de Megaman X para Super NES. Gracias a los programas de edición de niveles es posible no sólo ampliar las posibilidades de un juego, sino también conocer la forma en que funciona.


Por ejemplo, en toda la saga de Super Mario Bros. para NES (y sus relanzamientos para SNES, GBA y Wii), los niveles están constituidos únicamente por "tiles" o cuadros de 8x8 pixeles. Además, en la estructura del juego no existe ningún objeto que tenga la propiedad de actuar como un muro. Esto podría sonar bastante contradictorio, pues desde el primer Super Mario Bros. es posible chocar con paredes de ladrillo o con objetos impenetrables. Pues bien, en los juegos de Super Mario Bros, todos los muros en realidad se encuentran simulados, ya que en realidad se tratan de pisos sobrepuestos de forma vertical. De tal suerte que una muralla de 16 bloques de altura en realidad es una superposición de 16 "suelos" o "tiles" de altura.

Utilizando el conocimiento de cómo funciona el juego, es posible emplear algunas de esas características a favor del videojugador. Sabiendo que en Super Mario Bros todos los muros son en realidad "suelo" ¿Que pasaría si alguien puede pisar parte de ese "suelo"? Pues ocurre que la dinámica del juego reacciona de una forma muy peculiar. Si uno salta hacia un muro y justo en el momento en que el personaje toca la esquina de un "tile" presionamos en dirección contraria al muro, el personaje se atorará en el muro. Utilizando ese "truco" es como se puede llegar al Mundo -1 de Super Mario Bros. Esa propiedad de los "tiles" de Super Mario Bros es empleada en muchos de los TAS (Tool Assisted Speedruns), pues permite realizar saltos dobles y atravesar gran cantidad de obstáculos para terminar el juego en el menor tiempo posible.

Existe un evento llamado Awesome Games Done Quick (AGDQ), que reune a varios "speedrunners" (videojugadores especializados en terminar juegos lo más rápido posible) y realiza una transmisión en vivo a través de internet. El objetivo del evento es recabar donaciones para alguna causa noble y altruista, mientras el público se divierte viendo jugadas excepcionales en varios juegos clásicos. En la edición AGDQ 2014 se demostró lo que es llevar el conocimiento sobre un videojuego al extremo.

En este video es posible apreciar un TAS muy peculiar. Para empezar, fue realizado en una consola SNES y no en un emulador (como es la costumbre en los TAS). Para lograrlo emplearon un TASBOT, que es un dispositivo basado en Arduino (y por consiguiente, basado en nuestros queridos AVR) que se conecta a los puertos de controles del SNES y realiza una rutina previamente programada, de tal forma que se pueden realizar acciones en el juego que un humano difícilmente lograría. Y bueno, lo que ocurre en el video es simplemente impresionante.

Lo que ocurre en el video es que al hacer aparecer sprites específicos en orden también específico es posible mover el contador de programa a voluntad, a la vez que es posible manipular el contenido de la RAM con las entradas del control. Tanto el menú, como los minijuegos que aparecen fueron programados "en vivo" desde los controles. Toda la información técnica detrás de este TAS la pueden encontrar aquí.

También existen juegos que tienen secretos escondidos, que sus desarrolladores pensaron que nadie podría encontrar. No me refiero a los trucos ni a los llamados "easter eggs" que en ocasiones se encuentran en los juegos y que conforman alguna curiosidad (y a veces inclusive crean "creepypastas"). Me refiero a las cosas que los programadores dejan en el código del juego pero que nunca son empleadas. Pueden ser sprites, diálogos, piezas musicales o inclusive fases completas del juego. Gracias a las herramientas de depuración y análisis de código es posible encontrar toda clase de curiosidades, que nos brindan información muy valiosa, pues nos permiten descubrir la forma en que el juego fue evolucionando. En ocasiones es posible conocer el contexto en el que el juego fue desarrollado.

Un caso que me llamó mucho la atención es el mensaje que puede encontrarse en la ROM del juego de NES Commando. Dicho texto jamás es empleado dentro del juego y lo transcribo a continuación:
NO.16 TAKAI MAMIKO KAISYA NO HIKKOSHI DE 86/7/6 AKUSYUKAI NI IKENAKKATTA NOGA KUYASII MAMIKO FAN YORI

Que se traduce a: Fue imposible ir a estrechar la mano de Mamiko en la fiesta del 6 de julio de 1986, ya que mi compañía se mudó. De un fan de Mamiko.

En ese mensaje podemos intuir que alguien se quedó con las ganas de conocer en vivo a Mamiko Takai. Y si usted amable lector, tiene curiosidad de ver cómo eran las "idol" japonesas de la década de 1980, le acerco la liga a un video de Mamiko Takai. Podemos apreciar un poco más el contexto cultural en el que se programó el juego de Commando, con esa simple pista oculta entre todos los bytes del juego.

Sean bienvenidos de nueva cuenta, 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...