Entrevista con el equipo de desarrollo del clon de Spectrum ZX-Uno

Publicado el 11 julio 2014 por Retromaniac @RetromaniacMag
Carlos Climent, nuestro colaborador del blog Game Museum, habla con el equipo de desarrollo del ZX-Uno, una más que interesante iniciativa para crear un clon del ZX Spectrum en una placa muy reducida con conectores a mansalva y algunas características por hardware sorprendentes como pueda ser la ranura para tarjetas SD.


El tamaño del producto final es realmente reducido



Primero, para que nuestros lectores sepan sobre que estamos hablando, ¿Qué es exactamente el ZX-UNO?
Miguel Angel Rodríguez: Es un ZX Spectrum "new generation". O por decirlo de otra manera, es un ZX Spectrum como probablemente se hubiera hecho si Sinclair hubiera decidido hacerlo hoy día. Con todo lo que tiene el ZX Spectrum, y más. Fisicamente es un aparatito, del tamaño de un móvil pequeño, que encierra en su interior un circuito electrónico cuyo principal componente es un chip llamado FPGA. Una FPGA es, para que nos entendamos, un chip "virgen" al que tú le puedes "grabar" un circuito electrónico tan complejo como pueda caber en esa FPGA. La FPGA del ZX-Uno lleva "grabado" todo el circuito electrónico del ZX Spectrum.
¿Quién forma el equipo de desarrollo del ZX-UNO?
Miguel Angel Rodríguez: Bueno, pues están Antonio Villena, el fundador del proyecto, coordinador general y autor del firmware de arranque, así como de otras piezas de software que van en el ZX-Uno. Por otro lado Jordi Bayo (Hark0), que es el responsable de todo lo que es "arte": logotipos, stickers, webmaster de zxuno.speccy.org, etc. Don "Superfo", un colaborador del proyecto desde USA. El responsable de crear los esquemáticos y juntar todos los componentes electrónicos del ZX-Uno en el menor espacio posible. [sarcasmo] Nos acordamos mucho de él cuando toca soldar los prototipos y hay que manejar componentes con separaciones entre contactos de medio milímetro [/sarcasmo]. Andrew Owen, el autor de la única ROM que se conoce para Spectrum que no infringe licencias de uso de los fabricantes originales del ZX Spectrum, y que por tanto puede usarse libremente en proyectos como éste, por lo que su ROM (Open SE IV) es la que estará "por defecto" en ZX-Uno. ZX-Uno de todas formas es configurable por el usuario y puede poner otras ROM's si lo desea. Y por último yo, que empecé siendo algo así como un consultor técnico, y acabé desarrollando casi todo el core (lo que va grabado dentro de la FPGA) del ZX Spectrum. Quizás sea el responsable último de que el ZX-Uno lleve un ZX Spectrum y no otra cosa.
¿Habíais trabajado en proyecto anteriores?
Miguel Angel Rodríguez: Con Antonio yo había colaborado puntualmente en otro proyecto de él: la plataforma/utilidad "Cargando Leches" como betatester de las rutinas de carga en máquinas reales.
Antonio Villena: Sí, con Superfo y con McLeod hemos trabajado en otro clon de 128K, en ese caso usaba chips discretos en lugar de FPGA.

