domingo, 24 de febrero de 2019

Retro Virtual Machine: el viaje para hacer el emulador definitivo de Spectrum y Amstrad

Retro Virtual Machine: el viaje para hacer el emulador definitivo de Spectrum y Amstrad

De la época sobre la que voy a hablaros sólo recuerdos momentos especiales. Entre mediados y finales de los ochenta, éramos muy pocos quienes teníamos ordenador. Los que en aquellos años íbamos al colegio teníamos perfectamente identificados el resto, los que eran “como nosotros”. Hablábamos de videojuegos y de aquellas máquinas increíbles que parecían capaces de todo en cada recreo, mientras los demás apenas sabían aún que existía la informática. Nos emocionábamos con cada novedad, y la única forma de estar al día era a través de legendarias revistas como Microhobby, MicroManía o Amstrad User - mitificadas hoy en el mundo de la historia y la cultura informática.

Prácticamente, era como descubrir un planeta nuevo a cada momento. Todos recordaremos aquellos momentos como una parte mágica de nuestra infancia, con tardes absolutamente antológicas delante de los hoy vetustos monitores CRT - dirigiendo naves espaciales pixeladas que parecían mucho más impresionantes en nuestra imaginación, salvando vidas, escapando de planetas de monstruos robots o descifrando el enigma de la Abadía del Crimen. Aquello a muchos nos cambió en cierta forma la vida, y nos marcó para los años siguientes. Nos enseñó a amar la tecnología y sus sensaciones y nos ha traído a mí delante de este teclado, y a vosotros posiblemente detrás de esa pantalla.

Para muchos de nosotros, aquellas primeras máquinas de 8-bits fueron el comienzo de la pasión por la tecnología - que por cierto sigue absolutamente viva hoy en día

Fue la época dorada del software español. Un momento increíble para los ordenadores de 8-Bits que casi eran cuatro bandos: Spectrum, Amstrad, Commodore y MSX. Si pensáis que hoy hay guerra de bandos es porque no vivisteis aquella época: cada cual defendía lo suyo a muerte, pero luego todos acabábamos en casa del contrincante echando un Gauntlet o un Match Day II a dobles - mirando de reojo aquel ordenador "de la competencia". Aunque dejaron de venderse, no por ello quedaron en el olvido. Muchos emuladores se han escrito para poder seguir recordando aquellos juegos, pero sin embargo yo hoy os hablaré de uno que me ha recordado aquellas tardes especiales también.

RetroVirtualMachine es el emulador definitivo de los 8-Bits

Rvm Jarlac
En la imagen, Retro Virtual Machine con Jarlac (de Retrobytes Productions), un juegazo increíble para CPC programado en 2018

Antes de hablar para este artículo con Juan Carlos González Amestoy (creador de Retro Virtual Machine) y Francisco Gallego (profesor de la Universidad de Alicante y creador del CPCRetroDev) tenía que hacer algo. En casa - en un armario - cuidadosamente cerrado y cuidado, está mi primer ordenador - un Amstrad CPC 464 que todavía conservo en perfectas condiciones. A modo de casi cuidada liturgia, lo conecto al monitor CTM644 y cargo un cassette.

Mentiría si no os digo que no me quedo absorto mirando aquella máquina que cambió mi vida, esos sonidos que me transportan a mi infancia o esos píxeles tan familiares. Hay mucho más en aquello que un simple conjunto de cables, hardware y software. Y esto, precisamente esto, es lo que hace tan especial el trabajo de Juan Carlos con RVM.

Durante todos estos años probando emuladores, he encontrado algunos muy buenos. Para Windows el clasicazo que seguro que todos habéis probado es el WinAPE, para Mac siempre había utilizado Arnold. Habían otros muy buenos como Caprice32, pero el problema de todos ellos es que no se actualizan muy frecuentemente, quizás porque la emulación está cercana al 100% de fidelidad. Ahora nos hemos dado cuenta de que a todos ellos les faltaba algo más.

