NESFab - Créez vos jeux NES avec un langage de de dev moderne

par Korben ✨ -

Vous rêvez de créer votre propre jeu pour la légendaire NES (Nintendo Entertainment System) mais le développement en assembleur vous fait peur ? C’est normal, mais arrêtez de trembler, prostré dans un coin, en mode PTSD car aujourd’hui nous allons découvrir NESFab, un langage de programmation moderne qui transforme radicalement le développement de jeux sur NES.

Car contrairement au bon vieux C, NESFab a été spécialement conçu pour tenir compte des limitations matérielles de la NES. Et le résultat c’est un code plus propre, plus rapide et surtout beaucoup plus agréable à écrire. Les développeurs chevronnés apprécieront particulièrement ses performances puisque NESFab est capable de génèrer un code machine 6502 plus efficace que GCC et LLVM !

Voici comment ça s’installe en vidéo :

Vous remarquez cette jolie syntaxe claire et moderne. Bah oui, plus besoin de jongler avec l’assembleur cryptique car NESFab s’occupe d’optimiser tout ça pour vous.

Sachez le, la NES utilise un espace d’adressage 16 bits, ce qui limite sérieusement la taille des programmes et traditionnellement, les développeurs devaient gérer manuellement le système de banques mémoire pour contourner cette limitation. Avec NESFab, tout est automatisé et le compilateur se charge intelligemment de répartir votre code et vos données dans les différentes banques.

Plus besoin non plus de scripts de conversion fastidieux puisque NESFab automatise le chargement et la conversion de vos ressources graphiques et sonores. Pour cela, il suffit de placer vos fichiers dans le dossier du projet et d’importer les bibliothèques appropriées.

NESFab est livré avec :

  • Un éditeur de niveaux intégré (MapFab)
  • Des bibliothèques optimisées
  • Une documentation détaillée
  • Et des tas d’exemples concrets

Et au final, ça peut donner des jeux comme ça.

Si ça vous intéresse, on va installer ensemble NESFab. La meilleure approche est de compiler depuis les sources :

git clone https://github.com/pubby/nesfab

cd nesfab

make release

Ensuite, on va pouvoir créer notre premier programme :

// This small program plays a sound effect.

// Variables:
vars /sound
UU pitch = 1000

// Sends 'pitch' variable to the APU, emitting sound:
fn play_sound()
{$4015}(%100)
{$4008}($FF)
{$400A}(pitch.a)
{$400B}(pitch.b & %111)

mode main()
{PPUCTRL}(%10000000)
while true
pitch *= 1.01
play_sound()
nmi

Pour le compiler :

nesfab main.fab

Et voilà ! Vous obtenez un fichier ROM (.nes) prêt à être testé dans votre émulateur préféré.

En résumé, NESFab, c’est :

  • Performance supérieure : code machine plus efficace que le C
  • Simplicité d’utilisation : syntaxe moderne et intuitive
  • Automatisation intelligente : gestion des banques et des ressources
  • Outils intégrés : tout ce qu’il faut pour créer des jeux complets
  • Documentation riche : tutoriels et exemples détaillés
  • Support limité des mappers (circuits spéciaux des cartouches)
  • Pas d’instructions illégales du 6502 par défaut
  • Projet encore en version bêta avec quelques bugs possibles
  • Communauté relativement restreinte pour le moment

Je vous conseille également de vous familiariser avec un émulateur doté d’outils de débogage comme FCEUX ou Mesen. Ces derniers seront précieux pour tester et peaufiner vos créations.

A vous de coder maintenant !

Découvrez NESFab sur le site officiel

Merci à Letsar pour l’info !