- El autor recreó en hardware el juego "Another World" usando un FPGA UP5K.
- El juego se ejecuta en una máquina virtual (VM) que invoca un blitter y un rasterizador para generar los gráficos.
- El autor creó implementaciones en hardware de la VM, el blitter y el rasterizador en el FPGA.
- El diseño se ajusta a los requisitos de recursos del FPGA y usa 128 KB de memoria SPRAM.
- El autor comenzó por entender cómo fluyen los datos a través de los datos y el código del juego.
- El diseño incluye un SoC que conecta todo y añade la actualización de pantalla.
- El framebuffer usa bloques SPRAM, y cada framebuffer se mapea perfectamente a bloques SPRAM.
- El controlador de pantalla transmite píxeles a 25 MHz y usa doble búfer para evitar parpadeos.
- El blitter puede copiar el contenido de un framebuffer a otro framebuffer o llenar un framebuffer con un color sólido.
- El autor recreó con éxito el juego en hardware, con el diseño ejecutándose en varias placas FPGA.
- Este artículo analiza la implementación del blitter y el rasterizador en el motor del juego.
- La unidad blitter copia píxeles durante el vblank, y la unidad rasterizadora dibuja polígonos en el framebuffer.
- El blitter verifica un pulso de inicio y rellena con color si así se especifica.
- El rasterizador lee vértices de polígonos desde una BRAM de doble puerto para dibujar polígonos cóncavos.
- El rasterizador usa un truco de paleta para la transparencia y puede copiar píxeles desde otro framebuffer fuente.
- El motor del juego incluye un motor de renderizado de fuentes y soporte para fondos prerenderizados.
- El proceso de compilación incluye copiar los archivos de datos del juego y ejecutar la simulación o jugar el juego en otras plataformas de hardware.
- Este artículo trata sobre el desarrollo de un diseño de hardware que corre en FPGA para el juego Another World.
- El autor también menciona varias tareas que aún faltan por completar, como probar el juego, ajustar el timing, corregir problemas de renderizado y añadir música.
- El autor también menciona la posibilidad de conectar otras partes del juego y guardar el estado de la partida.
- Construir otros juegos o demos sobre este hardware también se menciona como un posible proyecto futuro.
- El artículo ofrece enlaces a materiales relacionados con la serie del blog, el port y las herramientas.
- El diseño en Silice usado en este proyecto está bajo licencia MIT, y el port modificado en C++ mantiene la licencia GPL original.
- El artículo también explica términos clave como framebuffer, rasterizador, blitter y máquina virtual (VM) para lectores no familiarizados con la industria.
1 comentarios
Comentarios de Hacker News