Videojuego en Alhambra-2 con Multimedia Shield

441 views
Skip to first unread message

Jesus Arias

unread,
Dec 18, 2025, 3:08:19 PM12/18/25
to FPGAwars: explorando el lado libre
Hola,

He portado la máquina de marcianitos "Defender" a la Alhambra-2 con la placa multimedia. Para probarlo se necesita:
- Un teclado PS2 y el jumper correspondiente conectado en "PS2"
- Ninguna tarjeta SD insertada
- Un monitor VGA, a ser posible de aspecto 4:3
- Ampli de audio conectado al jack "AOUT"

Se programa la flash: "iceprog combi.bin"

y el videojuego arranca. El sistema ejecuta las ROM originales de "Defender" y lo primero que hará será entrar en un menú de configuración. Se resetea pulsando "F12" y al segundo intento arranca el juego. (esto se debe a que una memoria supuestamente "no-volatil" ha comenzado con sus datos incorrectos)

En el teclado estas son las teclas asociadas a los controles:
F3, F2, F1 : Son los interruptores para insertar "coins"
1, 2 : para arrancar una partida de uno o dos jugadores
Q : Nave arriba
A : Nave abajo
Alt: Encender motor
Shift Derecho: Girar marcha 180 grados
Control: Disparo
B : Bomba
H: Hyperespacio

Y para moverse por los menús de diagnóstico y depuración:
U: Auto up
I: Avance (al pulsarla la máquina entra en su "setup")

F12: Reinicio

Espero que gusten estos clones tan retro ;)
Saludos
20251218_002332.jpg

combi.bin

charli va

unread,
Dec 18, 2025, 3:56:41 PM12/18/25
to fpga-wars-explora...@googlegroups.com
No tengo aquí un ps2!!! me voy a morir de ganas de probar esto hasta la semana próxima!! :)

Gracias Jesús!!

--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/f6eeae97-08af-4533-b984-163d727d5b8fn%40googlegroups.com.

Democrito

unread,
Dec 19, 2025, 3:36:36 AM12/19/25
to FPGAwars: explorando el lado libre
Tampoco tengo teclado PS2, pero en cuanto lo consiga y me libere de quehaceres subo vídeo demo.

Alexander Lang

unread,
Dec 19, 2025, 4:38:37 AM12/19/25
to fpga-wars-explora...@googlegroups.com
Buenas dias a todos!

Yo encontre este device en amazon UK.  Muy facil para una USB keyboard por PS2 para jugar con una fpga :)

Que lo pase bien

Alex

---- In English, mostly mostly for me in case I made a mistake with my efforts to write in Spanish! ---

Good morning everyone,

I found this device on Amazon UK.  Its very easy to use a USB keyboard to PS2 for playing games on an FPGA :)

Have a great time

Alex 

Alexander Lang

unread,
Dec 19, 2025, 4:39:24 AM12/19/25
to fpga-wars-explora...@googlegroups.com

Democrito

unread,
Dec 20, 2025, 7:26:42 PM12/20/25
to FPGAwars: explorando el lado libre
Hola:

Explico los pasos que he realizado por si ayuda a otras personas que encuentran algún bache. Me baso en un OS Windows 11 completamente nuevo.

- El primer paso es instalar Zadig o si tienes instalado Icestudio lo puedes encontrar aquí "C:\Users\TuNombreDeUsuario\.icestudio\apio\packages\tools-drivers\tools-drivers-windows_amd64-1.3.0\bin". En este último caso ejecuta Zadig.
- El segundo paso, es que si Zadig no consigue instalar el driver (como me sucedió) es necesario tener instalado "Visual C++ Redistributable para Visual Studio 2015". Si tu PC no es recién estrenado seguramente ya lo tienes instalado.
- Dentro de Zadig hay que tener habilitada en la pestaña "Options" la opción "List All Devices", así podrás elegir dónde instalar el driver, que es para  "Alhambra II ... (Interface 0)". Es importante que sea en "Interface 0", nunca en el 1, ya que hay dos.

2.png

3.png

- Una vez instalado el driver, nos vamos a la carpeta donde se encuentra "Iceprog.exe" que en mi caso está en "C:\Users\TuNombreDeUsuario\.icestudio\apio\packages\tools-oss-cad-suite\bin" (más adelante tendrás que copiar esta ruta para luego hacer un "cd" a esa ruta)
- Lo siguiente (esto es un modo de muchos de hacerlo) copia y pega el archivo "combi.bin" en la carpeta mencionada. Ese archivo está adjunto en el primer post de este hilo
- Ahora, desde un terminal (no con Power Shell, sino con "CMD") escribes: 
   * "cd C:\Users\TuNombreDeUsuario\.icestudio\apio\packages\tools-oss-cad-suite\bin"
   * y luego escribes "iceprog combi.bin" y te subirá el circuito a tu Alhambra II.

Este es mi montaje (setup)

Vemos la conexión del cable de vídeo (RGB) y teclado usb con un adaptador. Sobre esto último hablaremos más adelante.

montaje.png

Al ponerlo todo en marcha lo primero que aparece es esto.

Random Universe.png

Varios segundos después aparece esto.

initial.jpg

Y después, esto.

end.jpg

Y ahí me quedé. Parece ser que el teclado no funciona, pero hipotetizo que se debe al adaptador USB -> PS/2. O quizás se deba a que el teclado que uso no tiene F12, sólo hasta F10 (siguiendo las instrucciones que están en el primer post de este hilo), pero tiene la opción de usar F12 si se pulsa la tecla expansiva "Fn", cosa que hice, pero sin resultado.

