domingo, 29 de enero de 2012

Una breve actualización 2 (La Venganza).

Hace mucho tiempo, en un taller de redacción al cuál asistí dieron un consejo que me parece muy bueno y que puede aplicarse a muchos aspectos de nuestra vida. La recomendación era que al hacer una obra, la realizáramos de la mejor manera posible y nos diéramos un tiempo sin tocarla. Luego, después de un tiempo (lapso de por lo menos un par de días) volver para revisarla. Esa técnica me ha servido a detectar errores que en el momento no son tan fáciles de apreciar, además de que me da la oportunidad de generar ideas nuevas que pueden ser agregadas a la obra. También me ha ayudado a generar críticas más objetivas sobre mi propio trabajo. Recordé este consejo y lo puse en práctica. Una vez más, ha rendido sus frutos.

Hace unos pocos días compartí con ustedes el adaptador de controles de Super NES, SEGA Saturn y PlayStation a Dreamcast y hace aún menos días justifiqué las limitaciones de dicho adaptador. Entre dichas las limitaciones, dos se debían a características de hardware, mientras que una se debía a una deficiencia en el software.

Revisando un código viejo que generé cuando traté de conectar por primera vez un control de PlayStation a la Dreamcast, me percaté que manejaba un esquema de tiempos muy distinto al que ocupé en el adaptador que compartí. Sin embargo ese código permitía comunicarse de forma exitosa con el control inalámbrico LavaGlow. Así, juntando lo mejor del código que había generado más recientemente con el esquema de tiempos del código más antiguo logré subsanar la tercera de las limitantes del adaptador, es decir, el adaptador ahora soporta controles inalámbricos de PlayStation. Las pruebas con los controles DualShock originales, el control Nubytech de Street Fighter, el LavaGlow Wireless y el Pelican Chameleon (inalámbrico) fueron todas exitosas.

Así doy por concluido el proyecto del adaptador, por lo que pongo a su disposición la versión FINAL del firmware.

Adaptador de controles de PlayStation, SEGA Saturn y Super Nintendo a Dreamcast (MapleBUS). (Versión FINAL).

En el archivo se encuentran el firmware actualizado, el diagrama del circuito y la configuración de fusibles. El diagrama del circuito es completamente idéntico al de la primera versión.

Un saludo a todos, estamos en contact.

sábado, 28 de enero de 2012

Ultimate Console Controller Match Up!! (Comparativa de controles).

Una de mis pasiones, como se puede notar debido al contenido del blog, son los controles de consolas de videojuegos. Son los dispositivos que le brindan su identidad a los videojuegos, ya que sin ellos no existiría la interacción entre el videojugador y el juego. Es decir, sin ellos, los videojuegos no serían diferentes a los programas de televisión. Sin embargo a algunas compañías desarrolladoras de periféricos pareciera que se les olvida su importancia y ponen a la venta controles incómodos, de mala calidad, pésimos acabados, respuesta mediocre y pésima durabilidad.

Sin embargo, hay empresas que se han esforzado por diseñar controles que tienen como fin facilitar al usuario la introducción de comandos para que su interacción sea lo más efectiva posible, es decir, que el control no se convierta en una barrera que limite la experiencia del videojugador.

Un ejemplo de esos controles es el control de XBOX 360, que aunque tiene muchos detractores, me parece que es un gran acierto en ergonomía. Entre las cualidades del control se encuentran su apropiada distribución de sticks analógicos, la solidez de sus botones, su peso reducido y su forma. Es un control que no cansa después de jugar por lapsos largos de tiempo. Pero también tiene sus defectos, entre los cuales el más notorio es la pobre respuesta que tiene su cruceta direccional.

Utilizando mi adaptador de controles en la Dreamcast, decidí hacer una breve comparativa (el título del post es cotorreo) entre los controles de Super NES, SEGA Saturn, DualShock, Nubytech Street Fighter II, el Arcade Stick de SEGA Genesis y el propio control de Dreamcast. Se comparó su desempeño en los juegos de peleas, donde se requiere de mucha precisión y velocidad para introducir secuencias con el fin de ejecutar movimientos especiales y combinaciones.

El fin de esta comparativa es compartir mi experiencia con respecto a estos controles para ayudar a quien busque una alternativa que le permita disfrutar de sus juegos de peleas de la mejor forma y sin tener que desembolsar la gran cantidad de dinero que representa comprar un arcade stick profesional (que sin lugar a dudas es la mejor opción).