Retro Virtual Machine Xataka 02

Cuando comienzo la entrevista con Juan Carlos entiendo lo que es: la absoluta pasión y devoción por esos sistemas de 8-bits de su creador. En Retro Virtual Machine no sólo se emulan las máquinas (actualmente todos los modelos de Spectrum y Amstrad), sino también cada pequeño detalle del hardware en sí. Cada ordenador está fielmente reproducido, con su casetera o su disquetera, su teclado localizado al país del que elijamos el modelo, pero también sus sonidos de carga, la animación del avance de la cintas o incluso el nombre "escrito a máquina" en cada cassette cuando cargamos un archivo.

"Eso salió casi sobre la marcha" - me cuenta Juan Carlos con media sonrisa - "porque hacía falta ser un poco diferente. Ya había algún emulador que hacía algo parecido, uno de Spectrum llamado el ZXSP. Era la época del skeumorfismo en Apple y me gustó la idea de llevar la realidad a los gráficos que representaban las máquinas. Quería que usar la máquina virtual fuera lo más parecido a usar la real."

La emulación va más allá de las ordenadores originales

Retro Virtual Machine Xataka 03

La realidad es que RVM no sólo se limita a representar las máquinas: la combinación de sonidos, detalles y gráficos consiguen trasladarnos a aquella época como ningún emulador lo había hecho antes. "Antes de empezar los emuladores, me gustaba hacer interfaces de usuario: como se hace una ventana, un botón... Cuando empecé en 2014 me imaginaba que crear esta apariencia para el emulador sería complicada, pero al final todos los gráficos están hechos por mi, excepto el logo de RVM que me diseñó Jarco." - me sorprendo muchísimo porque es un trabajazo y no es nada sencillo, aunque Juan Carlos quiera quitarle importancia - "Utilicé Sketch en Mac, te bajas una imagen de Amstrad de Internet y es cuestión de jugar con los degradados y demás... Esta claro que esto no se hace para ganar dinero, se hace por pasión, así que puse atención a estos detalles."

Me cuenta que actualmente, es usuario y aficionado al mundo Apple. De hecho, la primera versión de Retro Virtual Machine que sólo emulaba Spectrum, únicamente tenía versión para Mac. "La versión 1 se hizo con toda la API de Mac con Cocoa, etc... En el v2 hubo que rehacerlo casi artesanalmente para que soportara los distintos sistemas operativos. Aquí la versión de Mac perdió algo de la interfaz propia de macOS al construir algo más multiplataforma: al final es un render en OpenGL y todas las versiones son iguales."

La primera versión de Retro Virtual Machine sólo era para Mac, y únicamente emulaba el Spectrum. A partir de la v2 aparecieron las versiones para Windows y Linux, y se añadió el Amstrad CPC

Sin embargo, programar un emulador así no es nada sencillo, aunque Juan Carlos consigue simplificarlo mucho mientras disfrutamos de unas cañas en un céntrico bar de Alicante: "El primer emulador fue realmente el de Spectrum, porque el de Amstrad era más complicado. Todo el mundo empieza a hacer un emulador de Spectrum porque es mas sencillo - una vez que tienes el Z80, ya tienes casi todo hecho. El Spectrum 48 es más fácil, y eso fue RVM v1." Estaba claro que los los primeros usuarios de RVM no se iban a conformar y también le pedían otras máquinas y plataformas "La gente me pedía como primera cosa para la v2 que fuera compatible con Windows y Linux. En septiembre de 2015 antes de navidad ya tenía un Amstrad funcionando, pero para la v2 pero aún no tenía debugger. Con algunas demos me volvía loco, y empecé a dar demasiadas vueltas a las cosas. Incluso comencé a hacer dos versiones paralelas, una en Mac y otra en Windows con .net hasta que pasé a algo más genérico para todos los sistemas"

