juego spectrum
inicio noticias artículos entrevistas enlaces especiales juegos colecciones podcast taller prensa
Entrevista con César Hernández Bañó, creador del emulador ZEsarUX

JMV - lunes, 18 de septiembre de 2017

Con motivo de la elaboración del libro El Mundo del Spectrum + pudimos entrevistar a César Hernández Bañó, cuyo emulador ZEsarUX es de lo mejorcito que puedes usar hoy día para experimentar el ZX Spectrum en plataformas modernas. La entrevista está resumida en el libro pero contenía información muy valiosa. Son preguntas concretas respondidas extensamente y hemos querido que todo ello figure aquí publicado en su totalidad.

Y por cierto, enviadle una felicitación a César, que hoy es su cumpleaños. ¡Felicidades y sobre todo gracias por colaborar con nosotros con tanta amabilidad! Un abrazo.


¿Qué modelo de ZX Spectrum o clon te ha resultado más complicado a la hora de implementar en tu emulador?

Como clon de Spectrum, sin lugar a dudas, el Prism, de Jeff Braine. Tiene muchos modos de video diferentes, creo que más que ningún otro clon, y además a medida que iba desarrollando la emulación del Prism, Jeff iba añadiendo nuevos modos o modificando alguna característica.

Afortunadamente, él siempre ha documentado todo muy bien como funciona y respondido muy rápidamente a todas mis preguntas.
Aparte de los clones de Spectrum, el otro ordenador que me ha costado más emular, ha sido el QL. Sobretodo la emulación del teclado: es una máquina de la que hay poca documentación, hay una comunidad muy reducida de usuarios y cuesta entender cómo funciona. Me pasé muchas horas de pruebas y depuración de la ROM para saber cómo emular el teclado.


¿Qué consideración le darías al Next? ¿Un clon, una versión mejorada del Spectrum, una evolución,...?

No se si realmente hay alguna definición de lo que es un clon de spectrum, o lo que es una mejora. Seguramente la gente más purista no estará de acuerdo conmigo, pero para mí, creo que todos los clones de Spectrum que hay actualmente son todos mejoras sobre el spectrum. Todos incluyen modos de video adicionales, o aumento de RAM, o lectura de tarjetas SD... Incluso el just speccy, que funciona con un z80 real y parece más similar a un spectrum, incorpora tarjeta sd y ULAplus... Por lo que para mí, todos los clones son mejoras del Spectrum original, incluido el Next

Ahora, aparte de la definición de lo que es un clon para mí, se podría decir que el Next (y otros clones, como el ZX-Uno, el Prism, o el Chloe) son una posible evolución de lo que podría haber sido el Spectrum si se hubiese seguido fabricando por ejemplo en los años 90 o siguientes. Incorporan mejoras lógicas de lo que podría haber sido ese nuevo spectrum: aumento de la RAM de los 128kb hasta 512kb, alternativa al sistema de carga de cinta mediante tarjeta sd, nuevos modos de vídeo y gestión de Sprites (recordemos que el commodore o el Msx ya tenían sprites en aquella época), o mejoras en el sonido, como sonido estéreo o uso de más de 1 chip AY.

Recordemos además que los soviéticos nos han llevado siempre ventaja en cuanto a diseños de clones y mejoras sobre spectrum. Actualmente está el zxevo/pentevo que es bastante impresionante


¿Qué dificultades ofrece la emulación del Spectrum Next tal y como está concebido? ¿Cómo se aborda la emulación de un ordenador como este y qué información necesitas?

Creo que ahora mismo la única dificultad que puede ofrecer el Next es la emulación del chip de sonido Sid. No se si realmente luego lo quitaran del modelo final y si estará para cuando publiquéis el libro. Pero de momento la situación actual es que han agregado el chip Sid (el mismo que el Commodore 64) y es mucho más complejo que el chip de sonido AY del spectrum 128. Por lo que he podido leer y también me comentó Miguel Ángel del equipo del zxuno, fue diseñado en su momento por alguien con conocimientos sólidos sobre música e instrumentos, pues vio que los chips de sonido que habían en la época (como el AY) no eran lo suficientemente realistas.
Realmente no se si finalmente incluiré emulación de dicho chip, y tampoco no se como plantearlo, me gustaría hacer por mi mismo la emulación de ese chip, como la mayoría de partes de ZEsarUX, pero es muy complejo. Hay también una implementación open source de emulación ese chip (creo que se llama resid) pero le eché un vistazo al código y casi ocupa más que todo mi emulador!
Respecto a cómo me planteo la emulación del Next y otras máquinas que he emulado... Primero lo que necesito lógicamente es toda la documentación del funcionamiento de la máquina: cómo gestiona la memoria adicional, que posibles modos de vídeo extra tiene, qué puertos emplea, si tiene teclas adicionales de gestión, posibles añadidos al sistema de sonido... en definitiva, documentación de todo aquello que tiene adicional con respecto a un spectrum "estandard".
En la mayoría de los casos de los clones que he emulado, la documentación suele estar bastante completa. Empiezo mirando cómo funciona todo y luego contacto con el autor de la máquina para primero, indicarle que voy a emularla, y segundo, suelo hacer varias (o muchas ;)) preguntas sobre esa documentación,, sobre algunos puntos que no hayan quedado claros.
Generalmente como suelo empezar con la emulación de la gestión de memoria, en cuanto la RAM y la rom funcionan como deben hacerlo en el clon, ya puedo iniciar la máquina y es un momento bastante satisfactorio, pues tienes una base completamente funcional. Luego a partir de ahí viene la emulación de modos de vídeo adicional y otras características.