¿Cómo surgió la idea de fabricar el ZX-UNO?
Antonio Villena: La idea fue mía, había un clon basado en una placa FPGA llamada MOD-VGA, que era una especie de tarjeta gráfica para Arduino. Superfo consiguió clonar un Spectrum con las ecuaciones de McLeod, añadiéndole una placa adicional y haciendo modificaciones en la placa.  Mi idea era meter todo eso (MOD-VGA modificada+placa adicional) en una PCB del tamaño de una Raspberry, usando las mismas posiciones en los conectores para así poder reutilizar las mismas cajas.
¿Por qué escogisteis el ZX Spectrum y no otro sistema?
Miguel Angel Rodríguez: Era la elección lógica. Quiero decir, tanto él como yo conocemos muy bien el ZX Spectrum. Antes del ZX-Uno, habíamos participado en otros proyectos de clonación. En concreto, el clon "Superfo"-"Harlequin" que dio a conocer José Leandro Novellón en el foro de speccy.org . Antonio después probó con un clon de 128K. Para entonces yo ya había escrito soft-cores (descripciones de circuitos electrónicos para FPGA) de ZX Spectrum para placas FPGA que disponía en la Universidad, así que la idea de Antonio era desde un primer momento usar esos cores adaptándolos al ZX-Uno.
Antonio Villena: Por muchas razones, somos fans de este sistema, hemos hecho antes otro clon de la misma máquina, el hardware de la máquina es relativamente sencillo y es de las pocas de las que se conoce su funcionamiento exacto gracias a Chris Smith.
¿Qué características técnicas tiene el ZX-UNO?
Miguel Angel Rodríguez: Hay que diferenciar entre las características técnicas de la placa que hay en el ZX-Uno, y las características técnicas del sistema que se ha implementado en el ZX-Uno (o sea, las características técnicas del ZX Spectrum implementado). Supongo que interesa más lo segundo, así que ahí va: Hardware de ZX Spectrum 48K/128K/+2A, Z80A a 3,5MHz, con opción turbo a 7MHz desde Open SE IV; 64KB máximo de ROM, 256KB máximo de RAM. Modos de pantalla compatible con Spectrum y Timex TS2068 (hasta 512x192). Modo de baja resolución 128x96 con color independiente por pixel (16 colores definibles de una paleta de 256). Modo "hicolor" con atributos de 8x1 (en lugar de los atributos de 8x8 habituales del Spectrum). Soporte ULAplus en todos los modos. Turbo Sound: 2 x AY-3-8912 dando un total de 6 canales de sonido + 2 de ruido. Salida de sonido estéreo. Interface DivMMC completa, con un slot SD/MMC, y 128K de RAM dedicada. Firmware ESXDOS. Interface ZXMMC completa, compartiendo el mismo slot SD/MMC que DivMMC. Soporte gracias al proeycto +3e de Garry Lancaster. Entrada EAR para cargar software "a la vieja usanza". Soporte de teclado PC con conector mini-din PS/2. Conector de expansión configurable para hacer las veces de conector de expansión trasero del Spectrum. Firmware que permite configurar el clon antes del arranque.

Siempre decís que el ZX-UNO no es un simple clónico, que incorpora varias implementaciones ¿Que mejoras tenemos con dichas implementaciones respecto al sistema original?
Antonio Villena:  Desde el firmware (es una especie de BIOS de PC) podemos seleccionar la ROM con la que queremos arrancar. Y el DivMMC le da mucha versatilidad. O sea que podemos cargar cualquier modelo de ZX Spectrum, incluso una especie de +3 mediante la ROM modificada del +3e cargando la imagen de disco de 3" en la SD. No obstante lo más cómodo es tirar de ESXDOS ya que usa un formato común para la SD (FAT/FAT32) copiando juegos a la misma desde un PC.
¿Qué sistemas es capaz de emular el ZX-UNO?
Miguel Angel Rodríguez: ZX-Uno no "emula" (al menos no en el sentido tradicional de la palabra, cuando se aplica a retro computación). Quiero decir, dentro de ZX-Uno NO hay una máquina con Windows o Linux, que a su vez carguen emuladores del microordenador con el que vayamos a trabajar. ZX-Uno es EL microordenador. Lo que se carga en la FPGA, el core, no es un programa, es un circuito electrónico. Aclarado esto, ZX-Uno tiene capacidad para albergar implementaciones de micros de 8 bits sencillos. Sistemas como el propio ZX Spectrum, Commodore VIC20, ZX80/ZX81, SAM Coupe, Jupiter ACE, Oric Atmos, Amstrad CPC o Dragon 32/64.
No me atrevo a incluir aquí al Commodore 64 y al MSX porque son un poco más complejos que todos los mencionados antes, y de caber, cabrían pero muy muy justitos. Sólamente el SID del Commodore 64 se llevaría por delante bastante espacio en la FPGA.
Además, puede albergar implementaciones de videoconsolas y arcades sencillos, tales como una Atari 2600, la Videopac o máquinas arcade como PacMan, Scramble, Space Invaders, Galaxian, y en general, máquinas que sólo lleven un procesador, y que éste sea del orden de complejidad de un Z80A o un 6502.
Ya que habéis mencionado antes otras máquinas. ¿Os habéis planteado crear sistemas parecidos para esos otros sistemas como MSX, VIC20 o Commodore 64?
Antonio Villena: No. Tratamos de centrarnos todo lo posible en nuestra máquina. Ya hay clones basados en FPGAs basados en dichas máquinas, lo que por otro lado es bueno ya que se puede portar el código VHDL (si está disponible) para funcionar en el ZX-Uno.
Como cualquier placa basada en FPGA un ZX-Uno puede ser lo versátil que uno quiera, siempre que tengas conocimientos para programar FPGAs y espacio suficiente en la misma. Aparte de los periféricos ya mencionados tienes un puerto de expansión con 40 pines entrada/salida de la FPGA.