Cuando le pido que me defina en una sola frase lo que es un emulador, Juan Carlos no se lo piensa mucho: "Al final RVM emula ciclo a ciclo la máquina original, en un bucle que se ejecuta cuatro millones de veces por segundo, y ejecuta todo lo que hace un ordenador en él. Esto es realmente el emulador." Fran interviene para darle más valor "Si quieres hacer un emulador de forma "rápida", puedes coger algo que ya exista y evolucionarlo. Pero eso no es lo que ha hecho este hombre. La gracia es que lo hagas tú, porque lo controlas más y permite optimizarlo y controlarlo mucho más, para resolver bugs, etc..."

No sólo están emulados los ordenadores originales, también monitores, accesorios y dispositivos hardware que incluso se fabrican hoy en día

Otra de las cosas que le otorga ese carácter realista a RVM es la perfecta recreación de los monitores originales, con su banda de refresco y una forma de representar los gráficos originales casi como los viéramos a través de un monitor CRT, gracias a la incorporación de una máscara de píxeles: "Eso sólo tiene unos meses. Lo vi en un emulador para Raspberry PI, lo probé y a la primera 'dio el pego'. Pensé que a la gente no le iba a gustar, pero ha sido una de las cosas que más está gustando." Esta técnica es más realista que el las clásicas "scanlines" y no añade mucho ruido las imágenes, aunque todo es configurable.

Si echamos de falta algún periférico, RVM también emula dispositivos externos, como DIVMMC para cargar desde tarjetas SD, o añadir más memoria con un X-Mem a nuestros Amstrad virtuales. "Se está poniendo de moda, ahora por ejemplo quiero emular también las tarjetas AM4 para poder cargar tarjetas SD con juegos para las máquinas originales, es como poner un disco duro al Spectrum o al Amstrad. Curiosamente, hay más gente haciendo hardware que casi software." Juan Carlos destaca el increíble trabajo en accesorios hardware que hoy en día aún existe para añadir a las máquinas original, y Fran comenta convencido las ventajas de emular esto también: "Cuando emulas un hardware real, como estos accesorios que existen realmente para las máquinas originales, consigues que la gente los conozca y por tanto que salgan aún más cosas de este tipo."

Retro Virtual Machine Xataka 04

El sonido es importantísimo también en la emulación. ¿Quien no recuerda aquellas melodías en el Batman de Johan Ritman y Bernie Drummond? RVM sorprende también por la calidad de aquellos vetustos chips de sonido y como se interpreta en nuestros modernos ordenadores: "Yo nunca había programado nada de sonido. El Spectrum 48K tenía beeper, pero el chip AY de los Amstrad es distinto. Se trata de plantearte como funciona el hardware de verdad: ¿Pongo 5V o no los pongo? Pues fuerza bruta y cuanto más rápido muestrees, mejor funciona. Más o menos es así. El AY es más agradecido, aunque no es como el chip SID de Commodore. El Commodore en su época era el "Apple" de los 8-Bits..."

Juan Carlos confirma que saldrán nuevos ordenadores para RVM: el siguiente paso será el soporte a los Amstrad CPC+ y la consola GSX de Amstrad

Una de las preguntas lógicas a Juan Carlos es sí continuará añadiendo más máquinas a su RVM: "Sí, más hardware y más máquinas. Commodore 64 me sorprende por la escena que hay detrás, pero tiene mucho trabajo. El siguiente será el Amstrad CPC+ sin duda. El paso más lógico sería el MSX porque el tema del procesador ya está hecho. El problema del MSX es que hay muchos modelos. Seguramente inventaré uno ficticio en plan “RVMSX”..." También me confirma que la consola GSX de Amstrad estará incluida: "Seguro, eso seguro. Para finales de este 2019, pero depende de la vida personal. Yo trabajo en la Universidad de Alicante, y le dedicas a veces nada en una semana y en otras me obsesiono con algo y no paro..." Fran sonríe: "Eso sabes que le pasa cuando te manda mensajes de Telegram a las 2 de la mañana..."

