articulos

Desenterrando el primer emulador de Spectrum


El 3 de mayo de 2014, un tipo genial que se llama Antonio Ortiz Carrasco leyó cierto post escrito por alguien tan osado como ignorante -yo mismo, por cierto-. Os lo transcribo:

«La emulación spectrumera ya va teniendo historia. En WOS se cita NUTRIA, de principios de 1991, y una versión de Spectrum.exe de 1998, realizada por el genial Pedro Gimeno. Su programa fue incluído en la revista PCmanía nº1 (1992), pero la primera versión es de 1989 (no la he podido encontrar, pero os dejo un enlace personal del «artista» muy interesante). Probablemente esa versión del 89 sería el primer emulador de Spectrum. A ver quién tiene cojones de encontrarlo…»

Pc manía Año1 nº1 (ver p-42): https://archive.org/details/Pcmania01
Entrevista a Pedro Gimeno: http://magazinezx.speccy.org/07/input.html
Página personal con material del autor: http://www.formauri.es/personal/pgimeno/spec/spec.html

Este post resume torpemente alguna información que encontré aquí y allá sobre los primeros emuladores Spectrum para PC que existieron. Sólo un ignorante se hace preguntas tontas. ¿A quién se le ocurre si no, plantearse cuándo comenzó la emulación en PC?. Si no se conoce bien la historia, será por que no se puede saber, ¿no?. Pues claro, yo mismo, jejeje.

Emular no es un asunto trivial. Lo puedo apreciar como aficionado, pero entre los especialistas se trata de un verdadero reto que tiene su historia dentro de la informática. En este enlace podréis encontrar jugosa información al respecto. :http://kaluszka.com/vt/emulation/history.html

Poco a poco, durante un delicioso diálogo con varios de estos personajes que pueblan el mundo spectrumero actual, se fue acotando la búsqueda. Efectivamente, existieron emuladores para Amiga previos a los de PC, pero todos los indicios apuntaban cada vez con más fuerza al emulador de Pedro Gimeno, cuya primera versión apareció en 1989, como verdadero pionero. Por desgracia esa primerísima joya de la programación se había perdido. Algunas versiones posteriores de este emulador circulan por la red como curiosidades viejunas, pero ya rodeadas de otros programas similares. Además, para nosotros, este programa tiene un valor añadido. El primer emulador es made in Spain.

Un verdadero arqueólogo sólo busca el oro, y no se conforma con chasca. Antonio Ortiz se comportó como un Indiana Jones; estaba desatado. ¿Cuántas cosas ocurren en el mundo a la voz de “a ver quien tiene cojones de…”?.
Tenemos información sobre Pedro Gimeno en el Blog de Antonio Ortiz

http://antoniortizcarrasco.blogspot.com.es/2012/11/pequeno-tributo-pedro-gimeno.html

Mi comentario de los días siguientes, en respuesta a los amigos que se comenzaron la búsqueda, fue:
“Pues, por lo que me va diciendo la gente, el más antiguo accesible es el NUTRIA. El de Pedro Gimeno del 89 está como la vergüenza del Urgangarín: perdido para siempre 🙁 “

Y se obró la magia. Fijaos qué maravilla de entrada en el Blog de Antonio, el 16 de Mayo de 2014:

http://antoniortizcarrasco.blogspot.com.es/2014/05/spectrum-099a-un-emulador-para-la.html?m=1

Para curiosos y amantes de la arqueología spectrumera, os dejo el enlace de descarga de la primera versión del emulador de Pedro Gimeno, rescatada y preservada por Antonio.

https://www.mediafire.com/?g0l33581kg2773u

Este SPAN099A permanecía sepultado por sus desarrollos posteriores. Como nos comenta Antonio, funciona regular en PC actuales bajo DOSBOX, pero se hace uno muy bien a la idea de la onda.

Desde el punto de vista histórico es ni más ni menos que el primer emulador PC para Spectrum y Don Pedro Gimeno, es el pionero que se planteó semejante proyecto: emular una máquina inferior en PC, con un procesador a otra velocidad, haciendo funcionar su ROM y demás. Evidentemente una proeza que nadie había conseguido antes. No se trata de sacar en procesión a nadie, pero sí de reconocer un gran trabajo de programación y creatividad.

La magia de internet permite hacer algo muy curioso. Os muestro la imagen del hallazgo. Al inicio del artículo está la pantalla completa.

El enlace donde encontró Antonio Ortiz el la primera versión del programa:

ftp://ftp.worldofspectrum.org/pub/sinclair/emulators/pc/dos

Para conocer un poco mejor este emulador os dejo el enlace original donde se encontraba sepultado en WOS

Versión A. ftp://ftp.worldofspectrum.org/pub/sinclair/emulators/pc/dos/span099a.zip

