ASPECTRUM: Another Spectrum Emulator

ASPECTRUM: Another Spectrum Emulator



Aspectrum es mi contribución al mundo del Spectrum y de Linux. Es un emulador de ZX Spectrum 48K y pretende convertirse en un emulador mucho más grande, con soporte para los demás modelos de Spectrum.


Aspectrum


Consideraciones:

Obviamente, visto lo visto, para el uso diario y para jugar con los juegos que habitualmente jugamos lo más recomendable es seguir con nuestro emulador actual mientras continúa el desarrollo de Aspectrum. Obviamente no todo son malas noticias: el hecho de que haya probado cerca de 510 juegos diferentes en Aspectrum y que de ellos, 497 funcionaran a la perfección lo demuestra. Con la ayuda de la comunidad de desarrolladores y de todos aquellos que quieran contribuir podemos hacer de ASpectrum un gran emulador.


Porqué otro emulador

La pregunta es: ¿Porqué otro emulador de Spectrum? Bien, Aspectrum no es un emulador como los demás: está hecho en puro C sin una sóla línea de ensamblador. Esto lo hace totalmente portable, es decir, es un emulador pensado PARA EL PRESENTE y PARA EL FUTURO.

Para el presente, porque Aspectrum puede ser compilado EN CUALQUIER plataforma existente que soporte su librería gráfica: Windows, Linux, Beos, consolas, etc, sin realizar modificaciones al código. Esto es importante porque hay plataformas que no tienen emulador de Spectrum (o al menos no tienen uno decente y GPL y que no cueste dinero), y mediante Aspectrum este problema puede ser subsanado. Bien es cierto que no todos las plataformas existentes, soportan SDL y Allegro (las librerías gráficas que utilizo), _pero_ dado que el código gráfico es apenas un 2% del código del emulador (y además, en C) sería ideal para portarlo a móviles, PDAs o incluso !neveras! reescribiendo tan sólo la parte gráfica (hay neveras que funcionan con MIDORI Linux). No creo que haga falta decir más: la prueba es que el mismo código lo he compilado en MSDOS, Windows y Linux sin problemas, y el rendimiento era excepcional en las 3 plataformas.

Para el futuro... Tomemos por ejemplo cualquiera de los demás emuladores actuales realizados en ensamblador (es decir, el 95% de los que hay por ahi, cuyo código es en gran parte ASM). Dentro de unos años la arquitectura Intel i386 desaparecerá y aparecerán nuevas arquitecturas de 64 y 128 bits. El juego de instrucciones no será el mismo y los emuladores no funcionarán (a menos que usemos emuladores de PC para correr los emuladores :). Los autores de los emuladores tendrán que reescribir todo el código para las nuevas plataformas, ya que no pueden simplemente recompilar.

ASpectrum, al estar hecho en C se podrá recompilar en el compilador de CUALQUIER máquina que exista y obtener una versión binaria que corra en dicha máquina. Con Aspectrum tendríamos un emulador de Spectrum para todos y para siempre, sin tocar el código.

Obviamente, trabajar en C puro tiene sus desventajas: donde normalmente bastaría un ordenador 486 para emular un Spectrum, con ASpectrum probablemente necesitaremos un Pentium 200 o superior. Comprendo que actualmente no todo el mundo tiene un P200, pero ya comienza a ser un ordenador minoritario. Para cuando el emulador se finalice, cualquiera podrá correrlo en su ordenador sin problemas, ya que el ordenador mínimo existente en el mercado será superior a los requerimientos de Aspectrum. Este pago por la portabilidad es un coste que asumí desde el mismo momento en que el emulador sería portable y reutilizable en el futuro en cualquier plataforma (y además, seguro que cualquier plataforma del futuro es mucho más rápida que un Pentium 200). Nada impedirá de todas formas que cuando se termine el emulador pueda ser parcheado para modificar trozos de él por ensamblador, y acelerarlo. Esto es así gracias a la licencia del emulador.

Aspectrum es un emulador GPL: puedes copiarlo, modificarlo, añadir nuevas funcionalidades, regalarlo a los amigos, todo lo que se te ocurra, sin tener que notificarselo al autor. En cualquier caso a nivel personal sí que me gustaría ser notificado de aquellos trabajos realizados con mi emulador, y que se me envíen parches realizados para otros proyectos que puedan ayudar a este. Es una cuestión simple: yo te doy el emulador y no pido nada a cambio, haz con él lo que quieras, eso sí, estoy seguro de que los verdaderos amantes del Spectrum contribuirán a él, porque mejorar Aspectrum es incentivar la memoria del Spectrum. Y... ¿habéis pensado qué sería de vosotros ahora mismo si no hubiera existido el Spectrum? En mi caso, tuvo mucho que ver... yo quería ser periodista y ahora soy programador y Administrador de Sistemas... :-) Le debo mucho al Spectrum, porque me encanta lo que hago ahora.


Descargas / Downloads


Modificaciones al código

POR FAVOR, antes de realizar modificación alguna al código poneos en contacto conmigo o con los demás desarrolladores para hablarlo: hay muchas cosas que hacer y algunas tienen prioridad. No serviría de nada que alguien trabajara 1 día entero en añadir el sonido del Spectrum bajo Allegro cuando todavía no está decidido si se usará Allegro o SDL como biblioteca de funciones, por ejemplo.

Las prioridades ahora mismo son:

Si quereis probar el emulador, podeis descargar software de la sección de Juegos (o enlaces) de mi web. Recuerda que sólo puedes cargar juegos de 48K (por ahora) y que debes ejecutar el emulador pasándole por línea de comandos el nombre del fichero tap a cargar. Una vez dentro del emulador tendrás que teclear LOAD "" (J seguido de ALT+P y ALT+P - enter) para cargar la cinta de forma instantánea. Por si acaso, dejo aquí alguno ficheros .SNA para una descarga más rápida:



Santiago Romero
Alvaro Alea




Subir al principio de esta página

Santiago Romero alias NoP
sromero©gmail·com
Ultima actualización : 11-03-2005