# ZSNES

ZSNES es un emulador de la consola Super Nintendo Entertainment System (SNES) para PC. Se lanzó y publicó en Internet en el año 1997 para los sistemas operativos DOS, Windows, Linux y FreeBSD. ZSNES está desarrollado usando lenguaje ensamblador Intel x86, por lo que no es compatible con otras arquitecturas como Macintosh o ARM. Sin embargo, a partir del 2001, cuando pasó a ser software libre, se han realizado diferentes trabajos para traducir las rutinas ensamblador a C y C++, de cara a hacerlo compatible con otras arquitecturas de sistemas. Era considerado como unos de los emuladores más funcionales y eficientes.

## Antecedentes y Desarrollo

El desarrollo del emulador inició el 3 de julio de 1997 y la primera versión fue lanzada el 14 de octubre de 1997, para DOS. Desde entonces, se han realizado ports oficiales para Windows y Linux. El emulador se convirtió en software libre bajo la licencia GPL, el 2 de abril de 2001. Desde entonces el apoyo al desarrollo del emulador aumento considerablemente, gracias a la aportación de diferentes colaboradores que, partiendo del código libre del programa, han ido depurándolo e implementando mejoras.
A partir del año 2008, el soporte y colaboración al emulador disminuyeron considerablemente, posiblemente por la existencia de otros emuladores que hacían el mismo trabajo de emulación y al abandono del proyecto por parte de sus creadores.

## Características

ZSNES ha sido, en varias formas, un pionero en las características de emulación de SNES. Muchas de las características introducidas primeramente en ZSNES fueron implementadas en otros emuladores. Las características que soporta son las siguientes:
* Fue el primer emulador en soportar alisamiento y anti-aliasing.
* Fue el primero en tener rebobinado.
* Tiene una mejor calidad de sonido que las consolas originales, debido a que se puede aumentar la frecuencia de sonido. Pero la emulación del hardware de sonido está incompleta y muchos juegos no se escuchan como la consola real.
* Se pueden hacer capturas de pantalla en cualquier momento de los juegos.
* Puede grabar el estado SNES en cualquier momento para posteriormente restaurarlo y continuar la emulación en el punto guardado.
* Puede grabar archivos de sonido bajo el formato SPC700, que puede ser reproducido por un reproductor externo o con un plug-in de Winamp. El formato de sonido SPC700 es más realista en ZSNES que en un SNES o Super Famicom.
* Tiene soporte de códigos de trucos de Game Genie o Pro Action Replay.
* Permite jugar a través de Internet/LAN vía TCP/IP con otras personas a los juegos multijugador.

## Requerimientos

Debido a que está escrito en lenguaje de ensamblado x86, ZSNES tiene una emulación rápida. Permite emular la mayoría de los juegos de SNES a 50-60 frames por segundo, dependiendo de la región del juego emulado, PAL o NTSC, con un sistema, por ejemplo, con un procesador Pentium II de 400MHz y 64 MB en RAM, con sonido estéreo e interpolación básica de gráficos. Otros requerimiento necesario es el uso de las librerías gráficas de DirectX a partir de la versión 8.0. Al estar programado en x86, el emulador no funciona en sistemas de otras arquitecturas como RISC o ARM.

## Licencia

Originalmente, ZSNES fue de código cerrado. En el año 2001 el proyecto pasó a ser software libre y fue desarrollado en un sitio de SourceForge. Está licenciado bajo la licencia GNU GPL. Desde 2001, programadores externos han hecho un gran número de contribuciones. ZSNES aun sigue en desarrollo activo, aunque la frecuencia de los lanzamientos ha caído drásticamente debido a que su creador dejó el equipo.
ZSNES fue el primer emulador de Super Nintendo en emular completamente los juegos con chips Super FX (Star Fox, Stunt Race FX, Yoshi's Island), DSP-1 y C4. Incluso es capaz de realizar descompresión S-DD1 (Star Ocean) en tiempo real. Ahora tiene soporte ST010 básico. A la fecha marzo de 2019, ZSNES es considerado uno de los emuladores que tiene el más amplio soporte de hardware especial de SNES y es uno de los emuladores más fieles a la máquina real que existen.

## Problemas de seguridad

A mediados del año 2015 se reportan inusuales fallas y comportamientos extraños en el uso del emulador en varios foros de la Internet, debido al descubrimiento de un fallo de seguridad en el uso del emulador. La falla sucede al ejecutar algún Rom en específico que permite abrir una serie de comandos, una serie de Exploit, la cual realiza la ejecución en tiempo real y fuera de la interfaz del emulador algún tipo de código malicioso e infectar al equipo. Debido a esa problema, se ha dado la sugerencia de utilizar otro emulador, aunque existen rumores de que una nueva versión (1.52) pueda publicarse a futuro y solucionar el mencionado problema. El largo tiempo de espera (la última versión publicada en el año 2007) y el escaso o nulo apoyo actual por parte de los desarrolladores hace que el panorama sea desalentador. Otras medidas ante el problema de seguridad es evitar la descarga y el uso de Roms de fuentes no confiables, sobre todo aquellos que especifiquen únicamente el uso de este emulador y evitar incluso el uso de Roms modificados o parcheados por terceros.