La versión f es totalmente operativa.
ftp://ftp.worldofspectrum.org/pub/sinclair/emulators/pc/dos/spec099f.zip

Para poder ejecutarlo, bajé el emulador de PC viejuno DOSBox http://sourceforge.net/projects/dosbox/files/dosbox/0.74/DOSBox0.74-win32-installer.exe/download

Este emulador fue distribuído (versión f, operativa, muy posterior a la primera en el primer número de la revista Pcmanía).


Presentación del emulador de Pedro Gimeno en la Pcmanía número 1 (Noviembre de 1992).

Ahora mi torpeza entra en juego.

Soy un negado en asuntos informáticos, por lo que en el fragor de mi pelea tras descomprimir el span099a, encontré un texto de Pedro Gimeno en el que relata cómo desarrolló la idea. Os dejo la introducción. Luego son detalles técnicos a los que seguro otros podrán sacar más punta…

Si queréis leerlo completo, sólo hay que descomprimir el span099a.zip . Aparece un archivo SPECTRUM.DOC. Tiene mucha información curiosa, pero os dejo la introducción, escrita por el propio Pedro Gimeno:

«Soy un «vicioso» del Spectrum. Tengo uno de 48K, de teclado de goma, y esa este al que debo larguísimas horas de entretenimiento.Cuando adquirí el PC me plante‚ cómo mejorar el Spectrum dándole las prestaciones del PC (disco duro, teclado bueno, monitor claro, impresora rápida, etc.), pero no di con ninguna solución. Por otra parte, me atraía la pregunta de cuánto más podría ser el PC de rápido con respecto al Spectrum. Al fin, en primavera del 89 se me ocurrió la idea de un simulador. Había visto algún C64 con emulador de Spectrum, pero sólo a nivel BASIC. Pensé‚ que no me era suficiente, pues no funcionarían ni el cinco por ciento de los programas. Tenía, además, que simularlo a nivel de código máquina del Z-80.

Empecé con un simulador de Z-80 en Pascal, pero la velocidad dependía detantos factores que al fin me decidí a reescribirlo en ensamblador. Hice dosversiones, a cual más enrevesada. Al fin, me decidí por hacerlo «en plan salvaje»: una rutina por cada instrucción, y todas en una tabla. Esto fue en verano del 89.

La primera versión de algo que tenía posibilidades de funcionar la tuve apunto en una semana. Pero me faltaba algo: la ROM del Spectrum. Quería que fuera una copia exacta de la existente en el ordenador, pero además echaba de menos el listado fuente. Al fin, me enteré‚ de que un amigo tenía el libro «TheComplete Spectrum ROM Disassembly», de Melbourne House, y se lo pedí.

Dos semanas más me costó teclear todo el librito. Disponía de un ensamblador cruzado de Z-80; lo ensamblé, lo comparé‚ con el original, lo corregí, lo volví a ensamblar y lo probé‚ con el emulador.

¡Sorpresa la mía! La primera versión hacía algo a la primera. No acababa de funcionar bien pero afortunadamente eran fallos leves. En poco tiempo estuvo a punto uno que me permitía ya teclear listados BASIC y demás.

El problema surgió a continuación: ¿Cómo cargar de cassette? Suponía que dada la variación de velocidad entre PC's (8088, 8086, 80286, etc.) sería imposible siquiera plantearse que el emulador funcionara «de por sí» con cassette. Y además, ¿por dónde meterlo?

Un amigo mío, que disponía de un osciloscopio, me ayudó a medir la frecuencia exacta y la tensión de mi reproductor de cassette. Resultó ser de unos cinco voltios a volumen máximo, lo que sugirió que usásemos el puerto paralelo, que reconocía esa misma señal. Puse a punto una rutina de carga compatible con las velocidades del Spectrum y modifiqué el emulador de manera que al llegar a la rutina de carga de la ROM entrase en la mía. Funcionó a la primera. Me fui corriendo en pos de mi copia del «Manic Miner» y lo cargué.

Desde aquella época, el emulador ha sufrido bastantes modificaciones, todas ellas para mejor. Y, actualmente, es lo que es. Se me propuso que lo vendiera, con una apetitosa oferta. Al final, decidí lanzarlo al dominio público.

Tengo en mente algunas mejoras adicionales, relativas algunas a la velocidad, otras al joystick y otras a una versión para 386 exclusivamente, que sacaría partido del mismo. Tal vez en una futura versión del emulador queden incorporadas.

** ADVERTENCIA **

Circula una versión inválida e indocumentada del emulador, debida a una filtración por parte de alguien a quien creía mi amigo. Esa versión aun tiene por corregir un problema que el emulador manifestaba al salir al sistema, y que sobreescribe en la zona del D.O.S. pudiendo causar catástrofes imprevistas. Es aconsejable que deje de utilizarse por completo, en previsión de accidentes. Además, los ficheros que reconocía no son compatibles con el nuevo formato que utilizo, más avanzado.»