La prueba fue muy sencilla. Para ella se empleó el juego de Capcom vs SNK 2 en su versión de Dreamcast, el modo de entrenamiento y al personaje Hibiki Takane. El objetivo fue ejecutar y conectar por completo el movimiento especial Shikabane no koete iku nari en su segunda derivación. Se aplica marcando un medio circulo desde el frente hacia la espalda del personaje, enseguida presionar hacia el frente y algún botón de patada simultáneamente. Posteriormente se aplica la secuencia LP, MP, HP, LP, MP, HP, LK, MK y un cuarto de círculo hacia el frente a la vez que se presiona HK. Sin embargo, se puede agregar un remate al marcar al final otro cuarto de círculo al frente junto con HK. Marcar este movimiento especial tiene su chiste, debido a que no basta con presionar la secuencia de botones correctamente, sino que se deben vigilar los tiempos en que se presionan los botones, ya que tiene partes donde se necesita retrasar o acelerar la secuencia.

En este punto cabe aclarar que traté de ser lo más imparcial posible al evaluar el desempeño de los controles, ya que cada uno de esos controles los adquirí en la búsqueda del mejor. Además, mi habilidad en el juego antes mencionado no es la de un novato ni mucho menos, de hecho ese movimiento especial lo conecté cerca de un millar de veces en las salas de arcade.

No daré una calificación numérica ni tratare de convencerlos de qué control es mejor, sino que reseñaré la experiencia que tuve con cada uno de ellos, para que de esta forma ustedes puedan elegir el que mejor se acomode a su estilo de juego.

Con el control de Super NES marcar el movimiento fue muy fluido. La secuencia de botones fue muy fácil de marcar debido a que el tamaño y la forma de los botones permite a los dedos ubicar en qué fila se encuentran, lo que ayuda a recorrer la secuencia. Sin embargo, después de varias repeticiones el roce de la cruceta con el pulgar de la mano izquierda fue un poco incómodo.

Con los controles DualShock (tanto DualShock 1 como DualShock 2) también se marcó el movimiento de forma muy fluida. Al contrario de lo que pensé, los botones direccionales no representaron gran obstáculo para marcar la secuencia. Aunque a primera instancia se tiene la impresión de que el control no responde, la verdad es que la sensibilidad de los botones es muy alta. Así, aunque al usuario le dé la impresión de no estar marcando la secuencia (ya que los botones direccionales no se presionan mucho) la verdad es que el control registra muy bien lo que se está ejecutando. Los botones L y R son más pequeños que en el control de Super NES, lo que obliga al usuario a mover un poco más los falanges distales (las puntas de los dedos de la mano) para presionarlos. El stick analógico es muy sensible y suele marcar direcciones con mucha facilidad, lo que en ocasiones provoca que las secuencias rápidas se registren de forma errónea.

El control de SEGA Saturn permite marcar el movimiento con mucha fluidez y precisión. La cruceta se puede presionar balanceando el pulgar (sin necesidad de deslizarlo) lo que evita el roce y las posibles ampollas. La disposición de los botones permite ubicar de forma muy precisa el botón que se desea presionar y ayuda a presionar la secuencia de forma correcta.

El control Nubytech es muy similar al de SEGA Saturn, sin embargo su cruceta es muy pequeña, lo que dificulta un poco marcar los movimientos.

El Arcade Stick de SEGA Genesis tiene una respuesta muy pobre en las direcciones. Marcar el movimiento fue relativamente complicado. Sin embargo para presionar la secuencia de patadas y puñetazos, la distribución de los botones resultó ser muy cómoda.

El control de Dreamcast se comportó muy similar al DualShock excepto en un detalle. Los gatillos L y R representaron un verdadero impedimento, ya que el movimiento extra de los falanges distales provoca un leve retraso. Debido a ese retraso, es muy fácil perder la secuencia de golpes. Sin embargo, un jugador experimentado puede compensar ese retraso presionando con anticipación los gatillos.

El uso de un determinado control no nos hace mejores o peores videojugadores, pero puede afectar la forma en que transmitimos nuestros comandos al videojuego. Así, con el uso del control que nos resulte más cómodo podemos realizar jugadas tal y como las visualizamos en nuestra mente, sin que eso tenga que ver precisamente con nuestra habilidad.

Hay quien prefiere acostumbrarse a un control que no es del todo amigable con su forma de juego, con el fin de eliminar ese factor de ventaja competitiva. Yo soy de la idea contraria, busco el control que me resulte más cómodo y que me permita disfrutar de los juegos, sin tener que realizar la curva de aprendizaje que implica el tener que acostumbrarse a un control relativamente incómodo. Veo absurdo torturarse y tratar de acostumbrarse a jugar juegos de peleas con el control de Dreamcast, cuando existen otros controles que desde un principio te permiten disfrutar plenamente de dichos juegos.

Mi recomendación es que si planean adquirir algún control especial, busquen reseñas en internet o revistas que se enfoquen en su funcionamiento y respuesta. Algunas reseñas populares como las de The Game Museum o Classic Game Room son inútiles si se desea dar algún práctico a los controles, pues se enfocan a los acabados, a la apariencia y al valor ornamental del control, sin prestar la mínima atención a su desempeño al momento de jugar. Eso me parece completamente absurdo, considerando la función principal de los controles.