Así que tendré que conseguir un teclado original PS/2.

Pero lo que quiero mostrar aquí es que funciona perfectamente el circuito y a la primera. En cuanto consiga un teclado PS/2 os subiré un vídeo demo del juego.

Muchas gracias Jesús por este proyecto tan grande que hace una demostración de la potencia de las FPGA, y gracias Carlos por cederme la shield que hace posible que este tipo de demostraciones sean tan sencillas de montar en un momento.

charli va

unread,
Dec 20, 2025, 7:36:33 PM12/20/25
to fpga-wars-explora...@googlegroups.com
Gracias a ti Demócrito! se vienen muchas cositas me encanta verte animado con el test!

Yo también lo cargué y va de lujo, video fluido, sonido.... me pasa igual ando sin teclado ps2, la semana que viene creo que ya tendré uno, de todas maneras cuando Jesús libere código le podemos meter otros controles y seguir evolucionando el bicho :) y ahora parece que se viene una nueva base para la Alhambra ;) ..... se pone curioso el 2026

Un abrazo familia!



Jesus Arias

unread,
Dec 21, 2025, 1:37:44 PM12/21/25
to FPGAwars: explorando el lado libre
Hola Democrito,
Tienes que cambiar el jumper que está al lado del conector PS2 al otro lado. Según la foto ahora está en USB.
Ese jumper cambia un par de resistencias de 15kOhm de pull-up (PS2) a pull-down (USB-host) 
Saludos ;)

Jesus Arias

unread,
Dec 21, 2025, 1:49:50 PM12/21/25
to FPGAwars: explorando el lado libre
Hola de nuevo
Adjunto los fuentes, y también algo de documentación. (La parte relevante está al final del PDF)
Probablemente el código necesite de una "limpieza" en condiciones. Mis disculpas 

Saludos
AlMMDefender.tgz
defrdx.pdf

charli va

unread,
Dec 21, 2025, 2:39:40 PM12/21/25
to fpga-wars-explora...@googlegroups.com
Disculpas? Jesús por favor, esto es un regalo de Navidad ;)

Millones de gracias!

Democrito

unread,
Dec 21, 2025, 4:03:15 PM12/21/25
to FPGAwars: explorando el lado libre
Entendido Jesús. Estoy fuera unos 4 días, en cuanto llegue a casa cambio el jumper de posición y si chuta hago vídeo.

Muchas gracias!

charli va

unread,
Dec 21, 2025, 4:45:26 PM12/21/25
to fpga-wars-explora...@googlegroups.com
Jesús! chapó!!! me ha encantado !!!

El truco de usar el tristate para sacar 144 colores.... brutal! estoy haciendo una cosa nueva a ver si la acabo para mandárosla y voy a usar tu truco, no había caído en usar el estado Z como un estado más para los niveles de color.

Y el uso de BAC como  gestor interno de periféricos super interesante.

Muchas gracias por la documentación, oro puro!

Un abrazo y buenas noches!

Jesus Arias

unread,
Dec 21, 2025, 5:09:23 PM12/21/25
to FPGAwars: explorando el lado libre
Hola otra vez. Olvidé decir que para usar la interfaz PS2 también hay que quitar el jumper del pull-up para USB-device.

El domingo, 21 de diciembre de 2025 a las 19:37:44 UTC+1, Jesus Arias escribió:

charli va

unread,
Dec 21, 2025, 5:22:50 PM12/21/25
to fpga-wars-explora...@googlegroups.com
Oído a navegantes, yo ando preparando una "mini guía" de la placa para estas cosillas que  Jesús y yo tenemos claro pero que los qu eya la tenéis puede llevar a equívocos.

Por cierto el ps2 es una "cucada" la gestión de señales para el que quiera echar un vistazo a la electrónica que ha diseñado JEsús.

Jesus Arias

unread,
Dec 22, 2025, 6:53:50 AM12/22/25
to FPGAwars: explorando el lado libre
Hola,
También he estado preparando esta "chuleta" para los jumpers:
JumpersAlMM.png

charli va

unread,
Dec 22, 2025, 7:24:41 AM12/22/25
to fpga-wars-explora...@googlegroups.com

Jo mo

unread,
Dec 22, 2025, 11:12:24 AM12/22/25
to FPGAwars: explorando el lado libre
Unbelievable work Jesus, but coming from you, now we  are getting used to ;-)
There are so many information in the 21 pages of your doc, that it need a deep reading for a full understanding of the subject !

It will be fun to be able to run other custom programs/roms for this 6809 processor (maybe with fixed roms for the two co-processors, 6800 for sound and  BAC uC for peripherals).
Maybe  using an assembler like asm6809.
Or even better having a BASIC for this processor+peripherals system. Maybe something like  BASIC-To-6809

Big thanks for this crazy contribution, you rule !

Jesus Arias

unread,
Dec 23, 2025, 1:28:56 PM12/23/25
to FPGAwars: explorando el lado libre
Hola a todos y ¡Feliz Navidad!
He dejado los fuentes con algunos pequeños cambios y más comentarios en la web:
Buenas noches

charli va

unread,
Dec 23, 2025, 1:35:41 PM12/23/25
to fpga-wars-explora...@googlegroups.com
Muchísimas gracias Jesús!! todo un regalazo!! 