Normalmente también sucede que al ir programando la emulación de dicha máquina y hacer preguntas, su autor acaba completando y mejorando la documentación. En parte es lógico, pues la mayoría de esos clones solo ZEsarUX los emula y antes a nadie (o casi nadie) se le había ocurrido mirar por dentro exactamente cómo funcionan y podían haber algunos apartados en la documentación que necesitasen mejorarse.
Respecto al caso concreto de Next: descubrí la máquina, como la mayoría de nosotros, cuando publicaron un vídeo de un render de la máquina, presentado en una feria. Indagando, me di cuenta que ese Next estaba basado en una implementación FPGA creada por Víctor Trucco y Fabio Belavenuto, (el tbblue) que ya tenía algunos años (creo que dos) y se estaba vendiendo en pequeñas tiradas.
A partir de entonces, me puse en contacto con Víctor para que me proporcionase documentación: no había nada de documentación de la máquina, pese a que afirmaban que el Next iba a tener documentación y sería open source (como están haciendo ya) en aquel entonces no había nada publicado
Víctor fue muy atento desde el primer momento y me fue pasando información de cómo funcionaba el tbblue. Hubieron algunos problemas al principio de idioma (él es portugués y habla poco de inglés y menos de español y yo puedo hablar inglés pero el portugués poquito) , pero no fue nada que no se pudiese resolver abusando de google translate y repetir varios mails con preguntas.
Posteriormente a medida que iba avanzando la campaña del Next, yo he continuado teniendo documentación en exclusiva, antes que se publicase, de cómo funcionaba las nuevas características, como la gestión de Sprites.

Al final todo se resume en tener documentación y echarle horas, muchas horas


¿Cómo ves el trabajo que estás haciendo con tu emulador, qué te gustaría que pensara la gente de él con el tiempo? ¿Es un trabajo de preservación global del Spectrum?

Bueno antes que nada, esto es un hobby para mí. Lo fue durante unos años primero con mi emulador ZXSpectr, escrito en assembler del 8088 y para msdos. Y sigue siendo un hobby ahora el ZEsarUX. Yo soy un nostálgico empedernido, usaba mi spectrum mucho más allá de su muerte comercial (hasta el 1998 creo que lo tuve conectado en mi escritorio) y sigo enamorado (tecnológicamente hablando) de él. Crecí con un zx81, aprendí a sumar siendo muy pequeño con mi padre usando esa máquina, y posteriormente llegaron un spectrum gomas, un QL, un Inves y un +2A.
Cuando me pongo a programar algo en ZEsarUX me proporciona mucha satisfacción. Hay alguna cosas que quizá son un poco más monótonas (como intentar adivinar cómo funciona el teclado del ql) y otras mucho más agradecidas y divertidas (como programar un algoritmo para buscar vidas infinitas en juegos).
Pero sobretodo hay ese componente nostálgico.
Además, tengo un montón de cosas pendientes que mejorar o agregar. Muchas son ideas mias, que me vienen a la mente en algún momento, las agrego a la lista y ahí se quedan hasta que pueda agregarlas. A veces son cosas que no tengo idea de cómo hacerlas, pero un buen dia me viene la inspiración y se me ocurre la manera de hacerlas.
Otras veces son nuevas características que alguien inventa, como por ejemplo el scroll por hardware del zxuno, o los sprites en el next, y lo acabo implementando en ZEsarUX.
Respondiendo más concretamente a tus preguntas: me gustaría que la gente con el tiempo recordase ZEsarUX como lo que es, o lo que intento que sea: un proyecto de emulación open source de spectrum, sus clones, máquinas de Clive Sinclair, y alguna otra máquina de los años 80 de 8 bits. También me gustaría hacer hincapié en que es un emulador gratuito y siempre lo continuará siendo, y que todo lo que agrego es decisión mía (aunque siempre hay gente que sugiere cosas y yo intento incorporarlas) y solo mía.
Respecto a la otra pregunta, si, se podría considerar un trabajo de preservación global de spectrum: Siendo código en C para compatibles Unix me asegura que se pueda seguir compilando y ejecutando en todas las máquinas basadas en ese sistema que salgan en un futuro (en Windows se usa mingw, que da una capa de compatibilidad Unix). Además, siendo open source garantiza que cualquiera podría reusar el código en un futuro, en el caso que yo dejase de mantener el código (cosa que espero que no suceda nunca). Poniendome un tanto nostálgico y previniendo el futuro, me gustaría un dia que, yo teniendo 60, o 70, o quizá más años, pudiese ejecutar ZEsarUX en el equipo que tenga en ese momento y poder cargar el chase hq, o el jet Pac, o el gunfright, o cualquiera de las glorias de spectrum, con su pitido de carga y sus colores en el border... y que después de cargarlo y jugarlo un rato me dijese a mi mismo: porque no agrego una cosa nueva al emulador, que se me acaba de ocurrir? ;)
El tiempo dirá...