Ahora bien, mi recomendación personal es que si son amantes de los juegos de peleas, consigan un control de SEGA Saturn modelo 2, o en su defecto, consigan el Control Pad SEGA USB. El Control Pad es idéntico al control de SEGA Saturn modelo 2, pero cuenta con conexión USB. Cuidado con las copias piratas de Retrolink, que son de una pésima calidad.

viernes, 27 de enero de 2012

Desde que se inventaron los pretextos...

Hace unos días compartí con ustedes el proyecto que realicé en las vacaciones, el adaptador de controles de Super NES, SEGA Saturn y PlayStation a Dreamcast. Cuando hice esa entrada al blog la verdad aún estaba muy emocionado, pues para mí representó un gran logro, la culminación de un proyecto que si bien no llevó tanto tiempo realizar, tuve inquietud de llevarlo a cabo desde el año de 2004, cuando adquirí mi primer Dreamcast. Hasta la actualidad fue que tuve las herramientas (tangibles e intangibles) para concretarlo. Sé que desde hace mucho tiempo existen (o más bien existían) en el mercado los adaptadores Total Control de la empresa china EMS y el adaptador de la empresa Innovation. Los adaptadores Total Control permiten conectar, dependiendo de su versión, diferentes dispositivos a la Dreamcast. Una versión permite conectar controles de PlayStation, otra conectar teclados y mouse de computadora, otra conectar controles de SEGA Saturn (con soporte para VMU) y otra permite conectar controles de PlayStation (con soporte para VMU). Por otra parte, el adaptador de Innovation permite conectar controles de PlayStation y SEGA Saturn (con soporte para VMU). Si encuentran alguno de esos adaptadores en el mercado a un precio accesible, les recomiendo que los compren, de verdad son una buena inversión si aún disfrutan de jugar con su Dreamcast.

Mi principal inquietud fue conectar un control de Super NES a la Dreamcast. Cuando los Reyes Magos me trajeron mi Super NES el frío 5 de enero de 1993 venía acompañado de un juego que yo no conocía, pero que mi hermano había pedido y que me atrapó desde que comencé a jugarlo: Street Fighter II - The World Warrior. Debido a que la economía familiar nunca ha sido del todo favorable, mi hermano y yo jugamos Street Fighter II (a falta de otros juegos) con los pads de Super NES (a falta de otros controles o arcade sticks) hasta el hartazgo y un poco más. Así que me acostumbré mucho al control de Super NES. Como me brinqué la quinta generación de videojuegos, la verdad no pude probar a conciencia los pads que le sucedieron al de Super NES.

Fue en 2004 cuando volví al mundo de las consolas de videojuegos con una SEGA Dreamcast. La adquirí por la gran calidad de sus juegos, tanto de lucha como de aventuras. Sin embargo el control de Dreamcast me pareció desde el principio de lo más incómodo para cualquier juego de peleas. La cruceta es muy alta, por lo que deslizar el pulgar sobre ella después de un rato se vuelve tortuoso. El stick analógico es demasiado sensible como para ser usado como reemplazo a un stick arcade en miniatura. Y lo peor son gatillos analógicos L y R, que no son apropiados para fungir como botones, sobretodo porque los juegos de peleas suelen considerar que están siendo presionados cuando ya llevan el 70% de su carrera.

En mi país la Dreamcast jamás fue popular, por lo que conseguir accesorios especiales para ella suele ser una tarea difícil y muy costosa en términos monetarios y de tiempo. Mi primer intento de llevar la comodidad de un control de Super NES a la Dreamcast fue un experimento bastante grotesco que rindió resultados sumamente pobres. En aquél entonces estudiaba Sistemas Computacionales, y la verdad era bastante soberbio, ya que me había convencido de que estaba estudiando la carrera punta de lanza tecnológica... y no era verdad. Así que con mis "avanzados" conocimientos en software y hardware hice lo que al día de hoy suena a todo... menos un experimento tecnológico. Tomé un control genérico de Super NES (marca "Maestro") y le corté con unas tijeras al PCB la parte donde se encontraba la circuitería (la clásica gota negra). De esa forma obtuve un PCB con la distribución correcta de botones del control de Super NES. Posteriormente tomé un control de Dreamcast marca Astropad Performance y le extraje la PCB. A esa PCB le fue aún peor, pues le corté los conectores para las memorias (que me hubiera gustado conservar para algún experimento), la limé un poco y le liberé las conexiones que iban a los botones. Neutralicé el stick analógico con dos resistencias de 10[kOhm]. Después soldé los pads de los botones del PCB del control de SNES a los correspondientes botones del PCB del control de Dreamcast. Traté de meter al Frankenstein a la carcasa del control de Super NES pero, como es de suponer, no cupo. Haciendo gala de mis habilidades, limé un poco la carcasa del control de Super NES y ni aún así logré que cupiese. Tratando de hacer que entrara todo en la carcasa, incluso lime la cruceta por su parte baja, adelgacé el plástico de la carcaza, pegué las gomas conductoras a los botones (previamente rebajados) hasta que finalmente todo cupo. Como los orificios de los tornillos de la carcasa no coincidian en ambos PCB, cerré la carcasa con cinta adhesiva. Llegó el momento de probar con mi juego de peleas preferido, Capcom vs SNK 2 y comprobé que había hecho una tremenda tontería. El control respondía (dado que en realidad era un control de Dreamcast disfrazado) pero la sensibilidad de cada botón era de regular a pésima, ya que no estaban niveladas las gomas conductoras y habían perdido su rigidez, por lo que los botones tendían a quedar presionados.

