Proyecto
ZX Spectrum +2A
Mi primer ordenador fue un ZX Spectrum +2A negro, el español, con el casete integrado. Con él y con el libro de BASIC empecé a programar, así que tenía pendiente este proyecto: un emulador escrito desde cero, sin librerías, y el aparato modelado en Blender para usarlo en el navegador encima de una tele de tubo. Arranca con la ROM original, suena, carga cintas y se puede escribir con el teclado del ordenador o pulsando las teclas del modelo.
Puedes probarlo tú mismo: encender el ZX Spectrum +2A. Funciona en el ordenador y en el móvil, y el emulador no se descarga hasta que le das a «Encender».
Un Z80 escrito desde cero
Lo primero fue el procesador. El Z80 está hecho a mano con todas sus instrucciones, también las no documentadas, y contando los ciclos de cada acceso a memoria, porque en el Spectrum la imagen y el sonido dependen de ese tiempo exacto.
Para saber si está bien no vale con que arranque. Existen dos programas de prueba clásicos, zexdoc y zexall, que comparan miles de combinaciones de cada instrucción con un Z80 real. Los dos dan 67 de 67 correctas, y cada uno tarda alrededor de minuto y medio en ejecutarse.
La máquina completa
- Memoria: los 128 KB del +2A con su paginación, incluidos los modos especiales que usa el +3 BASIC.
- Pantalla: la imagen se pinta al paso del haz, línea a línea, así que los efectos de borde y de color de los juegos salen como en el original.
- Sonido: el altavoz y el chip AY-3-8912 con sus tres canales, el ruido y la envolvente. En el navegador lo toca un AudioWorklet, y es el reloj del audio el que marca el ritmo del emulador para que no haya cortes.
- Cintas: lee ficheros TAP y TZX. Puede cargarlos al instante o con la señal real, con sus rayas en el borde, y puedes arrastrar tus propias cintas: no salen de tu navegador.
- Juegos: trae 16 juegos listos para cargar con un clic, todos con permiso para compartirlos: sus autores dejan distribuirlos, son de dominio público o tienen licencia libre. Cada uno sale con sus créditos.
- Teclado: el del ordenador se traduce al del Spectrum, y en el móvil sale un teclado táctil del +2A.
El aparato en Blender
El modelo es un +2A español, con su teclado de MAYUSCULAS, BORRAR e INTRO, la ñ, el Datacorder y los conectores de la parte de atrás con sus nombres. Está hecho con un script de Blender que se puede volver a generar, y en la web se usa una versión ligera de menos de un mega.
En la página, al pulsar «Encender» se descargan el emulador, la ROM y el 3D, y la cámara se pone delante de la tele. Las teclas del modelo se hunden al escribir y también se pueden pulsar con el ratón o con el dedo.
El Reel
El vídeo lo he montado con ReelKit, una herramienta que estoy haciendo para copiar la estructura de un Reel que me gusta (los cortes, la duración de cada plano y el ritmo) y rellenarla con mis propios vídeos. Los planos salen de renders de Blender, de grabaciones del emulador funcionando y del propio código.
La ROM y las marcas
La ROM del +2A es de Amstrad, que permite distribuirla con los emuladores siempre que no se venda, y así se usa aquí. Es un proyecto personal, sin relación con Sky ni con Amstrad, propietarias de las marcas Sinclair y ZX Spectrum.
Ver otros proyectos
Un segundo, cariñoCorto de animación con IA y un teclado en Blender donde cada canica pulsa su tecla real.
Málaga en datosAplicación abierta con los datos del Ayuntamiento: rutas a pie, barrios a 15 minutos y autobuses.
Villa NereaWeb de alquiler con vídeo guiado por el scroll y reserva simulada.
BRIGANTFicha de producto de moda con compra simulada y SEO técnico.
Málaga en 3DMaqueta 3D del centro histórico con datos abiertos del IGN y el Catastro.
Vineyard & PeopleAplicación de vinos que decía cuánto encajaba cada uno contigo. Proyecto cerrado.
The World CanvasPortada editorial diaria con IA y archivo del mundo.- AgentNodeVigilancia doméstica con análisis visual por IA. Hackathon OpenAI Build Week.