¿Qué mejoras querrías incorporar en el futuro?

Muchísimas! Tengo un listado de cosas pendientes (el TO-DO) extensísimo. Podría enumerarte muchas, aunque las que más tengo en mente ahora mismo, y que espero que estén para cuando esté libro salga publicado, son:

-mejorar la emulacion del ql. Al menos que soporte la lectura y escritura de microdrives y floppy. Actualmente solo se puede cargar bloques de bytes (código máquina) pero no se pueden cargar bloques de programas en Basic (superbasic se llama en el ql)

-emular el mk14. Es la maquina anterior al Zx 80 que hizo sinclair. Tiene la dificultad añadida de que no usa un Z80 sino otro procesador, aunque éste es muy sencillo.

-emular el Msx. De manera muy básica, de manera similar a como emulo el cpc, e irlo mejorando muy poco a poco. Al final mi prioridad son los Spectrum y clones, pero el Msx está basado en z80 y chip ay, por lo que no es muy complicado

-mejorar el dibujado de pantalla en spectrum. No acaba de ser 100% exacto, y hay algunos programas y juegos que usan color en alta resolución (como nirvana, overscan, bifrost) que suelen tener algún defecto (o "glitch") en pantalla. Sé por qué sucede pero esa parte de la emulación he preferido tener una solución intermedia, que no es 100% real, pero usa mucha menos cpu del equipo físico de la que usaría si lo hago mejor

-mejorar el dibujado de pantalla en zx80 y 81. Si el spectrum puede ser complicado en cuando a emulación de pantalla, el zx80 y sobretodo el 81 lo es mucho más. Todos los modos de vídeo de alta resolución son muy sensibles al timing de la máquina. Yo lo tengo corregido mediante algunos "parches" o parámetros configurables en ZEsarUX; no es lo ideal, pero en la mayoría de casos funciona

-mejorar el dibujado de pantalla del amstrad. Ahora solo se emula de manera muy básica y hay muchos juegos que usan modos de vídeo no estándar y no se ven bien

-y finalmente intentar emular todo aquello que vaya saliendo nuevo para los clones, sobretodo el zxuno y el Next. Cada vez que anuncian algo nuevo me echo a temblar por pensar como lo emularé! ;)



9 comentarios EMS


Hay actualmente 9 comentarios


chernandezba 18/09/2017 a las 13:12:58

Gracias chicos por la entrevista y por la felicitación de mi cumpleaños :)))

A favor A favor En contra En contra
0(0 votos)
Modosita68 18/09/2017 a las 19:56:41

Felicidades César, tanto por tu cumpleaños como por tu trabajo con ZEsarUX.

¿Podrem ver el +3 en un futuro? Es el único modelo clásico que te queda por implementar.

A favor A favor En contra En contra
1(1 votos)
reguerra 18/09/2017 a las 20:58:23

Cesar, un grande! Incansable, perfeccionista, detallista. Pero ante todo excelente persona y un gran amigo!
Felicitacio por los logros y por lo que aún está por venir.

A favor A favor En contra En contra
1(1 votos)
eurocamsuite 18/09/2017 a las 21:07:53

Sin duda, un mago. Se me viene a la memoria la frase que un día dijo nuedtro amigo Javi Ortiz y que decía algo así como...