Bueno, en su momento yo todavía me sentía orgulloso de mi creación y me dije a mí mismo que había logrado hacer lo que nadie, un control de Dreamcast con forma de control de Super NES. Pero el gusto duró poco, a los dos minutos era evidente que con los movimientos las tapas del control se deslazaban y se empezaban a trabar los botones L y R. Finalmente el control se abrió por completo y fue hasta ese momento que tuve que reconocer que había tenido una pésima idea, ya que sacrifiqué inútilmente dos controles completamente funcionales para convertirlos en una basura.

Pero la tontería no terminó ahí. Mi necedad me llevó a tratar de "optimizar" la circuitería del control de Dreamcast que había sacrificado, así que procedí a desoldar todos los componentes de la PCB, en la cual solo quedó la gota negra (que según yo, era el núcleo operativo del control). Cuando conecté el PCB a la Dreamcast, obviamente no respondió. Ahora sé que una de las piezas que había quitado era un oscilador que le brindaba al circuito su base de tiempo y le permitía trabajar. En aquél entonces lo confundí con un capacitor de poliéster...

Cabe mencionar que en esa época ya me había estudiado con cierto detenimiento la patente del MapleBUS, por lo que creía tener una idea muy clara de cómo funcionaba el bus.

Pasaron muchas cosas, muchos años y dejé por la paz "mi proyecto". Fue hasta 2009 que conocí el proyecto de Raphael Assenat para conectar los controles de Super NES a la PC por USB que volví a sentir curiosidad por retomar "mi proyecto". Se tiene la creencia popular de que el MapleBUS es similar al USB. Nada más lejos de la realidad. Ambos buses tienen en común ciertas cosas, como las alimentaciones de 5[V], el par de cables de datos y el ser bidireccionales, pero no comparten el método de transmisión. En el blog he narrado como fue mi incursión en la experimentación con controles y adaptadores de los mismos a USB y al MapleBUS.

Y, ¿a dónde quiere llegar el pseudo-nerd con este rollo kilométrico extra mareador? ¿A caso se está despidiendo del blog? ¿A caso está exigiendo reconocimiento por su "logro"? ¡¡Claro que no n_n!!

De hecho, escribo esto para dejar constancia de que no se necesita nacer con un talento, ser una eminencia programando, ser un hábil artesano o un gran estudioso para llegar a realizar cosas que se ven intimidantes y hasta se antojan imposibles la primera vez que se miran. Basta tener curiosidad, determinación y ganas de aprender. La curiosidad abre las puertas del conocimiento. La determinación permite concretar los proyectos aún cuando se encuentran obstáculos que parecen infranqueables. Las ganas de aprender son el motor principal. La falta de recursos tampoco es pretexto para dejar de hacer las cosas. En lo personal, no cuento con generador de señales, ni osciloscopio, ni analizador lógico. Mi método de depuración es el clásico LED conectado a un pin del microcontrolador y tratar de dar sentido a los destellos del mismo.

Bueno, y después del choro motivacional, van mis excusas sobre las limitantes del adaptador y el porqué son cada de ellas.

El adaptador no puede soportar VMUs ni vibración porque la comunicación con el MapleBUS es una combinación entre un hack, un glitch del puerto y, como diría Bob Ross: "un accidente feliz". Por lo tanto, el adaptador no es capaz de discriminar que datos irían para el control y que datos irían para los periféricos, simplemente responde a todos los comandos. Responde incluso a algunos comandos que podrían ser inválidos (como 0xCF) pero que por suerte, no están dentro de la enumeración de comandos del puerto. Así que dadas estas limitantes tecnológicas, este adaptador no soporta ni soportará dispositivos de memoria o vibración. Usando otros microcontroladores (como el HC12) es muy probable que se llegara a lograr en el mediano plazo, pero de momento, y con microcontroladores de bajo costo (PIC, AVR o HC08) no lo veo factible.