Hay más cosas interesantes en ese archivo, pero leer estas cosas es simplemente una gozada. Los informáticos disfrutarán sin duda este programa a otros niveles. El mismo Antonio Ortiz publicó algo al respecto en El Mundo del Spectrum pero es un tipo modesto, y no dejó más detalles 😉

http://www.elmundodelspectrum.com/contenido.php?id=1060&d=Aquellos-clasicos-emuladores-de-Spectrum

Así que, amigos, la próxima vez que se os ocurra decir “a ver quién tiene huevos de —” cuidado, por que hay cada monstruo por ahí que os dejará helados. Puedo imaginar a algún colega de Pedro Gimeno, o a él mismo, planteando si había cojones de emular a su querido Spectrum en un PC.

Tenemos el resultado de esta labor arqueológica expuesto en este video de Youtube, cortesía de Antonio Ortiz:


Para concluir, un pequeño apunte cuya carga de polémica es proporcional a la mala uva de cada cual, pero que creo pertinente teniendo en cuenta lo que se va leyendo en los mentideros (así me gusta llamar a Facebook, el “moderno mentidero”). El rescate de este programa ha sido fruto de un diálogo estupendo entre especialistas, aficionados y los tipos como yo, que no sabemos nada de nada. Entre caballeros cualquier intercambio de ideas es siempre productivo. Lo demás sobra, en mi humilde opinión. Quede dicho, para “oídos inquietos”. Buenas gentes: a preguntar, a dialogar, a discutir, por que como mínimo aprenderemos.

Saludos Spectrumeros de Manu Sevilla.

Firma: Manu Sevilla

Hotel matarraña
Tu hotel para eventos en el matarraña
Posicionamiento Zaragoza
Posicionamiento SEO Zaragoza
Flores Zaragoza
Compra flores baratas Zaragoza

El Mundo del Spectrum

El Mundo del Spectrum es un medio digital dedicado al Sinclair ZX Spectrum, a los 80 y al Retro en general. Nació como homenaje a Microhobby en 1996 en formato revista mensual evolucionando hasta esta cuarta época. Como medio audiovisual se publica regularmente el Podcast llamado El Mundo del Spectrum Podcast y material en vídeo en el canal de Youtube. Publicados dos libros de gran éxito editorial. Si te gusta el Retro y el Spectrum en particular, esta es tu web. Bienvenido/a.

Publicaciones relacionadas