"a la emulación se lo debemos todo. Son los emuladores los que nos han traido hasta aquí".

Un abrazo chicos

A favor A favor En contra En contra
1(1 votos)
Borrocop 18/09/2017 a las 22:19:01

Felicidades compañero !!! y también felicidades por la entrevista muy interesante.

A favor A favor En contra En contra
1(1 votos)
freshko 19/09/2017 a las 00:00:08

Felicidades Cesar. Gran emulador.
Un saludo.

A favor A favor En contra En contra
1(1 votos)
chernandezba 19/09/2017 a las 11:45:50

Gracias por las felicitaciones y los piropos :))

En cuanto al +3, lo tengo ahí pendiente. Es un tema con el que me he peleado mucho (la disquetera) y aún no consigo que funcione. Pero algún dia (espero) funcionará

A favor A favor En contra En contra
1(1 votos)
area48 19/09/2017 a las 23:56:00

Conseguir entrevistas así son un lujo.

Nunca había escuchado a un programador de emuladores... es algo que me sigue sorprendiendo cuando consigo jugar al Jet Pac en mi PC... es algo mágico... la máquina real es la máquina... pero un emulador tiene algo extraño muy especial y difícil de explicar.

Gracias por programar emuladores de una forma tan generosa y dedicarle tantas horas de ilusión... personas así me superan... me sorprende que regalen tanto de ellos, su tiempo, sus conocimientos...

A favor A favor En contra En contra
1(1 votos)
chernandezba 25/09/2017 a las 12:25:17

jeje bueno no hay mucha magia en ello, es sólo programación. Cuando se entiende cómo funciona una cpu, sólo es cuestión de simular (emular) cada posible instrucción que pueda ejecutar esa cpu y hacer que se comporte igual que la cpu real. Eso es lo mas difícil quizá, el resto de hardware de un ordenador no suele ser tan complicado, pero siempre hay excepciones

A favor A favor En contra En contra
1(1 votos)


Escribe tu comentario:


Si ya tienes usuario loguéate desde aquí


Nick:

E-mail (opcional):


Si el comentario es largo te recomendamos que lo escribas primero en otro sitio no vaya a ser que seas medio robot y falles con el captcha.
Tu Comentario:


Tenemos que comprobar que eres humano:

· El número de verificación es obligatorio y tiene como objetivo evitar spam.
· El Mundo del Spectrum se reserva el derecho a eliminar el comentario.
· Se borrarán automáticamente los enlaces de spam.




Posicionamiento Zaragoza
Posicionamiento SEO Zaragoza
Casa Rural Formigal
Casa Rural Formigal. Biescas.
Flores Zaragoza
Compra flores baratas Zaragoza
te interesa




Introduce aquí lo que quieres buscar:
Colecciones de Spectrum   Colecciones de Spectrum

Échale un vistazo a las colecciones de Spectrum de nuestros lectores. ¿Todavía no has publicado la tuya? Créate un usuario y enseña tu colección.

Ver colecciones



Podcast Retro Spectrum

Colección aleatoria

La colección de EdD

La colección de EdD



El Mundo del Spectrum
 
 
Últimos comentarios
byevoltor

Gracias.....jugados todos menos el de diciembre 2019....Power blade z...

byevoltor

Mas vale tarde que nunca....!!!!

Mad Max

¡Magnífico trabajo! Muchas gracias por el enlace.

alejandro

Muchas gracias a todos como siempre por vuestros comentarios. Qué maj...

Sabrepac

¡Gracias por el enlace! Ahora llega, junto con el verano, la época m...

 



Iniciar sesión
acceder
Recordar contraseña




¿Eres nuevo en
El Mundo del Spectrum?
Regístrate




  Hacen El Mundo del Spectrum posible
 
El Mundo del Spectrum es una web dedicada al Sinclair ZX Spectrum. Nació como homenaje a Microhobby en 1996 en formato revista mensual evolucionando hasta esta tercera época que incluye su programa de Podcast llamado El Mundo del Spectrum Podcast.

Si quieres saber quién la hace posible haz clic en cada uno de sus miembros a la derecha de este texto.
Jesús Martínez del Vas Javier Ortiz Juan Fº Torres Alejandro Ibáñez  

© 1996 - 2018 El Mundo del Spectrum es un producto de Consultis

3ª época - www.elmundodelspectrum.com - Contacta

Los contenidos son opinión de su autor, EMS no tiene porqué compartir esa opinión.
Colaboran:
Curro, Kidsaguf, Deckard, Manu Sevilla, Antonio Ortiz
Han colaborado:
Falsworth, Hoz3, Slobulus