1 points par GN⁺ 2023-07-16 | 1 commentaires | Partager sur WhatsApp
  • L’auteur a recréé en matériel le jeu "Another World" à l’aide d’un FPGA UP5K.
  • Le jeu s’exécute sur une machine virtuelle (VM) qui appelle un blitter et un rastériseur pour générer les graphismes.
  • L’auteur a réalisé des implémentations matérielles sur FPGA de la VM, du blitter et du rastériseur.
  • La conception respecte les contraintes de ressources du FPGA et utilise 128 Ko de mémoire SPRAM.
  • L’auteur a commencé par comprendre comment les données circulent à travers les données et le code du jeu.
  • La conception comprend un SoC qui relie tous les éléments entre eux et ajoute le rafraîchissement de l’affichage.
  • Le framebuffer utilise des blocs SPRAM, et chaque framebuffer correspond parfaitement à des blocs SPRAM.
  • Le contrôleur d’affichage diffuse les pixels à 25 MHz et utilise le double buffering pour éviter le scintillement.
  • Le blitter copie le contenu d’un framebuffer vers un autre ou remplit un framebuffer avec une couleur unie.
  • L’auteur a recréé avec succès le jeu sur du matériel réel, avec une conception fonctionnant sur diverses cartes FPGA.
  • Cet article traite de l’implémentation du blitter et du rastériseur dans le moteur du jeu.
  • L’unité de blitter copie les pixels pendant le vblank, tandis que l’unité de rastérisation dessine des polygones dans le framebuffer.
  • Le blitter vérifie une impulsion de démarrage et remplit une couleur si cela est spécifié.
  • Le rastériseur lit les sommets des polygones depuis une BRAM double port pour dessiner des polygones concaves.
  • Le rastériseur utilise une astuce de palette pour la transparence et peut copier des pixels depuis un autre framebuffer source.
  • Le moteur du jeu comprend un moteur de rendu de polices et prend en charge des arrière-plans pré-rendus.
  • Le processus de build comprend la copie des fichiers de données du jeu ainsi que l’exécution de simulations ou du jeu sur d’autres plateformes matérielles.
  • Cet article aborde le développement d’une conception matérielle s’exécutant sur FPGA pour le jeu Another World.
  • L’auteur mentionne aussi plusieurs tâches restant à accomplir, notamment les tests du jeu, l’ajustement du timing, la correction de problèmes de rendu et l’ajout de la musique.
  • L’auteur évoque également la possibilité de relier d’autres parties du jeu et de sauvegarder l’état de la partie.
  • Construire d’autres jeux ou démos sur cette base matérielle est également mentionné comme projet potentiel à venir.
  • L’article fournit des liens vers une série de billets de blog, des ports, des outils et des ressources associées.
  • Le design Silice utilisé dans ce projet est sous licence MIT, tandis que le port C++ modifié conserve la licence GPL d’origine.
  • L’article explique aussi des termes clés comme framebuffer, rastériseur, blitter et machine virtuelle (VM) pour les lecteurs moins familiers du secteur.

1 commentaires

 
GN⁺ 2023-07-16
Avis Hacker News
  • Another World : un jeu vidéo classique connu pour ses graphismes impressionnants et son style artistique
  • Le jeu est court et ses énigmes reposent sur des essais-erreurs, mais il reste apprécié pour ses qualités artistiques
  • Les fans de Another World peuvent aussi apprécier Flashback: The Quest for Identity
  • Il existe des portages de Another World sur diverses plateformes, dont Amstrad CPC, Nintendo 64 et PlayStation 1
  • L’auteur de cet article utilise un langage HDL personnalisé appelé Silice pour le portage sur FPGA
  • Les graphismes en plans utilisés sur Amiga présentent des avantages, comme les effets de transparence et les effets de moiré
  • L’utilisation d’une machine virtuelle (VM) pour le jeu a pu entraîner des baisses de performances sur les PC des années 90
  • Le jeu propose une introduction mémorable et un gameplay exigeant, notamment avec des séquences comme la fuite face au lion
  • Le développeur original de Another World a donné une conférence rétrospective à la GDC sur les outils de développement et le processus d’animation
  • Regarder un playthrough sur YouTube peut aider les joueurs qui rencontrent des difficultés avec le jeu