1 puntos por GN⁺ 2023-07-16 | 1 comentarios | Compartir por WhatsApp
  • 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

 
GN⁺ 2023-07-16
Comentarios de Hacker News
  • Another World: un videojuego clásico conocido por sus gráficos impresionantes y su estilo artístico
  • El juego es corto y los acertijos dependen del método de prueba y error, pero artísticamente sigue siendo popular
  • Los fans de Another World también pueden disfrutar Flashback: The Quest for Identity
  • Existen ports de Another World para varias plataformas, incluidas Amstrad CPC, Nintendo 64 y PlayStation 1
  • El autor de este artículo usa un lenguaje HDL personalizado llamado Silice para el port a FPGA
  • Los gráficos por planos usados en Amiga tienen ventajas como efectos de transparencia y efectos de muaré
  • El uso de una máquina virtual (VM) para el juego podría haber provocado una caída de rendimiento en las PC de los 90
  • El juego tiene una apertura memorable y una jugabilidad desafiante, como escapar de un león
  • El desarrollador original de Another World dio una charla retrospectiva en la GDC sobre las herramientas de desarrollo y el proceso de animación
  • Ver un playthrough en YouTube puede ayudar a los jugadores a quienes el juego les resulta difícil