voy a abrir un nuevo hilo con un "monstruito" que ha surgido  de este proyecto pero creo que puede tener interés de por sí y por eso en vez de continuarlo aquí os lo pasaré a parte en un rato, pero la motivación y el vídeo de ejemplo es gracias al DEFENDER.

Un abrazo y ¡Feliz Navidad!



Democrito

unread,
Dec 29, 2025, 6:24:49 PM12/29/25
to FPGAwars: explorando el lado libre
Hola Jesús:

He probado a poner en marcha el juego AlMMDefender, esta vez con los jumpers en la posición correcta (o eso espero). Pero el problema que tengo persiste porque mi teclado no tiene "F12", sólo llega hasta "F10" y para conseguir "F11" y "F12" hay que pulsar una tecla llamada "Fn". Creo que ese es el problema, "que hay que mantener pulsada otra tecla para acceder a la elegida".

Teclado usado (porque no tengo otro, es a través de un conversor USB->PS/2 )

KeyBoard.png

Configuración de los jumpers en la shield:

Shield_jumpers.png

He estado mirando el archivo "Keyb.v" dentro del proyecto "AlMMDefender.tgz" para cambiar esa opción a alguna tecla más accesible y que no fuese usada. Pero no tengo idea de cómo "compilar" el proyecto completo.