La posibles versiones para iOS y Android tendrán que esperar, sobre todo por la App Store. La única forma que permite Apple de subir emuladores es "enlatar" juegos con el motor y siempre contando con la licencia original. Pero Juan Carlos está bajo los focos de la escena retro con RVM y la enorme explosión del mundillo hace que muchos queramos volver a recordar aquella época con trabajos como el suyo: "Yo me hubiera esperado más para sacarlo, pero con Twitter y las redes sociales la presión para sacarlo hacía que lo sacara ya. En un principio lo hacía para mí, pero ahora imposible porque la gente pregunta y pide cosas..."

CPCRetroDev, juegazos retro 30 años después

Retro Virtual Machine Xataka 05

Sin avisarlos, saco de mi mochila un buen puñado de revistas originales de la época. Recuerdo que la envidia de los usuarios de otros sistemas a los de Spectrum por la Microhobby, que incluía en los últimos números un cassette con demos. En aquella época aquello era una locura. "En la Amstrad User había unas rutinas. Yo cogía muchas de esas rutinas y las modificaba, era el Internet de nuestra época. El momento de ir al kiosco a por un nuevo número era emocionante" dice Fran mientras ojea algunos de aquellos números encima de la mesa: "Para mí era mejor que Internet. Hoy en día prestar atención a algo más de diez segundos es difícil. Todo lo digital está diseñado para atrapar tu atención, todos los productos digitales que nos rodean compiten por nuestra atención."

Revisando algunas viejas reviews, cambiamos a hablar sobre juegos. Hoy en día se siguen creando juegos para estas máquinas de hace más de 30 años, y es sorprendente la calidad que tienen, van mucho más allá de lo que vimos en muchos productos de la época: "Sí, antes sólo eran programadores. Juegos como Jarlac, Operation Alexandra, Shadows of Sergoth... los medios para obtener y comprobar tu conocimiento, obtener fuentes y resolver dudas a través de Internet... hoy en día hay más formas." Fran demuestra aquí su faceta docente: "Y aunque esto no hace que la gente sepa más en general, pero si hoy en día te interesas y te pones a investigar, aprendes más rápido que antes. Antes sólo teníamos lo que teníamos a nuestro alcance, el manual que venía con el ordenador y las revistas de Amstrad User y poco más..."

CPCRetroDev es un concurso de programación de videojuegos para CPC, y forma parte de una asignatura de ingeniería de la Universidad de Alicante impartida por Fran Gallego

Fran es profesor en la Universidad de Alicante (y Profesor Retroman en YouTube) e imparte una asignatura que seguramente muchos desearíamos haber cursado de estudiantes: "Llegan en Septiembre y les digo: vais a hacer un juego para Amstrad. La primera pregunta es '¿¿Qué es un Amstrad??' Y el 31 de Octubre ya presentan el juego. Es una asignatura que imparto dentro del Grado de Ingeniería Multimedia, en cuarto. En menos de dos meses, la gente conoce la máquina, aprende a programarla, programa y hace un juego. ¡En dos meses!"

De la asignatura también es parte el CPCRetroDev, un concurso de programación de juegos para Amstrad CPC donde sus estudiantes tienen que presentar sus trabajos, y competir también con programadores del mundo real: "Yo notaba un deterioro de las capacidades de programación en cuatro, porque cada vez tenían más problemas para entender lo que hacían. Les costaba entender la base con la que construían su conocimiento, los cimientos no eran robustos. Los fundamentos era importante pero no estaban conectados con la programación ni con el modelo mental del estudiante de cómo funciona la máquina."

Para Fran es importante que los futuros ingenieros entiendan qué ocurre en la máquina más allá de lo que creen ver: "Tienen que tocar el bajo nivel para entender lo que funciona en una máquina. La respuesta: un Amstrad. Un PC moderno es demasiado complejo, pero el CPC es una máquina sencilla como máquina de 8-bits. Muchos alumnos me 'acusan' de que elijo Amstrad para las prácticas porque es lo que a mi me gusta. Pues claro, ¡es que a mí me encanta!. Quizás hubiera sido aún más sencillo hacerlo con un Spectrum, pero siempre te podré enseñar con más pasión si te enseño lo que me gusta."

