Visitando el sitio de Pete Bernert –Brillante coder de plugins para emuladores de psx– al ver sus «Fairy Tales» vinieron a mí memorias de una época dorada, nostálgico quizas, recordé, al menos, lo fue para mí, los «Años Maravillosos» de la emulación de consolas en la PC; por allí por finales de los 1990s e inicios de los 2000s. Aquellos tiempos que, ya sea por nostalgia, por falta de oportunidades, o por retarse a uno mismo se pasaba horas esperando para que, a través de nuestro modem de 33.3 K conectado por puerto COM1, terminara de bajar el bendito ROM de super nintendo de 6 MiB/48mbit (no te olvido Tales of Phantasia), y luego, justificarlo en fin de mes al venir la carísima factura de teléfono.
Gracias a las extraterrenales habilidades de ingeniosos hackers, muchos pudimos conocer, terminar y disfrutar varios títulos que nunca pudimos jugar en la consola original, ya sea por que nunca encontramos quien nos los «traficaran», o no los encontramos en la tienda por inventario agotado, o simplemente a las «brillantes» gerencias de –inserte aquí su compañía favorita de videojuegos– no se les antojaba traerlos a América. En fin, muchas pueden ser las causas, y la solución mas sencilla, irse a buscar el ROM, de ser necesario ver si había algún parche para traducirlo, y a jugar.
Pero muchas veces no era solo así, qué aburrido hubiera sido para muchos de nosotros sólo colocar el ROM, darle «play» y jugar. Habíamos muchos, que teníamos máquinas ultra limitadas y con bajo poder de procesamiento respecto a la tecnología de la época, en donde, con las configuraciones default; o no corría bien el juego, o simplemente no corría. Había que tener el tiempo y las ganas para poder «jugar» con las configuraciones y/o parámetros del emulador en cuestión para que, con nuestros modestos equipos al menos funcionaran los ROMs que deseábamos jugar, qué mejor si eran de SNES…
Sí el SNES, esa maquinita gris con tan buenos juegos de la era de 16 bits, y para 1999 ya casi obsoleta en el mercado, pero muy bien emulada gracias al esfuerzo de los hackers anteriormente mencionados, que la tenían como de sus favoritas. Aunque ya no viví la era de los emuladores mas primitivos como ESNES o NLKE, tuve que probar varios otros derivados y/o más mosdernos para ver cual se adecuaba al bajo poder de procesamiento y escasa memoria de ordenador que poseía en esa época (12mb de RAM WTF!). Las más factibles soluciones eran SNEMUL, Snes9x o ZSNES, el cual SNEMUL tenía una bonita GUI, pero los juegos corrían lento y era algo incompatible. Snes9x era bueno, y con excelente compatibilidad, aunque también era demasiado lento para mi vieja máquina, tambien por alguna extraña razón no me permitia usar el modo VESA de mi tarjeta gráfica XGA2, además que por la escasa memoria que tenía no me permitía cargar ROMs mayores a 2 MiB/16mbit.
ZSNES, era la salvación, el más rápido para los roms (gracias a que estaba hecho en una «cosa rara» para mí en ese tiempo llamada «Assembler»), consumía poca memoria y además funcionaba de maravilla el modo VESA, con lo que ya tenía mis 15 bit de color y transparencia en mis jueguitos. Aunque tuve problemas de emulación por no contar con tarjeta de audio en la vieja PC, había un excelente chapuz para emular la salida de audio. El emulador mejoró, se portó para múltiples plataformas como BSD, Linux y Windows, le agregaron bonitos efectos gráficos de post procesados, etc. Por todo esto, es y será el emulador que siempre instale por defecto en cualquier máquina basada en intel x86, aunque ya no haya un Release oficial desde hace años –que no creo que necesiten pues la compatibilidad es casi perfecta.
Pasaron los años, actualmente el ZSNES sigue en el eterno desarrollo por hacerlo más portable a otras arquitecturas no x86, y gracias a la portabilidad inicial de SNES9x, éste otro sí fue portado a diferentes plataformas, que van desde x86-64 nativo hasta arquitecturas PowerPC como PS3 o el Wii, MIPS como el PSP o ARM como los «ifonos» y «droides».
Cabe mencionar que nomás liberaron el código fuente de ZSNES y lo descargué para curiosear «las tripas» de dicho emulador, me pareció (y me sigue pareciendo) bastante complejo, eran cientos de archivos escritos en assembler, unos otros escritos en c, makefiles hechos a mano, etc. Y gracias a revisar esas «tripas» estudié cómo interactuaba ese monton de archivos de assembler, sus macros y llamadas a funciones de C, aprendí qué era un Makefile, cómo compilar con éstos en entornos windows usando DJGPP (que era el compilador de c que recomenadaban para ese port) y NASM, y mínimas modificaciones a los «strings» en los archivos .asm para hacer una version semi traducida que nunca fue publicada. Aunque ahora casi solo uso Snes9x en mis gadgets para jugar… mucho de lo que aprendí en mi «juventud» se lo debo a ZsKnight y su fantásticamente caóticos asm de zsnes.