<<
always @(posedge clk)
if (newsc) begin
if (scancode==8'h3C) swra[0]<=~rel; // (U) Auto Up
if (scancode==8'h43) swra[1]<=~rel; // (I) Advance
if (scancode==8'h04) swra[2]<=~rel; // (F3) Coin R
if (scancode==8'h2d) swra[3]<=~rel; // (R) Reset Hi-score
if (scancode==8'h06) swra[4]<=~rel; // (F2) Coin Center
if (scancode==8'h05) swra[5]<=~rel; // (F1) Coin L

if (scancode==8'h14) swia[0]<=~rel; // (ctrl) Fire
if (scancode==8'h11) swia[1]<=~rel; // (Alt) Thrust
if (scancode==8'h32) swia[2]<=~rel; // (B) Bomb
if (scancode==8'h33) swia[3]<=~rel; // (H) Hypers
if (scancode==8'h1e) swia[4]<=~rel; // (2) Two players
if (scancode==8'h16) swia[5]<=~rel; // (1) One player
if (scancode==8'h59) swia[6]<=~rel; // (shiftR) Reverse
if (scancode==8'h1c) swia[7]<=~rel; // (A) Down

if (scancode==8'h15) swib   <=~rel; // (Q) Up

if (scancode==8'h07) kreset <=~rel; // (F12) System reset
end

endmodule
>>

Entonces mi pregunta es si sería posible cambiar la tecla "F12" para comenzar el juego por otra tecla más accesible, como por ejemplo la tecla "escape" (Esc) y volverlo a "compilar". Mi problema es no saber sintetizar todo esto para sacar el ".bin", hasta ahora sólo he manejado Icestudio.

Saludos.

charli va

unread,
Dec 30, 2025, 3:57:56 AM12/30/25
to fpga-wars-explora...@googlegroups.com
Buenas! yo no tengo teclado ps2, ni usb compatible con ps2, he probado varios que tengo pero como otras veces ninguno me ha funcionado, deben ser "demasiado modernos" aunque sean básicos y no funcionan a lowspeed ni llevan el protocolo ps2 en su firmware.

Así que te paso el bitstream para que lo puedas probar, te he metido la tecla F10 duplicada con la F12 por no perder la funcionalidad original.

Aviso a navegantes de OSX, la toolchain de yosys en estos diseños complejos que estamos trabajando está "fallando" he descubierto un bug que voy a reportar al proyecto de yosys en cuanto lo depure un poco más pero en OSX los bitstreams tanto de de defender como de larva pueden estar corruptos, solo por si alguien se pone a construirlo en osx y se le queda la pantalla en negro no es problema del proyecto sino de la toolchain, al algoritmo ABC se rompe en un momento dado y deja el bitstreams sin cosas por conectar debido a optimizaciones que ha hecho el compilador de arm del osx en yosys (llevo varios días atascado con varias cosas por este motivo y gracias a la tecla de Demócrito he encontrado el problema y ha sido un alivio que no fuera del código verilog porque estaba empezando a creer en los fantasmas!! )

También os adjunto el verilog del teclado con la tecla F10 añadida.

¡A disfrutar!


--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el...@googlegroups.com.
keyb.v
combi.bin

Democrito

unread,
Dec 30, 2025, 8:54:41 AM12/30/25
to FPGAwars: explorando el lado libre
Muchas gracias Carlos!

Ha funcionado perfectamente! Hay que meter monedas con F3, F2, F1 y luego pulsar la tecla '1' para un jugador ó '2' para dos jugadores, y se pone en marcha.
QA para subir y bajar, Ctrl para disparar, Alt para avanzar, etc. Todo va muy bien.

Os dejo con un vídeo demo: https://www.youtube.com/watch?v=YOE385xb8u4

Saludos y gracias a Jesús por esta demo para nuestras shield y Carlos por el empuje para que fuese posible!

charli va

unread,
Dec 30, 2025, 9:16:24 AM12/30/25
to fpga-wars-explora...@googlegroups.com
Muy buena Demócrito!! os voy mandar una cosita en breve que con las fiestas no pude acabar de ponerle el lazo para pasárosla relacionado con esto.

Un gran abrazo y gracias por el vídeo!!!

Jo mo

unread,
Dec 30, 2025, 10:35:42 AM12/30/25
to FPGAwars: explorando el lado libre
The video looks really nice Democrito! a little taste of the 80's :-)
Thanks to Carlos and Jesus for this nice arcade game on the alhambra !  

charli va

unread,
Dec 30, 2025, 10:38:56 AM12/30/25
to fpga-wars-explora...@googlegroups.com
All the credit goes to Jesus; I've only contributed a tiny bit to this. It's a fantastic adaptation.

Jesus Arias

unread,
Jan 7, 2026, 5:57:23 PMJan 7
to FPGAwars: explorando el lado libre
Hola de nuevo y feliz 2026!!!
He descubierto que aunque los triestados en los pines de vídeo se simulaban como correctos Yosys los ha sintetizado mal y sólo tenemos 4 niveles de color en lugar de los 6 previstos.
Así que he tenido que cambiar un poco el código para que siendo más explicito con los triestados se sinteticen bien. 
He dejado la nueva versión aquí:

Los cambios están al final del archivo "video.v", y el binario para pruebas rápidas va adjunto.
Lo cierto es que sí que se notan los cambios, sobre todo en las animaciones de "paleta" del juego, ahora que realmente tenemos los 144 colores
(También hay otro cambio en el micro BAC que ahora sólo tiene 16 bytes de RAM de datos, y aunque ocupe un poco más nos ahorra una BRAM)

Buenas noches
combi.bin

charli va

unread,
Jan 8, 2026, 12:43:46 PMJan 8
to fpga-wars-explora...@googlegroups.com
Está fantástico Jesús!  el tema de los triestados me ha sorprendido estos últimos proyectos que estamos simulando, he andado investigando y parece ser que desde hace varios yosys el algoritmo ABC optimiza mucho mejor en general pero los triestados "se rompen" ya iremos encontrando formas de hacer las cosas bien y sabiendo que no fallan ,yo ahora ya siempre que uso triestados reviso el log de la síntesis para segurarme de que están sintetizados.

En cualquier caso la recreación es estupenda y el poder sacar 144 colores una pasada.

Gracias!

Jesus Arias

unread,
Jan 13, 2026, 9:55:22 AMJan 13
to FPGAwars: explorando el lado libre
Hola otra vez.
Como es algo parecido al videojuego anterior aprovecho este hilo para presentar otro juguete: un ZX Spectrum simplón, aunque funcional:

20260113_152935.jpg

20260113_153059.jpg
Los jacks de audio ahora son la interface del "cassette" y supuestamente deberían funcionar con un cassette real. Yo en cambio he preferido reproducir una versión .WAV de la cinta con el juego (y con cargador "turbo" ;) desde el PC
El teclado es una pesadilla. Pero también lo era en el original. Esta foto es imprescindible para localizar los comandos:
speckeys_jpg.jpg

Ejemplo, para escribir LOAD ""
J <alt_gr>-P <alt_gr>-P

Saludos
combi.bin
AlMMZX.tgz

charli va

unread,
Jan 13, 2026, 10:40:50 AMJan 13
to fpga-wars-explora...@googlegroups.com
Joder Jesús .... me encanta! me quito el sombrero! 

¡ En cuanto pueda lo pruebo !

Jo mo

unread,
Jan 13, 2026, 3:18:33 PMJan 13
to FPGAwars: explorando el lado libre
Nice one Jesus,

And it is almost 3d  ;-)

i found a little youtube video a bout that old "isometric" game

Gracias for sharing!

Jesus Arias

unread,
Jan 13, 2026, 5:37:00 PMJan 13
to FPGAwars: explorando el lado libre
Hola,
Como suele ocurrir, una vez que publicas algo descubres que tenía algo mal. En este caso lo que faltaba era incluir una línea
`define TV80_REFRESH
para que el Z80 se sintetice incluyendo su registro 'R'. Esa era la causa de que fallasen algunos juegos que he probado.
Aprovechando la ocasión también he cambiado la tecla asociada a "Symbol Shift", que ahora es <control> en lugar de <AltGr>, y así coincide con la del emulador "Retro Virtual Machine"
And nice Knight Lore video (with a player far better than me ;)
Buenas noches
AlMMZX.tgz
combi.bin

Obijuan

unread,
Jan 13, 2026, 11:53:40 PMJan 13
to FPGAwars: explorando el lado libre
Impresionante Jesús!!! Esto es un logro increíble! En cuanto pueda lo pruebo

El Knight Lore es uno de esos juegos que nos marcó a muchos. No dejo de maravillarme de cómo era posible, con sólo 48K crear un juego de ese tipo, con esos gráficos isométricos...

Es apasionante el disponer de un pequeño zx-spectrum en la FPGA

Muchísimas gracias por todo tu trabajo

Saludos, Juan

Democrito

unread,
Jan 14, 2026, 3:23:00 AMJan 14
to FPGAwars: explorando el lado libre
Hola,

Lo probé anoche, las dos versiones (normal y corregida) pero no he conseguido que cargase el juego. El ZX sí funciona porque responde al teclado y sale el mensaje correspondiente. Estos son los pasos que hice:

1.) Pulso la tecla 'j', y responde en la pantalla con un "Load"
2.) Manteniendo apretada "Alt" en la primera versión o "Ctrl" en la segunda versión, luego pulso dos veces la tecla 'p', y responde en la pantallas con """" (comillas dobles, dos veces).
3.) Pulso "Enter".

Previamente había sacado el archivo "loreturbo.wav" del archivo comprimido porque entiendo que es ahí donde está el juego. Le doy al Play en el ordenador y en la pantalla aparece un rectángulo blanco bastante grande con un fondo que se alterna de forma no periódica el color rojo y un azul muy clarito. Cuando termina de cargar sigue igual, pero ahora manteniendo el rectángulo blanco grande con el fondo azul clarito. Dejo pasar un poco de tiempo por si las moscas, pero se mantiene así indefinidamente.

Lo he probado con diferentes niveles de volúmenes: 82%, 50%, 23%, 15%, etc, pero sin resultado.

Luego haré otra prueba en la que acabo de caer ahora, creo que el sonido lo tengo ecualizado...

Saludos.

Democrito

unread,
Jan 14, 2026, 3:57:29 AMJan 14
to FPGAwars: explorando el lado libre
He desactivado el ecualizador, pero ocurre lo mismo. A ver si otra persona se anima a probarlo para ver si soy un caso aislado.

Jesus Arias

unread,
Jan 14, 2026, 9:45:38 AMJan 14
to FPGAwars: explorando el lado libre
Hola Demócrito,
Parece que la señal de audio tiene poca amplitud, o puede que ninguna. Comprueba con unos auriculares que el .WAV se oye alto en la salida de audio del PC, que hoy en día con las pantallas HDMI no sería raro que el audio estuviese rutado a otra parte. 
Suerte ;)

Obijuan

unread,
Jan 14, 2026, 11:07:12 AMJan 14
to FPGAwars: explorando el lado libre
Hoy he puesto en marcha el juego del Defender, con el que Jesús abrió este hilo, y estoy impresionado. Primero porque yo era un niño cuando este juego estaba en las recreativas de los bares, y me quedaba absorto viendo cómo jugaban los "mayores"
Y segundo por tenerlo funcionando en una FPGA Libre... Ahora cualquiera puede comprender cómo está hecha la circuitería, y ¡modificarla!. Y cualquiera lo puede sintetizar en placas de bajo coste, utilizando únicamente herramientas libres

Este es el escenario que tengo montado para las pruebas:

2026-01-14-foto-02-entorno1.jpg

En la izquierda está el monitor VGA, el teclado PS2 y la Alhambra-II con la placa Multimedia Shield. También tengo conectados unos cascos (no tengo amplificador)  
En la derecha está el portátil, que sólo lo uso para configurar la FPGA inicialmente y alimentar la Alhambra + Multimedia-shield por el USB

Cuando arranca la primera vez aparece la pantalla de setup:

2026-01-14-foto-05-inicio3.png

En este vídeo se puede ver lo que ocurre desde que se alimenta la FPGA hasta que aparece esta pantalla:


Al pulsar F12 se realiza de nuevo el test y ahora ya arranca el juego

2026-01-14-foto-06-inicio4.png

En este vídeo está esta secuencia:


Lo siguiente es jugar. Se pulsa F1 para introducir moneda y luego la tecla "1" para comenzar:

2026-01-14-foto-09-juego1.png

En este vídeo se puede ver en acción (con sonido): https://www.youtube.com/shorts/XGTCcUD8b2o

La experiencia es muy impactante. Yo estoy todavía en shock....

Estoy subiendo las fotos y las pruebas en esta wiki:  https://github.com/Obijuan/Cuadernos-tecnicos-FPGAs-libres/wiki/ZX%E2%80%90Spectrum

Voy a seguir haciendo pruebas

¡Muchísimas gracias Jesus!

Saludos, Obijuan


Jesus Arias

unread,
Jan 14, 2026, 12:06:40 PMJan 14
to FPGAwars: explorando el lado libre
Hola
Me alegro que el clon de la Defender te resulte "impactante" ;) Sólo quería comentarte un par de cosas:
- El documento defrdx.pdf tenía alguna errata en el cronograma. Mejor usa este otro: https://www.ele.uva.es/~jesus/DEFENDER/defrdx.pdf
- Las teclas U, I, y R también tienen uso. U e I sirven para entrar y moverse por los menús de test y configuración, mientras que R "borra" los records. La máquina original tenía una pequeña RAM alimentada con una batería para almacenar estos datos pero aquí se pierden cada vez que apagamos la placa (por eso hay que iniciar la máquina dos veces. El primer reset escribe la RAM no volátil con valores por defecto correctos, y a al segundo intento ya se entra en el juego)
Saludos

Jesus Arias

unread,
Jan 14, 2026, 1:06:23 PMJan 14
to FPGAwars: explorando el lado libre
Hola de nuevo
Dejo otra revisión del Spectrum, esta vez con un VU-meter en los 5 LEDs altos de la Alhambra para visualizar los cambios de amplitud de la entrada del cassette.
Conviene tener el volumen alto, en mi caso por encima del 60% en el control del PC, lo que equivale a 3 LEDs encendidos en el VU-meter

Saludos
combi.bin
AlMMZX.tgz

Obijuan

unread,
Jan 16, 2026, 6:23:11 AMJan 16
to FPGAwars: explorando el lado libre
Hola,

He probado el ZX-Spectrum.  Funciona perfecto! (he usado el último bitsttream enviado por Jesús).  El Spectrum fue el primer ordenador que tuve, con 11 años, y con el que empecé a programar. Me trae una cuerdos buenísimos! (Gracias Jesús!! Eres un Grande!!!)

2026-01-14-foto-10-zx-spectrum-inicio.png

Es este vídeo de youtube podéis ver el funcionamiento (con sonido). Hago un cutre-programa de 2 lineas para probar:


También he puesto en marcha el Knight Lore.... y .... madre mía... ya no tengo palabras para describir mi emoción
En cuando pueda subo fotos

Estoy tomando notas en esta wiki:


Grande Jesús. Muy grande! Gracias!

Saludos, Obijuan

Jesus Arias

unread,
Jan 16, 2026, 2:03:44 PMJan 16
to FPGAwars: explorando el lado libre
Hola a todos,
Lo cierto es que este hilo nos está delatando una edad... ;) En fin. Hace un tiempo había diseñado junto con un alumno una placa a propósito para estos juegos que tenía una memoria externa de 128 KB (SIMRETRO). En realidad lo único que impedía portarlos a la Alhambra era el no disponer de más memoria, pero ahora con la PSRAM de la placa multimedia aunque sea un poco enrevesado se puede. El Spectrum es en realidad un clon muy simple ya que estoy poniendo una memoria de vídeo "fantasma" en BRAMs. Esa memoria la escribe el Z80 en paralelo con la PSRAM pero sólo la lee el controlador de video, con lo cual no hay que arbitrar los accesos (En el Defender sí que el video estaba en la PSRAM y eso complicaba las cosas). De modo que una vez resuelto el acceso a la memoria el Spectrum no tiene gran complicación.

Tengo alguna documentación aquí: https://www.ele.uva.es/~jesus/SIMRETRO/ZX.pdf aunque está sin actualizar y trata también de un clon de Amstrad-CPC, que podría ser el siguiente a portar (Y también debería suavizar un poco mis críticas en ese documento, que para eso ya están los influencers de forocoches ;)

Saludos

charli va

unread,
Jan 16, 2026, 2:24:53 PMJan 16
to fpga-wars-explora...@googlegroups.com
Estos ports están brutales Jesús, gracias por compartirlos porque la verdad son una maravilla.

un gran abrazo!

--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el...@googlegroups.com.

Obijuan

unread,
Jan 17, 2026, 5:55:18 PMJan 17
to FPGAwars: explorando el lado libre
Os adjunto una fotos de Knight-Lore en Funcionamiento:

2026-01-17-Img10-knight-lore-carga5.png

En este vídeo lo podéis ver en funcionamiento:


No me cansaré de dar las gracias a Jesús por esta maravilla :-)

Saludos, Obijuan



Jesus Arias

unread,
Jan 19, 2026, 11:38:22 AMJan 19
to FPGAwars: explorando el lado libre
Hola a todos
Adjunto un documento un poco actualizado con los detalles del diseño del Spectrum (están en la sección Alhambra-II)
Y sigo peleándome con el port del Amstrad CPC464, el otro ordenador "vintage" que me faltaba ( y de momento va ganado él :( aunque también he conseguido que la criatura de alguna señal de funcionamiento)

Saludos
ZX_Alhambra.pdf

charli va

unread,
Jan 19, 2026, 12:20:57 PMJan 19
to fpga-wars-explora...@googlegroups.com
Mil gracias Jesús! ya he probado el ZX, pero no he podido darle mucha cancha igual que el defender porque ando sin teclado ps2, el próximo finde como tarde andaré por casa y ya haré sesión de pruebas, aunque el código si que me lo he estado mirando y me ha venido muy bien ando con algunas ideas comunes en otras cosas que estoy preparando  y me ha gustado ver como resuelves ciertas cosas a ver si pronto os paso cosas.

Por cierto el Amstrad cpc464 fue mi primer ordenador, algo tardío (mis amigos ya tenían PC en aquellos años) pero para mi, fue un faro hacia el futuro, siempre recuerdo mi primera experiencia picándome el código basic de un marcianitos que venía en el manual, dedito a dedito y en ese momento sin tener ni idea de nada, no sabía que se podía guardar y ¡bingo! tras escribir las nosecuantas mil líneas durante no se cuantas horas...., run.... error.... a la mierda.... dije, no pienso programar en mi vida...." y el resto es historia 😅

Con tu frase me he imaginado así al código del Amstrad esperándote paciéntemente ..... Dale caña!




--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el...@googlegroups.com.

charli va

unread,
Jan 19, 2026, 3:51:05 PMJan 19
to fpga-wars-explora...@googlegroups.com
Yo ando preparando bloque para icestudio para disfrutar la shield :) y entre el doom y las pruebas, me he encontrado varios problemas con los módulo que andaba preprando de psram (de echo he borrado el repo porque con estas pruebas en profundidad fallaba más que una escopeta de feria y con las vueltas que le he dado estas semanas ese código inicial había quedado super complejo) , al igual que con los del pequeño ordenador inicial que tampoco me ha funcionado a buen rendimiento, cuando le doy "caña" se vuelven inconsistentes, a veces se bloquean....

Así que al final lo he reescrito me ha gustado mucho la idea que has tenido de usar BAC he cogido tu concepto y me ha ayudado una barbaridad a depurar, esto le voy a dar mucha caña próximaente porque si siempre me gustó ahora uqe lo he puesto en práctica me ha parecido ultra útil y me ha dado ideas para usarlo en icestudio como elemento de debug embebido, ya os contaré.

De momento para las pruebas que estoy haciendo me he buscado un reto más "sencillo" para estabilizar los módulos y inspirado por ti he cogido un arcade más básico y he partido de un core para la Mister, y de momento en la verdad muy poco tiempo, va saliendo esto ....a ver si alguien adivina.....

IMG_6476.jpg

Jesus Arias

unread,
Jan 19, 2026, 5:04:11 PMJan 19
to FPGAwars: explorando el lado libre
¡¡Space Invaders!! 
¡¡Uff! No sé si ese juego era de los que usan "Sprites", algo bastante habitual por aquella época para ahorrar RAM. (Defender no los tiene)
Te comento como va el Amstrad CPC. Prácticamente está funcionando y hasta he podido cargar juegos y van bien. Lo lamentable es que falla lo más básico: El scroll del texto en BASIC.
Pantalla de 128x192 y 16 colores: 20260119_204230.jpg

El problema del scroll: fallo.jpg
Lo bueno es que ya creo haber identificado el problema: Durante los accesos Burst a la PSRAM la dirección de la memoria de vídeo cruza un múltiplo de 2K, lo que no es raro ya que las líneas son de 80 bytes y la dirección base del video se incrementa para facilitar el scroll. En el original los 11 bits LSB de la dirección de vídeo se hacían 0, pero en la PSRAM las direcciones siguen avanzando. Voy a tener que detectar estos casos y hacer dos lecturas burst en lugar de una sola cuando se producen. En resumidas cuentas: un cambio gordo y engorroso...

Buenas noches

charli va

unread,
Jan 19, 2026, 5:09:59 PMJan 19
to fpga-wars-explora...@googlegroups.com
Menuda pinta!!! que ganas de probarlo.

Justo me he estado pegando hace nada con el burst yo también por el salto entre páginas que me cambia la latencia y me estaba haciendo csas raras, no sé si tendrá que ver esto con lo que andas liado.

Yo voy  teniendo un módulo de momento parece que más sólido que los anteriores aunque quiero testarlo bien y no precipitarme a mandaros algo que falle "aleatoriamente" que me ha tenido unos días loco cazando fantasmas pensando que el módulo anterior estaba bien y era el foco de mis problemas.

Aunque engorrosa nos va a dar juego la pequeña memoria.

Jesus Arias

unread,
Jan 21, 2026, 1:42:27 PMJan 21
to FPGAwars: explorando el lado libre
Hola,
Creo que finalmente he resuelto el problema del "wraparound" sin complicarme demasiado. Ha bastado con hacer que las lecturas en "burst" sean de una potencia de 2, así que ahora para leer una línea de video en lugar de un único burst de 80 bytes tengo 5 bursts de 16 bytes.
Adjunto el diseño junto con la imagen a grabar por si alguie quiere probarlo. El Amstrad es mucho más cómodo para programar BASIC que el Spectrum, aunque desgraciadamente alguna tecla ha quedado fuera de su sitio y he tenido que recolocarla en teclas como:
AltGr -> ; +
Windows -> :
Ç -> @ |
Bloq. Desp -> Reset

Espero que este clon funcione bien y os guste.
Saludos

20260119_233412.jpg
combiCPC.bin
AlMMCPC.tgz

charli va

unread,
Jan 21, 2026, 1:51:24 PMJan 21
to fpga-wars-explora...@googlegroups.com
¡Que grande eres!! y yo sin teclado.... madre mia...mañana me paso por el bazar sin falta XD ahora lo arranco aunque sea para verlo en marcha. 

charli va

unread,
Jan 21, 2026, 2:13:22 PMJan 21
to fpga-wars-explora...@googlegroups.com
Probado! hoy no puedo pasar de aquí, pero mañana habrá prueba intensa XD mil gracias Jesús , me parece una pasada que podamos disfrutar de estas recreaciones con fpgas con tan pocos recursos es todo un lujo poder ver estos códigos, aquí la prueba:

IMG_6484.jpg


Y aquí como voy yo.... hoy es a mi a quien me va ganando, aunque al menos ya tengo el 8080 en funcionamiento y empezando a funcionar el vídeo, pero se me queda clavado al inicio, ... no sabe con quién se "ha metido" XD :

IMG_6482.jpg

Un grandísimo abrazo!


Jesus Arias

unread,
Jan 22, 2026, 3:11:54 AMJan 22
to FPGAwars: explorando el lado libre
Suerte con los Invaders ;)
Yo olvidé adjuntar algo de documentación acerca del clon. Va en este mensaje. 
ZX_CPC_Alhambra.pdf

Obijuan

unread,
Jan 24, 2026, 6:35:42 AMJan 24
to FPGAwars: explorando el lado libre
Ya he probado el Amstrad CPC... y la verdad es impresionante. Funciona perfecto!

2026-01-24-foto-01-cpc.png


He probado a cargar el Knight-Lore, y también ha ido todo perfecto. Muchísimas gracias Jesus. Esto es un trabajazo!

2026-01-24-foto-02-cpc-knight-lore.png

Saludos, Obijuan

Jesus Arias

unread,
Jan 24, 2026, 1:13:19 PMJan 24
to FPGAwars: explorando el lado libre
Hola
En realidad estas réplicas ya las tenía funcionando en otra placa de las mías, así que una vez que resolví la conexión de la PSRAM el resto fue casi un corta-pega. También tenía un Apple-2, pero ese necesitaba un emulador de disquetes que aquí no va a ser fácil de poner pues los pines de la PSRAM son los mismos de la tarjeta SD. 
El clón que parece que vamos a poder tener pronto en la colección es la máquina de los "Space Invaders", aunque sospecho que sin sonido, ya que por lo que he visto la placa de audio de la maquinita está llena de analógica (y con operacionales Norton, para complicar más la cosa), literalmente con un circuito por cada sonido posible. 
Por cierto, Carlos, no te olvides de los celofanes de colores de la pantalla ;)
Saludos

charli va

unread,
Jan 24, 2026, 1:43:58 PMJan 24
to fpga-wars-explora...@googlegroups.com
Con el temporal de nieve no he podido volver a casa el finde así que no voy a poder tener teclado ps2 a mano, he bajado a varios bazares y me he comprado un teclado que parecía que iba a tirar con compatibilidad usb/ps2 pero nada, se ve que ya hasta los malos ya no soportan ps2..... ya me inventaré algo estos días para quemar el amstrad XD

El spaceInvaders va avanzando, me ha tenido atascado un tema de las interrupciones del i8080, no había utlizado este micro nunca en la fpga y me ha costado encontrar un core que se acople bien a nuestras pequeñas. Casi todos los que he encontrado estaban planteados para fpgas grandes tipo altera o xilinx y a parte de barbaridad de recursos, usaban primitivas propias o algunos  estaban escritos en vhdl. 

Pero bueno, al final ya localicé uno y tras algunas pruebas de ensamblado aséptico para ver como iban las señales y los relojes tengo ya uno andando y está llendo muy bien. 

El sonido aun no lo he tocado aún pero se andará ;)

Tu documentación del Apple-2 la miré hace tiempo, me pareció brutal, algo habrá que inventarse para echarlo a andar XD.

Espero daros noticias pronto!




--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el...@googlegroups.com.

Jesus Arias

unread,
Jan 24, 2026, 4:57:49 PMJan 24
to FPGAwars: explorando el lado libre
Hola Carlos,
Pensaba que usarías el core TV80, que aunque sea para  un Z80 también se puede "recortar" hasta dejarlo con sólo las instrucciones del 8080 (con el parámetro Mode=2)
Por lo demás parece que la borrasca os ha afectado más que a nosotros. 
Buenas noches

charli va

unread,
Jan 24, 2026, 5:02:37 PMJan 24
to fpga-wars-explora...@googlegroups.com
Pues no había caído!!! pues un experimento el sustituir uno por otro , lo probaremos! ;)

Siempre tengo el Z80 como retrocompatible con el 8080 pero en este caso como partí de la máquina básica total, me obcequé con el 8080 y no caí en tirar de su sucesor espiritual XD

La borrasca está pegando fuerte sí, lo peor no era ir sino que el lunes tenía que volver y ya me pasó un año que nos quedamos encerrados varios días XD mejor prevenir que curar como se suele decir.

Vamos a ver si esto termina de andar !

charli va

unread,
Jan 25, 2026, 2:16:32 PM (14 days ago) Jan 25
to fpga-wars-explora...@googlegroups.com
Esto empieza a funcionar XD aunque sea un sólo marcianito y los marcadores :)

IMG_6490.jpg

Me plantee abordar el Space Invaders porque pensé que era "bastante sencillo" pero me estoy encontrando con retos interesantes de resolver y me está ayudando más de lo que pensaba a depurar y probar cosas para el nuevo Icestudio, ¡disfrute total!

Esta semana tenemos Marcianitos asegurados y el teclado PS2 para darle al Amstrad lo tengo en vía de solución mañana.o pasado ya lo podré probar en condiciones.

Un abrazo a todos!

Jesus Arias

unread,
Jan 26, 2026, 3:25:44 AM (13 days ago) Jan 26
to FPGAwars: explorando el lado libre
Ya va teniendo el "look" esperado ;)
Aunque pienso que habría que rotar la imagen para no acabar con tortícolis , y lo malo es que con 320x240 nos faltan líneas. Puede que tengas que subir la resolución a 800x600 (en realidad a 400x300) para que quepa la imagen rotada aunque se vea más pequeña.
Por otra parte he visto que esa maquina tenía un "coprocesador" para desplazamientos de bit conectado a los puertos de E/S. Ese hardware se usaría para modificar las imágenes de los marcianitos dependiendo de su posición en la pantalla. Realmente los Space Invaders no son tan simples como parecían...
Buenos días

charli va

unread,
Jan 26, 2026, 4:15:15 AM (13 days ago) Jan 26
to fpga-wars-explora...@googlegroups.com
Sí! lo tengo en mente (lo de rotarlo) de momento quiero que refleje la "máquina real". y sí tamién he implementado el "shifter" lo usa para pintar los pixels, en memoria empaqueta los pixels de 8 en 8 porque es monocromo pero para pintar los tiene que ir "serializando" y el 8080 no tenía esa capacidad, os voy a documentar todo esto porque realmente como siempre pasa con estas máquinas antiguas se acaban aprendiendo un montón de cosas y siempre acabo con la misma sensación "estos tios eran unos genios".

Un gran abrazo y mil gracias por los comentarios que siempre me aportan muchísimo.

charli va

unread,
Feb 5, 2026, 3:26:54 AM (3 days ago) Feb 5
to fpga-wars-explora...@googlegroups.com
Para todos los que le guste el BASIC y el Amstrad, han lanzado un concurso divertido:


Por si alguien se anima, ahora podemos hacerlo desde nuestras Alhambras ! :)

Reply all
Reply to author
Forward
0 new messages