ZSNES es un emulador de Super Nintendo Entertainment System de software libre escrito principalmente en ensamblaje x86 con puertos oficiales para Linux , DOS , Windows y puertos no oficiales para Xbox y macOS .
El desarrollo de ZSNES comenzó 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 puertos oficiales para Windows y Linux. El emulador se convirtió en software libre bajo la licencia GPL-2.0 o posterior el 2 de abril de 2001. A pesar de un anuncio de adventure_of_link en 2009 que afirmaba que "ZSNES NO está muerto, todavía está en desarrollo", realizado en la placa ZSNES después de la salida de sus desarrolladores originales zsKnight y _Demo_ , [1] el desarrollo se ha ralentizado drásticamente desde su última versión (1.51 lanzada el 24 de enero de 2007). Gran parte de los esfuerzos de desarrollo se concentraron en aumentar la portabilidad del emulador, reescribiendo el código ensamblador en C y C++, [2] incluyendo una nueva interfaz gráfica de usuario que utiliza Qt . [3]
ZSNES es notable por ser una de las primeras consolas que pudo emular varios de los chips de mejora de SNES en algún nivel. [4] Hasta la versión 1.50, ZSNES ofrecía juego en red a través de TCP/IP o UDP . [5]
Una de las primeras características de ZSNES que despertó interés fueron las "películas ZMV"[1]. Esta característica permitía a los jugadores grabar las entradas de sus sesiones de juego y luego exportarlas a un archivo ZMV, de modo que otro usuario con una copia de ZSNES, un archivo ROM correspondiente y el archivo ZMV pudiera "ver" la partida de la otra persona. Esto precedió por mucho tiempo a la disponibilidad masiva de videos de partidas en línea, siendo una forma temprana de compartir este tipo de contenido.
Debido a que ZSNES está escrito en gran parte en lenguaje ensamblador de bajo nivel para procesadores x86 , la idea de portar ZSNES a dispositivos que utilicen arquitecturas RISC como ARM es altamente inviable. Las consolas de juegos comerciales no solían utilizar procesadores x86 (siendo la Xbox original la excepción más conocida) antes de la octava generación , con los lanzamientos de 2013 de Xbox One y PlayStation 4. [ 6]
El primer lanzamiento público de ZSNES fue la versión 0.150, el 14 de octubre de 1997. Incorporaba todo el conjunto de instrucciones 65816 del microprocesador WDC 65C816 modificado de SNES , así como compatibilidad con SRAM e implementación parcial del Modo 7. También ofrecía la posibilidad de guardar estados en un archivo .ZST como característica adicional. Esta versión inicial carecía de ciertas funciones DSP. [7]
La versión 0.600 del 9 de septiembre de 1998 fue la primera en incluir al desarrollador Pharos (como asistente de codificación) y fue un lanzamiento histórico debido a la implementación de un nuevo motor gráfico de 16 bits, además de incluir una GUI completamente nueva con más funciones disponibles que antes. [8] Poco después, la versión 0.700 del 27 de octubre de 1998 fue la primera en compilarse con código C. [9]
A partir de la versión 0.900c/a del 4 de julio de 1999 se añadió una característica importante para la época, que era el soporte nativo de compresión ZIP , lo que permitía a los usuarios ahorrar espacio en los entonces costosos discos duros. Además, se intensificó el trabajo para mejorar el soporte del chip SA-1 . [10]
La versión 1.000 del 1 de septiembre de 2000 marca el primer lanzamiento oficial de ZSNES para Windows [11] y las siguientes versiones del emulador se centraron en mejorar la calidad de este port. El 2 de abril de 2001 se publicó el código fuente del software y se unió al equipo el codificador Teuf [12] .
La versión 1.30b del 16 de junio de 2001 puede considerarse un hito en la emulación de Super Nintendo, ya que agregó soporte inicial para Star Ocean y su chip de compresión S-DD1 . [13] Este título empujó los límites del hardware del sistema, contando con clips de voz y gráficos mejorados, y fue complicado incluso ejecutarlo en un emulador.
Después de la partida de zsKnight por razones personales en julio de 2001, el proyecto realizó un lanzamiento en homenaje a él y su familia, la versión 1.337, del 30 de septiembre de 2001. [14] El emulador continuó actualizándose hasta que los lanzamientos se detuvieron en julio de 2002, y pasarían más de dos años hasta un nuevo lanzamiento público.
Cuando finalmente se lanzó la versión 1.40 el 25 de diciembre de 2004, marcó un punto de inflexión para el proyecto, con nuevos colaboradores y revisiones significativas de los sistemas antiguos del emulador. Los desarrolladores Nach y Pagefault se centraron especialmente en eliminar varios de los infames hacks que formaban parte de la base de código de ZSNES, implementando el código adecuado del que dependían los juegos complicados. Al mismo tiempo, se llevó a cabo un trabajo extenso para brindar un mejor soporte a los chips especiales. [15]
La versión v1.50 del 22 de diciembre de 2006 fue otra revisión importante que, según los desarrolladores: "ZSNES es un programa con más de 200.000 líneas de código fuente, y en esta versión, más del 25% de eso ha sido modificado; también, alrededor del 15% del ensamblaje ha sido portado a C". [16] Esta fue la versión principal final del emulador, seguida por la versión menor 1.51, y finalizando a partir de entonces.
En general, ZSNES fue bien considerado en su apogeo; en 2005, la revista de juegos británica Retro Gamer calificó al emulador de "muy impresionante" y elogió el "increíble modo tostadora". [17]
Sin embargo, con el desarrollo más reciente de emuladores de SNES más precisos, como Snes9x e higan , a medida que las computadoras se han vuelto gradualmente más poderosas, las revisiones retrospectivas han criticado a ZSNES no solo por su precisión relativamente baja, sino también porque su antigua popularidad ha llevado a que se diseñen varias traducciones y modificaciones hechas por fanáticos con soluciones específicas para las imprecisiones del emulador, lo que a menudo las hace injugables tanto en hardware real como en los emuladores más nuevos que han reemplazado a ZSNES. Algunos de estos otros emuladores incluso incluyen un modo que está diseñado explícitamente para replicar las peculiaridades de ZSNES, lo que permite que los mods enfocados en ZSNES vuelvan a ser jugables. [18]
En 2015, se descubrió en la versión 1.51 un exploit que permitía que una ROM SNES especialmente diseñada obtuviera el control del sistema anfitrión y, por lo tanto, pudiera ejecutar código malicioso; poco después se lanzó una versión preliminar parcialmente corregida. [19]
Cambios: v1.50 - 22 de diciembre de 2006: Se eliminaron los códigos de Netplay, módem e IPX... Por mucho que nos disgustara, tuvimos que eliminar todas las opciones de juego de computadora a computadora para arreglar los otros subsistemas, ya que el código se había difundido por ZSNES. Esperamos volver a implementarlo en futuras versiones y también brindar nuevas funciones.
{{cite web}}
: CS1 maint: nombres numéricos: lista de autores ( enlace )