El ZX Spectrum puede sorprendernos más aún. Lo último que se ha sabido desde Speccy.org es la aparición de un programa muy especial, diseñado por Simon Owen, con el cual es posible emular la ROM del archiconocido “Pac-Man” de Namco/Midway desde un Spectrum, aunque esto es posible solamente en los modelos +2A y +3 de Sinclair Spectrum. No obstante, no hay que llamarlo un emulador como tal sino como un programa que simula a través de software el funcionamiento en hardware de la recreativa.
Na_th_an: "Solo se simula el hardware de display y hace una conversión de notas para tocar con el AY. El código ejecutable de la ROM se ejecuta tal cual en el Z80 del spectrum, sin emulación.
Básicamente usa el modo de mapeo “all ram” (páginas 0123) del +2A/+3, ya que la ROM de este juego está ensamblada para ejecutarse a partir de $0000 y escribe sus datos a partir de $4000, por lo que necesita una RAM no de pantalla (que son la 5 y la 7) mapeada en $4000. El hardware original empleaba I/O mapeada en memoria, por lo que para leer los controles o tocar música escribía en una zona concreta del mapa de memoria. Lo mismo para los gráficos, basados en un tilemap y con 8 sprites.
Lo que hace es dejar que se ejecute el programa libremente. Como el programa todo lo hace en el espacio de direcciones, cada interrupción se ejecuta su código, que se encarga de leer la memoria gráfica y dibujar los sprites por software (emulando en cierto modo el hardware original), leer el teclado y escribir los valores en las posiciones correctas de memoria donde los espera el programa principal, y traducir los valores de sonido que escribe la ROM original en notas de la AY.
Su programa se ejecuta siempre en la página 2, lo cual es ideal: mientras se está ejecutando el código de la ROM de Pacman, la configuración de ram es 0123. Al ejecutarse el ISR, se cambia al modo de paginación normal, que conserva RAM2 en el mismo sitio y tiene acceso directo a las dos páginas del display y a los 23Kb de gráficos pre-rotados necesarios. Hace todo lo que tiene que hacer, vuelve a paginar 0123 y devuelve el control a la ROM."
Para que esto funcione, deberíamos contar con la ROM del arcade, constituido por cuatro archivos de 4 KB cada uno:
pacman.6e
pacman.6f
pacman.6h
pacman.6j
Por supuesto, tenemos que ingeniárnosla para tener dicha ROM y descomprimir la carpeta dentro del directorio de la aplicación. Una vez hecho esto, solo tenemos que arrancar el fichero “make.bak” para obtener un .TAP con el programa ya listo para ser usado en un emulador de ZX Spectrum y seleccionado cualquiera de los dos modelos (solamente +2A y +3). No se nos permite emplear otra ROM que no tenga dichos archivos, la del propio “Pac-Man”, aunque también se puede lograr hacerlo con las ROM de algunos de sus clones como “Hangly Man” o “New Puck-X”, con solo renombrar los nombres de archivos que tengan las mismas extensiones .6x (por ejemplo, en el caso de “newpuckx.zip”, se cambiarían los nombres de los archivos “puckman” (solamente tres de los cuatro que posee) por “pacman”, sin cambiar sus extensiones). ¡¡¡Y funcionan!!!
Probarlo... no os arrepentiréis...
http://simonowen.com/spectrum/pacemuzx/