El adaptador no soporta dispositivos como el mouse del SNES, la Konami Justifier, el Super Scope y el NegCon por dos razones. Una es que el Dreamcast se comporta muy distinto cuando se conectan dispositivos especiales (sobre todo las pistolas de luz, que emplean el SDCKB occupy mode) e implementar todas esas variantes del protocolo sería muy demandante. La segunda y más importante es que no dispongo de ninguno de esos dispositivos, así que tratar de dar soporte a esos periféricos en base a especulaciones y sin depuración sería una completa negligencia de mi parte y hasta una falta de respeto para aquellos que trataran de armar el adaptador con miras a conectar esos dispositivos.

Sobre los controles inalámbricos de PlayStation, aquí si se me escapa por completo la excusa. Actualmente no conecto para las pruebas la terminal 3 (9[V]) debido a que mi cople no cuenta con esa conexión. Además, no realizo todo el procedimiento de "handshake" que efectúa el PlayStation con sus periféricos. De hecho, al contrario de lo que varias personas afirman en internet, el PlayStation se comunica de manera constante con el control, entrando al modo de configuración varias veces entre lecturas de estados de botones, y no sólo lee el estado de los botones cada 16[ms]. Así pues, aquí si quedan aún frentes por atacar y es muy probable que en el futuro cercano se puedan soportar los controles inalámbricos apropiadamente.

Y bien, se espera que con el adaptador funcionen los controles, arcade sticks y tapetes de baile de Super NES, SEGA Saturn y PlayStation. Se espera que no funcionen volantes, pistolas de luz, ratones, teclados, micrófonos y en particular, el control analógico de SEGA Saturn. Podría funcionar muy probablemente la guitarra de Guitar Hero, aunque no sé si exista algún port de Frets of Fire para Dreamcast. Si existiere, haría lo posible por tratar de soportar de forma adecuada dicho control.

Así que en resumidas cuentas, pueden diseñar el circuito impreso de su adaptador con toda confianza, ya que la probabilidad de aumentarle capacidades a nivel de hardware es muy remota (prácticamente nula) y las posibles mejoras en software serían orientadas (en caso de presentarse) en aumentar la estabilidad del adaptador, soportar los controles inalámbricos de PlayStation y corregir algún posible error.

Como dice Gus Rodríguez: Estamos en contact.

jueves, 26 de enero de 2012

Un poco de todo... ¿o un mucho de nada?

Esta última semana de vacaciones ha estado muy movida, el internet está siendo bombardeado por noticias y sucesos que le quitan su paz y lo han convertido en un auténtico mar de incertidumbre. Muchos han notado (y sufrido) el reciente cierre de servidores de almacenamiento masivo de archivos, un evento cuyas máximas consecuencias están apenas por verse y que puede cambiar de forma muy radical la forma en que mucha gente venía utilizando el internet en las últimas fechas.

Recuerdo muy bien mi primer acercamiento a internet. Fue en el primer semestre de la carrera técnica, principios del año 1999. Yo no disponía de computadora personal en aquella época, pero en la escuela existía un salón donde podías registrarte y acceder a internet en unas poderosas computadoras con Windows95 o Windows98 por un lapso de 10 o 15 minutos para realizar consultas académicas o culturales.

Un amigo trató de convencerme de que lo más cool que había en el mundo eran las salas de chat y tener tu propia cuenta de correo electrónico. Sin embargo, a mí me llamaba la atención poder ver imágenes y buscar información acerca de las series de animación japonesa (también llamada anime) que me gustaban. Como no contaba con muchos recursos económicos (situación persistente en el presente) estaba limitado a la oferta que me daba la televisión abierta, que por suerte en esas fechas transmitió auténticas joyas como Slayers, Slam Dunk, Saint Tail, Detective Conan, Beta X y cosas no tan buenas como Zenki, Goleadores o Sailor Moon. En aquella época el acceso a contenidos multimedia e imágenes por internet era un auténtico suplicio. Ni hablar de descargar algún video o canción, simplemente era una labor que requería de demasiado tiempo y muchos recursos.

Los factores que más repercutían en la forma en que la gente utilizaba el internet estaban relacionados con las propias limitantes tecnológicas de la época. Las computadoras más comunes eran las Pentium, ya que las más potentes (Pentium III Coppermine) eran demasiado caras. La forma más común de conectarse a internet era por medio de un fax módem de 56 kbps (en el mejor de los casos), a través de un enlace telefónico que en efecto, ocupaba la línea telefónica y la imposibilitaba para recibir o hacer llamadas mientras durara la conexión. Los cuelgues de la línea y las interrupciones en la conexión eran el pan no de cada día, sino de cada hora por lo menos.