Yo era del bando de Amstrad, así que le digo que me parece perfecto un concurso así. Él además me convence de que será muy útil para los estudiantes: "Quiero que las prácticas sean reales, no que acaben en un cajón. Si les digo que quiero que hagan un juego para que lo publiquen, al final muchos no lo harían. Para hacerlo real, pensé algún tipo de competición - un concurso - donde los estudiantes van a competir con gente también de la calle, con las mismas normas. Eso les transmite una idea de cuánto se tengo que esforzar, '¿qué sabe esta persona que yo no sé?'... y además, esta idea pensé que sería un dinamizador de la comunidad."

Un momento increíble para disfrutar del mundillo retro

Todo en aquella época se recuerda con nostalgia y con cierto halo de magia. Otro ejemplo: Las tiendas. Siempre que paso por delante de la mía - a la que yo iba a comprar mis cassettes en Elche, mi ciudad - aún se me pone la piel de gallina. Estaba en el centro de la ciudad, creo que se llamaba Sillicon Valley, muy retro, bajabas una escalerita y aquello era otro mundo. Casi un club de amigos. Habían tiendas que por aquella época incluso grababan juegos y no sabíamos si aquello acababa de ser legal. Ahora parece que vuelven aquellos tiempos de reencontrarnos con juegos nuevos para estas máquinas, gracias a concursos como CPCRetroDev: "Sí, pero con reglas." - me cuenta Fran - "El máximo para un juego son 64k, aunque permitimos cargas hasta que se cargue el juego, como prestaciones. Por ejemplo, el Dragon Attack. Una vez que carga el juego, no se puede volver a cargar más."

Estas limitaciones sirven para poner límites a los participantes dentro del tiempo y los recursos que tienen, y Fran explica por qué es importante hacerlo: "El tiempo cuenta mucho. El talento cuenta, pero el tiempo cuenta más. Esto se hace mucho en la demoscene, que consiste en demostrar tus capacidades creativas en un entorno limitado. Está claro que con tiempo y sin las limitaciones tan escasas de memoria podríamos obtener juegazos como Shadows of Sergoth (que sólo funciona en 128kb), pero el objetivo del concurso es otro."

A finales de los ochenta programar un juego para CPC no era sencillo si querías ir más allá del lenguaje Basic, pero hoy hay nuevas herramientas para ello. Fran es el creador de una de ellas, que ofrece a sus estudiantes y a cualquier que quiera utilizarla para participar en el CPCRetroDev: "Todo lo hacen con CPCtelera" - un kit de desarrollo creado por Fran totalmente gratuito - "pero están obligados a programar el juego entero en ensamblador. Y ojo, el ensamblador es algo que desde 2014 ellos lo tenían en las normas, pero sólo unos pocos lo utilizaban. Sin embargo, los resultados en ensamblador eran mucho más espectaculares, y vi que los alumnos seguían teniendo problemas de base cuando no lo utilizaban."

Retro Virtual Machine Xataka 06 Imagen de CPCtelera, la herramienta de creación de juegos para Amstrad CPC de Fran Gallego

Fran hace una ligera pausa y se ratifica con la respuesta: "Desde el año pasado, programar en ensamblador es obligatorio, y he notado un cambio increíble. Sabía que les iba a costar mucho más, pero la calidad es mucho mejor al principio porque van muy lentos, aunque poco a poco van cogiendo velocidad de crucero y cierta soltura... y aquí la calidad mejora muchísimo porque en ensamblador entienden lo que está pasando al ser muy bajo nivel." Nunca es tarde para ponerse a ello, parece: "El que quiera empezar, si sabe programar, con CPCtelera lo tiene muy fácil porque también tiene un saco de ejemplos. Y si te vas a la página de CPCRetroDev puedes ver el código fuente de los juegos, cuya calidad del código también se puntúa en el concurso."

