Dans cet article, nous allons voir comment un jeu d’aventure peut être adapté à l’Apple II, en explorant deux possibilités ; la programmation en BASIC Applesoft et en ZBASIC. Dans cette optique, nous utiliseront le programme « L’ivresse de l’or », jeu d’aventure développé à l’origine pour l’Amstrad CPC464.
Il s’agit donc en partie d’utiliser la méthodologie utilisée pour le portage du « Le château enchanté« , mais j’ai également voulu expérimenter la solution ZBASIC, ce langage supportant les instructions graphiques nécessaires à l’affichage de la page d’introduction du jeu.
Voici donc le résultat de cette expérimentation.
La ruée vers l’or version Applesoft
Le portage est très similaire à celui du « château enchanté », la solution comportant deux programmes Applesoft BASIC :
- intro-ivresse-or.bas qui affiche l’introduction du jeu puis appelle le programme principal
- ivresse-or-applesoft.bas qui est le programme principal
Les deux programmes sont à installer sur la même disquette dont voici une image au format DOS.3.3 :
Pour lancer le jeu il suffit, après avoir booté sur la disquette de lancer la commande :
RUN INTRO
Le jeu démarre et la page d’intro graphique s’affiche.
Nota :
J’ai essayé de coder ce jeu dans un seul fichier de programme, mais ceci n’est pas simple sous BASIC Applesoft car le passage en mode HGR écrase une partie du programme en mémoire. Il est alors impossible de l’exécuter. Il existe cependant une astuce qui consiste à décaler le programme BASIC après la zone mémoire utilisée pour le graphisme haute résolution, mais elle ne marche pas pour « la ruée vers l’or » qui est vraiment trop gros.
La ruée vers l’or version ZBASIC
La conversion en langage ZBASIC est plus simple qu’en Applesoft car ZBASIC est plus proche du Locomotive Basic de l’Amstrad. Cependant, à cause des limitations du compilateur ZBASIC qui limite la longueur des programmes, j’ai du séparer l’application en 3 fichiers :
- lance.bas, permet de lancer l’application.
- ivresse-intro-zbasic.bas, affiche l’intro graphique et les explications.
- ivresse-main-zbasic.bas, le programme principal.
A cela s’ajoute deux utilitaires :
- ivresse_data_write.bas permettant de générer le fichier texte qui contient les données du jeu (objets et lieux). Ces données sont lues par le programme principal (main).
- ivresse_data_read.bas qui lit ce fichier de données pour les afficher à l’écran.
Les fichiers sources et une image de disquette au format PRODOS (ivresse_or.do
) sont fournis dans une archive téléchargeable ici :
Pour lancer le jeu : insérer la disquette zboot128.dsk dans le lecteur 1, et la disquette ivresse_or.do dans le lecteur 2. Puis booter et saisir la commande :
RUN /IO/LANCE
La page d’intro s’affiche alors :
Il ne vous reste plus qu’à venir au bout de cette aventure. Bon courage !
Quelques explications sur la version ZBASIC
La disquette ivresse_or.do présente dans l’archive téléchargeable (voir lien ci-dessus) contient les fichiers suivants :
LANCE Programme en ZBASIC de lancement du jeu IVRINTRO.BAS Programme d'introduction (source ZBASIC cf. listing ivresse-intro-zbasic.bas) IVRINTRO Exécutable du programme précédent (après compilation) IVRMAIN.BAS Programme principal (source ZBASIC cf. listing ivresse-main-zbasic.bas) IVRMAIN Exécutable du programme principal IVR.DAT Données du jeu (objets et lieux) - fichier texte DATAWRITE Programme ZBASIC permettant de produire le fichier de données (listing ivresse_data_write.bas)
Le programme LANCE
(appelé par la commande RUN /IO/LANCE) appelle l’exécutable IVRINTRO
qui appelle ensuite l’exécutable IVRMAIN
. Ces deux exécutables sont les résultat de la compilation de programmes chainés obtenue par la commande RUN+
Les programmes chaînés en ZBASIC peuvent partager des variables. Celles-ci doivent être définies en début de programme par l’instruction DIM
et la fin de variables partagées est marquée par l’instruction CLEAR END
. Se référer au manuel ZBASIC pour plus d’information.