A2Adv

a2adv — des jeux d’aventure style « livres-jeu » qui tournent sur un vrai Apple II

a2adv est un petit projet en cc65 pour écrire des « livres dont vous êtes le héros » et les faire tourner sur un Apple II — pas sur un émulateur qui fait semblant, mais sur une disquette ProDOS bootable qu’une machine d’époque avale sans broncher.

On écrit l’aventure dans un format texte lisible, sur un ordinateur moderne. Un compilateur la transforme en données binaires compactes. Un moteur écrit en C les lit et joue l’histoire.

Pourquoi ?

Je suis fan de jeux d’aventures, de jeu de rôle et de livre jeu. Et pourtant écrire l’un pour l’autre a toujours été pénible : on tapait du BASIC, on comptait les octets à la main, et changer une phrase voulait dire renuméroter des paragraphes.

a2adv part de l’idée inverse : on écrit du texte, la machine s’occupe des octets. Les contraintes de 1979 sont respectées à la lettre — mais elles sont absorbées par le compilateur, pas subies par l’auteur.

Les objectifs qui gouvernent le projet

Compatibilité maximale. Le moteur vise le 6502 et un budget de 64 Ko de RAM principale : il tourne sur un Apple II tout court, pas seulement sur un //e. Les capacités supplémentaires — 80 colonnes, carte son Mockingboard, disque RAM sur 128 Ko — sont détectées à l’exécution et exploitées si présentes, jamais exigées.

Pas de limite de taille d’aventure. Le moteur ne charge jamais l’histoire entière : chaque section est lue à la demande grâce à un index. L’aventure est bornée par la capacité de la disquette, pas par la RAM.

Le moteur ne contient aucun texte de langue. Menus, invites, messages de fin, libellés d’inventaire : tout vient de l’aventure. Traduire un jeu, c’est éditer son fichier source — sans recompiler le moteur.

Ce qui marche aujourd’hui

  • Narration : sections, choix conditionnels, effets, drapeaux, objets, caractéristiques bornées, score et compteur de mouvements.
  • Combat au tour par tour (2d6 + stat, armure, modificateurs d’équipement, fuite) avec branchements victoire / défaite / fuite.
  • Énigmes à saisie : le joueur tape un mot ou un code, comparé à plusieurs réponses acceptées.
  • Affichage : pilote texte maison 40/80 colonnes (le 80 colonnes passe par la mémoire auxiliaire du //e), images HIRES plein écran ou en mode mixte, paragraphes justifiés à la largeur réelle, styles centré et inversé.
  • Son : haut-parleur 1 bit, et Mockingboard en option mais le rendu est pas encore terrible !
  • Performance : cache des données d’histoire dans le disque RAM /RAM sur machine 128 Ko, avec fenêtre glissante sur les chapitres.
  • Sauvegarde sur disquette (un emplacement).
  • Découpage en chapitres : chaque chapitre devient son propre fichier, ce qui permet des aventures de taille arbitraire.