Vivimos un momento increíble para la escena retro: las ferias, concursos y el interés por las máquinas de 8-bits se materializa con juegos y nuevo hardware hecho por aficionados

En la CPCRetroDev del año pasado se presentaron 41 juegos, para el que también hay premios (1500€ repartidos en distintas categorías) y un jurado seleccionado entre la escena actual de Amstrad: "La edición de este año depende de la asignatura y de los estudiantes, ya que es un concurso creado para ellos. Ha habido muchas conversaciones ya que la gente pide nuevas categorías, 128Kb, en disco, que se permite otros idiomas (el concurso es en inglés porque es un concurso internacional)... Sin embargo, el objetivo de CPCRetroDev son los estudiantes. Hay otros concursos interesantes como el de Amstrad Eterno, pero CPCRetroDev es un concurso educativo eminentemente aunque también participe mucha gente de externa a la universidad."

Ruta Del Tesoro Juego Pedro Aznar

Sin duda es un momento increíble para los usuarios de aquellas máquinas, que poco a poco vamos surgiendo gracias a las redes sociales. Mi caso por ejemplo. La gente me relaciona con el mundo Apple, pero también he sido - y soy - usuario de Amstrad CPC desde 1987. De hecho, mi blog original se llama cuatrodoce porque me regalaron mi primer ordenador un cuatro del doce de 1987, el Amstrad CPC 464. Fran sonríe y parece retarme: "Eso denota un cariño especial. ¿Y todavía no te has animado a hacer tu propio juego?" En realidad ya lo hice. Una aventura conversacional de piratas pero como no tenía mucha idea de cómo dibujar los gráficos, utilizaba comandos tipo “draw” para trazar vectores y tratar de dibujar los escenarios. Muy rudimentario, un juego muy básico con el que aprendí a dar mis primeros pasos programando.

"La comunidad retro era algo que parecía como escondido hasta hace unos años, en el mundo Spectrum se organizaban cosas antes que Amstrad, pero ahora parece que estamos empezando a conocernos y salir todos" - comenta Fran con muchísima razón. Juan Carlos añade: "Estoy seguro que hay mucha gente como yo que está haciendo cosas por su lado que ahora empieza a compartirlas, y eso también es importante para la comunidad."

Retrovirtualmachine Entrevista
A la izquierda, Juan Carlos González Amestoy (creador de Retro Virtual Machine). En la derecha, Fran Gallego (profesor en la Universidad de Alicante y creador del CPCRetroDev). Dos genios.

Dos horas charlando con Juan Carlos y Fran me devolvieron completamente a aquella época: muchas veces pensamos que la tecnología son frías máquinas, pero también son momentos, nostalgia, y no hay nada más personal que eso. Sí, Juan Carlos ha creado el mejor emulador de 8-Bits que ha existe, pero porque la experiencia y sensaciones van más allá de los píxeles. Instalad RVM, bajad los juegos del CPCRetroDev, buscad joyas clásicas como La Abadía del Crimen y degustadlas como buenos gourmets de la tecnología que sois.

Francisco Gallego también ha conseguido llevar esa pasión a sus alumnos y retarlos con un concurso que los sitúa en la vorágine del Z80, del exprimir cada maldito byte de memoria y llevar cada idea al límite. Todo esto va por ellos, por quienes vivimos aquella época y por quienes la descubren ahora: bienvenidos a la edad de oro de los 8-bits... de nuevo.

También te recomendamos

Crema de chocolate y café con mascarpone: receta para enamorar

Así fue como Dinamic conquistó el mercado con juegos multiplataforma en los 80, cuando Unity ni siquiera era un proyecto

Bluetooth ZX Spectrum, el viejo teclado de goma vuelve a la vida

-
La noticia Retro Virtual Machine: el viaje para hacer el emulador definitivo de Spectrum y Amstrad fue publicada originalmente en Xataka por Pedro Aznar .



Gracias a Pedro Aznar

No hay comentarios.:

Publicar un comentario