Cabe mencionar que el concepto de internet en un solo pago ya existía en aquellos tiempos. El técnico (persona que solía realizar las instalaciones de las computadoras) te proporcionaba un nombre de usuario, una contraseña y el teléfono de Prodigy para que te conectaras. Si la cuenta expiraba, bastaba con comunicarse con el técnico y él te brindaba otra.

Los enlaces por teléfono (llamados vulgarmente Dial up) tenían todos los inconvenientes del mundo. Ocupaban por completo la línea telefónica, eran muy lentos (la velocidad de descarga solía ser de 5.7 [kB/s]) y la conexión se perdía por cualquier cosa: si alguien descolgaba el teléfono, si el servidor de saturaba, si alguien más ingresaba con la misma cuenta que tú, si el viento movía los cables, si caía un rayo en la línea de teléfono (lo que a la postre quemaba el módem), si se te instalaba sin querer un dialer que trataba de conectarse a las Islas Caimán, entre muchos otros eventos, coincidencias y vicisitudes.

Las desconexiones tan frecuentes hacían que descargar contenidos de gran tamaño (en aquel entonces una archivo 5[MB] ya era enorme) fuera una cuestión que requería de un poco de pericia y de mucha suerte. Recuerdo que el primer archivo pesado que descargué de internet fue una página web con fotos de paisajes (en aquél entonces tampoco sabía usar la computadora) que prácticamente llenó un disquete (de los de 1.38[MB]). Después de eso siguió descargar galerías de imágenes de anime desde sitios alojados en Geocities, Galeon e Hispavista.

Posteriormente, ya cuando tuve mi PC, conocí el mundo de los emuladores de consolas. A mí me interesaba en particular el de SNES, y aunque no sabía ni que tenía que hacer para poder jugar los juegos de consola en la computadora, me dí a la tarea de buscar un emulador y sus respectivas roms. El mejor sitio que encontré (con una búsqueda en Yahoo!) fue una página en HTML plano que tenía una breve colección de roms y emuladores en descarga directa. En aquella época se acostumbraba que la gente tuviera una homepage, es decir una página personal. Se sacaba una cuenta con el proveedor que uno eligiera y éste te asignaba una dirección para tu página dentro de su dominio y una cantidad determinada de almacenamiento. No solía existir restricción acerca de los tipos de archivo que podías alojar, pero el espacio de almacenamiento solía ser muy escaso, rondaba de los 10[MB] hasta los 25[MB]. Las páginas, los enlaces y la distribución del árbol de archivos dentro de tu minidominio se hacían a mano, es decir, se confeccionaban las páginas con algún programa en nuestra propia computadora (Frontpage y Notepad eran los más populares) y se subían a internet usando algún cliente FTP.

Para poder compartir archivos más grandes, mucha gente recurría a sacar varias cuentas y vincularlas por medio de enlaces. En ellas almacenaban los archivos comprimidos y partidos con el WinZip, WinRAR o WinACE. Así podías recurrir a algún programa administrador de descargas (como GetRight o GoZilla) para bajar todos los enlaces y después unirlos en tu computadora. Sin embargo, en aquél entonces no solía existir la restricción de tráfico y existía la posibilidad de retomar las descargas si se interrumpía la conexión sin necesidad de pagar por una cuenta Premium ni nada por el estilo. Además, los contenidos solían tardar literalmente semanas en descargarse.

En aquél entonces la gran mayoría de los usuarios que compartía archivos lo hacía por la simple razón de atraer visitas a sus paginas o el placer de compartir. No era común el concepto de sacar provecho monetario de compartir archivos, ya que no existían los métodos adecuados de pago ni cobranza.

Con la popularización de los enlaces a internet de banda ancha, mucha gente comenzó a subir cantidades cada vez más notorias de información y de contenido multimedia. Aún era común compartir contenido por amor al arte, pero cuando llegaron los filehosters, todo eso cambió. El primer filehoster que conocí fue precisamente Megaupload (creo que a mi amigo MaxClowReed y yo nos tocó prácticamente verlo nacer) y era muy ventajoso. En sus inicios no tenia capchas, no tenía límite de tráfico y soportaba reanudación de descargas inconclusas aún sin cuenta premium. Su única limitante era el tamaño de los archivos que te permitía compartir (creo que eran 100[MB]). Esa fue una época muy prolífica, más aún porque la escuela nos daba un acceso a internet tan bueno, que me permitió ver la nada despreciable tasa de transferencia de 2750[kB/s] (equivalente a un enlace de 25[MB]).