15 comentarios

  1. Siempre había tenido la duda de si hubo alguno anterior al emulador de Pedro. Al leer el artículo he acudido a un lugar que es como una máquina del tiempo, porque era el lugar de visita obligada antes y, aunque no se actualiza hace muchos años, sigue manteniendo las cosas tal cual quedaron. Me refiero al FTP de http://ftp.nvg.unit.no.

    Mi duda era si el JPP de Arnt Guldbransen era anterior al de Pedro, pero resulta que no. En la documentación que va con el JPP menciona "otros emuladores" y habla del VGASPEC de Alfonso Olloqui, que debía ser el ex-amigo de Pedro que le robó el emulador y lo publicó con su nombre.

    Por cierto, que no sabía que el fuente del JPP estaba disponible y eso es interesante porque es un emulador curioso en el sentido de que intenta funcionar un poco como un JIT, convirtiendo código Z80 en código 8086. No sé de otro emulador que funcione así (al menos entre los emuladores de PC que son los que yo conozco).

    El problema del emulador de Pedro es que es difícil de hacer funcionar en DOSBOX y similares debido a un truco de programación, bastante inteligente, pero que depende de una característica de la VGA que no se emula, seguramente porque nadie más la gastó….

  2. Zx81: aquí tenemos a otro de estos tipos del mundillo que me dejan helado. ¿Cómo demonios puedes saber quién es el 'amigo' que robó el programa a Pedro Gimeno?. 🙂 🙂 Evidentemente esto le dolió. El texto escrito por Pedro tiene su miga, pero tenía mucha curiosidad por conocer esa intra-historia que sugiere. Zx81, ¿podrías contar algo más sobre esto…?. Plisss. Tampoco entiendo en qué consiste ese daño que podía hacer al ordenador ese programa robado cuando se cerraba. Muchas gracias por el aporte zx81 🙂

  3. El nombre de Alberto Olloqui lo he sacado del documento de instrucciones del JPP. Me resultaría bastante fácil saber el nombre del caradura, porque mantengo contacto con Pedro Gimeno, pero me limité a leer ese archivo. Si resulta que solo es un error de interpretación que tuvo Arnt en su día, ya no lo sé.

    La historia, por lo que puedo recordar de boca del propio Pedro, era que le pasó a un amigo suyo una beta para que la probara y éste, en una acción tan española como los toros o el vino, aprovechó para distribuirla ilegalmente. No tengo noticia de ningún programa que pueda hacer daño al ordenador, salvo que formatee el disco y pierdas hasta las pestañas.

    La lástima es que, en su día, Pedro empezó a modificar el emulador y hasta me pasó los fuentes para que le echara una mano. Pero el disco donde los tenía cascó y nunca más se los he vuelto a pedir (y tampoco los hubiera distribuido sin su permiso). Ni siquiera sé si aún los tiene guardados, porque la última vez que hablé con él no tenía el más mínimo interés en el mundillo de la emulación.

    En cualquier caso, si alguien quiere preguntar algo al propio Pedro, solo tiene que enviarle un correo a su dirección de formauri. Doy fe de que contesta… 😉

  4. El empleo del modo de texto para volcar gráficos no era una novedad, eh, en aquella época era algo utilizado. Si no recuerdo mal lo que hacia el emulador de pedro jimeno era usar modo texto, que es muy rápido, y generar los caracteres a partir de la pantalla del spectrum. Como el spectrum tiene color por caracter le valía con esta simplificación

  5. Para ZX81:

    Es muy claro que lo de Alberto Olloquí fue en su día una confusión de traducción entre los angloparlantes, el VGASPEC no ponía autoría por ningún lado y como estaba en la BBS de Olloquí le pasaron el muerto a él.

    Gerton Lunter también cometió la misma equivocación en la documentación del Z80 cuando habla del VGASPEC, esta previa del emulador de Pedro Gimeno.

  6. Por cierto, el VGASPEC se encuentra en el mismo FTP de WOS donde encontré el Spectrum 9.99a de Pedro Gimeno.

    En el DOSBOX supongo que será más seguro de utilizar que en un PC real 386-486 con MS DOS real. Lo más probable es que tenga las mismas incompatibilidades con DOSBOX y Windows que las primeras versiones legales de Pedro.

  7. Muy interesante. Recuerdo haber probado el emulador exactamente desde esos floppy de la PC Manía y haber quedado encantado de ver al Spectrum funcionar en un monitor profesional. El texto de introducción de Pedro casi me lo sé de memoria de la cantidad de veces que lo leí.
    Fue realmente una experiencia inolvidable.

  8. PEDRO GIMENO se ha puesto en contacto con ems, de la mano de jmv, confirmando en lo posible el hecho de que su emulador pudo ser el primero. Os transcribo sus palabras:
    'Me parece que mi emulador fue el primer emulador de Spectrum. Desafortunadamente, no tenía contacto con BBSs por aquella época, con lo que no tenía canales de distribución y sólo lo compartí con los amigos; como tal, no estaba preparado para ser distribuido a un público más amplio.

    Tengo muchas versiones con sus fuentes correspondientes, incluyendo el SPECTRUM de 1989, el CGASPEC, EGASPEC, VGASPEC y HSPECT (el último para la tarjeta monocroma Hercules Graphics Card). Wilco y su primo tuvieron bastante influencia en que creara el CGASPEC y HSPECT.

    El de Peter McGavin (para Amiga) fue anterior al 0.99a, pero posterior al EGASPEC/VGASPEC/HSPECT.
    https://wos.meulie.net/pub/sinclair/emulators/amiga/spectrum-1.7.lha contiene la historia en la documentación.

    Si el Nutria fue publicado en 1991, también fue sin duda posterior al EGASPEC etc.

    Curiosamente, ningún "retroarqueólogo" excepto Pera Putnik me ha preguntado a mí directamente. Los archivos están disponibles para quien los pida, con sus fechas originales. No se han perdido. Hasta ahora sólo se los he enviado a Pera, quien me preguntó por la historia del emulador en 2005 y me envió el famoso VGASPEC que iba marcado con el nombre de Alberto Olloqui.'
    Muchas gracias a Pedro Gimeno por su apunte.

  9. Excelente. Tengo memoria de haber visto algo como el HSPECT, no recuerdo si venía en el paquete de PCM, pero al menos supe trastear con un emulador funcionando bajo una emulación Hercules de CGA (y ahora me entraron ganas de emular DOS para emular CGA para emular Hercules para emular Spectrum).

    Con respecto a qué fue primero, el hecho que Pedro tenga los fuentes le da mucho peso a su caso. Podríamos discutir tecnicismos, como el hecho que Nutria fue el primero en ser distribuído, pero como dice Pedro, la impresión es que muy poca gente se interesó realmente en investigar a fondo y se limitaron a mirar una listita.

Deja un comentario

Botón volver arriba
Cerrar