¿ZX-UNO es compatible con todo el catálogo de ZX Spectrum?
Antonio Villena: Ahora mismo funciona el 99% debido a que la implementación del Z80 no es del todo exacta y el puerto flotante no se comporta igual. Cuando se arregle esto pasaremos al 100%.
¿Habéis tenido algún problema técnico a la hora de crear el ZX-UNO?
Miguel Angel Rodríguez: ¡Muchos! Antes de dar el visto bueno y que se fabrique en serie, hay que probar que el circuito (tanto el físico como el core que va dentro de la FPGA) funcionan a la perfección. No hemos encontrado problemas graves, pero sí muchos pequeños problemas que deben solventarse antes de dejar el aparato en manos de los usuarios: cosas como que el conector de alimentación (micro USB) no está suficientemente bien anclado a la placa, la imposibilidad de poder tener comunicación desde la FPGA hasta el teclado para que ésta lo configure (desde el teclado a la FPGA sí, así que las teclas sí se pueden leer), ruidos y autooscilaciones que hacen que de vez en cuando el chip que proporciona la señal de video compuesto al televisor no funcione correctamente,... cosas así.
¿Cómo ha sido la experiencia de crear el ZX-UNO?
Miguel Angel Rodríguez: Agotadora, pero muy estimulante, con lo cual, de alguna manera, una cosa cancela a la otra y el resultado final es que sentimos que estamos haciendo algo grande :)
Antonio Villena: Muy grata. Tener una idea y ver cómo se va haciendo realidad es algo que no tiene precio. Influye positivamente la buena compenetración con el equipo y los ánimos que recibimos desde fuera. Aunque también hay momentos (sobre todo la parte que le toca a Miguel) en que estás atascado en algo y tardas más de la cuenta en solucionarlo, no todo es color de rosa.
¿Qué aceptación está teniendo el ZX-UNO dentro de la comunidad retro?
Miguel Angel Rodríguez: ¡Mucho mayor de la que esperábamos! Realmente no nos dimos cuenta de ello hasta que Antonio y yo presentamos oficiosamente el ZX-Uno en la pasada RetroMadrid. Lo quieren gente de España y de fuera de España. El próximo prototipo va a llevar incluso VGA, para hacer más felices a los usuarios de la Europa del Este, "perros viejos" en lo que se refiere a clonar el Spectrum, y que están más habituados a usar sus clones con salida VGA.
Antonio Villena: Desde luego más de la que pensábamos, y de esto nos dimos cuenta cuando Miguel y yo expusimos el prototipo en RetroMadrid. Había mucha gente que seguía el hilo en el foro de zonadepruebas aunque no participaba activamente en él. A raíz de eso decidimos planificar una tirada inicial mayor, de 50 a 200 unidades.

¿Para cuándo prevéis tenerlo a la venta y qué precio tendrá?
Antonio Villena: Estamos esperando a que Superfo diseñe la PCB del segundo prototipo, yo tengo los componentes ya comprados y estaríamos listos para hacer la campaña de crowdfunding una vez comprobado que el segundo prototipo funcione al 100%. Esto calculo que sería 3 o 4 meses después de que Superfo termine el diseño de la PCB. Si todo va como se espera estarían disponibles para comienzos del 2015.
El precio de una PCB montada sin accesorios (cables, fuente, caja, tarjeta SD) estará entre 30 y 40 euros. Nuestra idea es vender mediante una plataforma de crowdfunding 100 ZX-Unos sin accesorios a 35 euros y otros 100 ZX-Unos completos (salvo tarjeta SD) a 70 euros, en total 200 unidades. Los prototipos los he vendido más baratos (22 euros) porque venían sin montar.
¿Tenéis algún futuro proyecto en mente? ¿Nos podéis dar algún detalle?
Miguel Angel Rodríguez: Como proyecto común, de momento éste es el único en el que estamos en cuerpo y mente. Luego ya cada uno por separado seguro que tiene más cosas en la cabeza.
En la mía hay muchas cosas, la más avanzada quizás sea el reemplazo de ULA para ZX Spectrum (un chip con... sí, lo has adivinado, ¡una FPGA!) que se pondría en un ZX Spectrum original, sustityendo a la ULA que trae de fábrica. Por otra parte, me atrae mucho la posibilidad de dotar al Spectrum con sonido de calidad Amiga, es decir, que el Spectrum pueda reproducir 4 canales de sonido digitalizado como hace el Commodore Amiga. Todo se andará...
Antonio Villena: No. Lo que sí tenemos son ideas con las que mejorar el actual, como añadir scroll por hardware o diseñar una plaquita que convierta el puerto de expansión del ZX-Uno en uno idéntico al del Spectrum al que podamos conectar interfaces.
Visita la web de ZX-Uno para más información