Sin embargo todo eso se empezó a degradar con el tiempo. Surgieron las cuentas premium y los programas de recompensa a los uploaders. En sus primeros años de vida, Megaupload ofreció entre sus productos un disco duro externo de 80[GB] (en aquél entonces una verdadera fiera) lleno de pornografía. Así que, a otros con ese cuento de que los de Megaupload son inocentes y desconocen por completo el contenido de sus servidores. La verdad es que estaban bastante bien enterados del material que subían sus usuarios.

El programa de recompensa motivo a que mucha gente subiera grandes cantidades de archivos e hizo crecer la popularidad de los filehosters, ya que se trataban de un negocio redondo. Los filehosters por una parte recibían ingresos por la venta de cuentas premium y la publicidad, los uploaders recibían recompensas monetarias o puntos por la popularidad del contenido que aportaban y los usuarios tenían acceso fácil y prácticamente instantáneo a contenido que de otra forma era complicado de obtener.

Ese sistema fácil de obtener contenido se ha visto comprometido con los sucesos ocurridos en los últimos días (el cierre o la imposición de restricciones en muchos filehosters). Por una parte, gran cantidad de páginas y blogs se quedaron de la noche a la mañana sin contenido (en muchísimos casos, ni un solo contenido). Eso desanima y deprime a la gente, muchos administradores de sitio anunciaron de inmediato que abandonarían sus páginas y blogs, otros tantos decidieron tomarse un descanso mientras analizaban la situación y sólo una mínima parte a mostrado entereza y a continuado. Lo que si me da tristeza es que muchísima gente que abandonó sus páginas argumentó que lo hacía por la falta de la retribución monetaria que le representaba compartir archivos. Siendo esa la circunstancia, se ve complicado que las cosas vuelvan ser como solían hace apenas unas semanas.

A mi parecer se desvirtuó el hecho de compartir archivos, que se convirtió en una venta disfrazada de contenido. En ese caso, lo pagaban directamente los usuarios que compraban cuentas premium e indirectamente las empresas que se publicitaban con los filehosters. Viéndolo así, no resulta muy diferente a comprar discos en los mercados sobre ruedas.

Habrá que estar muy atentos a lo que venga en el futuro. Sin embargo tengo la certeza de que las cosas han cambiado y que muchos usuarios batallaremos no tanto para descargarnos música, juegos, programas y películas, sino para encontrar información. A mí me afecta de forma muy grave en mis investigaciones académicas y en mis proyectos personales. Muchos libros y documentación a la que no puedo acceder en mi país, pude obtenerla gracias a la masificación del intercambio de archivos. Además, jamás he descargado algo en perjurio de otra persona.

En otro tema aparte, pero que de cierta manera se vincula a lo anterior (porque afecta a internet) tenemos los "tratados internacionales" y "leyes de protección" que tratan de dar a los gobiernos las herramientas necesarias para colonizar internet. A muchos organismos públicos se les olvida que su razón de existir es buscar el bien común. Me pregunto si al intentar censurar, vigilar, ultrajar e invadir al internet y a sus usuarios están de verdad buscando el bien común.

miércoles, 18 de enero de 2012

Interfaz MapleBUS mejorada.

Las vacaciones de invierno están llegando a su fin y con suerte, estaré a punto de iniciar el último semestre de la ingeniería. El panorama se ve rudo, considerando que las asignaturas más demandantes, tanto en tiempo como en neuronas están apenas por venir.

Sin embargo, mientras eso pasa, hay que divertirse. Aprovechando el tiempo libre he trabajado en varias cosas que había dejado pendientes o inconclusas. Entre ellas está el adaptador de controles de PlayStation al puerto USB. Aunque reitero que los controles de PlayStation no son de mi completo agrado, decidí trabajar en la interfaz debido a que ya había dedicado mucho tiempo en ella, tanto en codificación como en investigación y pruebas; por lo que sería un desperdicio no concluirla. He dado por concluida la interfaz, aunque en mis pruebas los controles inalámbricos no respondieron. Sin embargo, tanto el control Nubytech de Street Fighter II como los controles DualShock y DualShock 2 originales funcionaron sin ningún inconveniente. No dispongo de controles genéricos para probar, sin embargo supongo que deben funcionar bien, ya que por lo que he leído, los controles originales son más caprichosos (y exigentes) con los tiempos que los genéricos.

También estuve tratando de arreglar los detalles de desconexiones y errores de lectura que estaba arrojando la interfaz con el MapleBUS al utilizar el ATTINY2313. Si bien, las lecturas aún no son completamente confiables (Hay errores al leer el primer bit cerca del 5% de las veces) la interfaz ya es suficientemente fiable como para experimentar un poco con ella. Además decidí atacar la interfaz con este microcontrolador, debido a que en este caso no se depende de los factores de calibración que afectan al ATTINY25, así sería más confiable replicar el circuito y mantener su funcionalidad.

Pues bien, uniendo la interfaz mejorada del MapleBUS con la interfaz mejorada de controles de PlayStation se obtiene un adaptador nada despreciable. Además, como sobraban muchos pines y espacio en memoria, decidí unir también la interfaz del control de SEGA Saturn y la interfaz del control de Super Nintendo. Así pues, surgió el que considero el mejor de mis proyectos hasta la fecha, el adaptador de controles de PlayStation, SEGA Saturn y Super Nintendo a Dreamcast.

Entre las características del adaptador se tienen:
  • Soporte para controles originales de PlayStation en modo digital o modo analógico.
  • Soporte para controles convencionales de SEGA Saturn (ningún otro tipo de control es soportado).
  • Soporte para controles convencionales de Super Nintendo (ningún otro tipo de control es soportado).
  • No sufre desconexiones y soporta reconexión automática después de un reset.
  • Soporta conexión Plug and Play.

El adaptador es visto por el Dreamcast como un control convencional, esto debido a que algunos juegos no funcionan (por ejemplo Tokyo Xtreme Racer 2) si el adaptador es dado de alta como un FightStick. Además, utilizando el control de PlayStation en modo analógico es posible jugar prácticamente a todos los juegos sin ningún inconveniente.

El adaptador tiene algunas carencias, como son:
  • No soporta dispositivos especiales, como pistolas de luz.
  • No soporta unidades de memoria (Visual Memory Units).
  • No soporta vibración.
  • No soporta controles inalámbricos de PlayStation (aún no sé el porque...).

Al emplear el adaptador se debe tener la precaución conectar SOLO UN CONTROL. No existe el riesgo de cortocircuitar los controles entre sí, pero si existe el riesgo de exigir mucha corriente a los pines del microcontrolador y que éste se pueda dañar.

En una de las características se menciona que el adaptador se puede reconectar después de un reset. Este es un detalle importante para todos los que utilicen respaldos para jugar, pues cuando el Dreamcast arranca un disco respaldo, aplica un soft reset que suele dar problemas en la sincronía del bus. Así, no es necesario reconectar el adaptador de forma manual cuando ocurre un soft reset, ya que el adaptador se reconecta de forma automática.

Para solventar la ausencia de soporte de unidades de memoria, se puede optar por conectar un control convencional de Dreamcast con su unidad de memoria en el segundo puerto de la consola. Si el juego en cuestión no soporta lectura de memorias desde otro control, se pueden intercalar el control convencional y el adaptador en los momentos de carga y guardado. Quizás eso sea molesto para muchos videojugadores, sobre todo de generaciones más recientes donde el guardado en los juegos ocurre en cada momento. Sin embargo en épocas un poco más arcaicas (década de 1990) se solía cargar sólo al empezar a jugar y se guardaba el avance al finalizar la sesión de juego. También hay muchos juegos que ni siquiera hacen uso de la memoria.

Pues, sin más preámbulo ni debraye, aquí está la liga donde pueden descargar el firmware, el diagrama y la configuración de fusibles del adaptador:
Adaptador de controles de PlayStation, SEGA Saturn y Super Nintendo a Dreamcast (MapleBUS)

La lista de compras para el adaptador es:
  1. Un microcontrolador ATTINY2313-20PU (encapsulado DIP).
  2. Un cristal de cuarzo de 16[MHz].
  3. Dos capacitores cerámicos de 33[pF](número 33).
  4. Un capacitor cerámico de 0.1[uF](número 104).
  5. Un capacitor electrolítico de 10[uF]de 6.3[V] o más.
  6. Tres resistencias de carbón de 1.5[kOhm] a 1/4 [W].
  7. Dos resistencias de carbón de 68[Ohm] a 1/4 [W].
  8. Una resistencia de carbón de 10[kOhm] a 1/4 [W].
  9. Base para circuito DIP de 20 pines.
  10. Placa fenólica.
  11. Alambres, terminales, chasis, conectores, etc.

Como se puede apreciar, la lista es corta y el adaptador resulta muy económico de ensamblar. Con respecto al microcontrolador, recomiendo el uso de la versión de 20[MHz] (ATTINY2313-20PU) debido a que se emplea una frecuencia de 16[MHz]. Sin embargo, en una ocasión confundí el microcontrolador y por equivocación conecté la versión de 10[MHz] y el adaptador funcionó, sin embargo la prueba duró poco y no fui capaz de verificar la durabilidad del adaptador con ese modelo. Así que si no pueden conseguir la versión de 20[MHz] pueden recurrir a la versión de 10[MHz] de manera temporal.

La advertencia de siempre, si deciden hacer este proyecto es bajo su propio riesgo. He probado exhaustivamente el adaptador y no me ha dado ningún problema, por lo que considero que cualquiera puede realizarlo sin inconvenientes.

¡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...