Installation de WLA-DX pour programmer pour Super Nintendo sous Windows

ABD-Z

Ce tutoriel vous expliquera en détail comment développer confortablement pour Super Nintendo sous Windows en installant WLA-DX. Il détaillera la partie « IV-A. Compilation avec WLA-DX » du tutoriel de Kannagi.

Commentez

- Titre : Installation de WLA-DX pour programmer pour Super Nintendo sous Windows

- Auteur : ABD-Z

- Parution : 31 janvier 2017

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2017 ABD-Z. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Prérequis

- II. Téléchargement des fichiers de WLA-DX

- III. Téléchargement de CMake et compilation des fichiers

- IV. Développer avec Sublime Text

- V. Testons tout ça !

- VI. Conclusion

I - Prérequis

Pour compiler votre WLA-DX, vous devez installer un compilateur. Dans ce tutoriel, nous utilisons MinGW, téléchargeable ici.

Bien entendu, pour faire tourner vos programmes dédiés à la Super Nintendo, il vous faut évidemment un émulateur de la console (SNES9x, ZSNES…).

II - Téléchargement des fichiers de WLA-DX

Allez sur le GitHub de vhelin, le codeur du compilateur. Procédez au téléchargement de ces fichiers en cliquant sur le bouton « Clone or download » puis « Download ZIP ». Dézippez le contenu et mettez-le dans votre répertoire.

Par réflexe, lorsqu'on dézippe un logiciel comme un compilateur, on recherche le fichier .exe, c'est-à-dire le programme, or visiblement il n'y en a pas ! Il faut compiler tous les fichiers .c !
Heureusement que le fichier nommé INSTALL va nous donner une petite piste, voici le début :

To generate the makefiles, go to the wla-dx main folder, and write

cmake -G "Unix Makefiles" . ; under Unix / OS X / Cygwin
cmake -G "MSYS Makefiles" . ; under MSYS/MinGW
cmake -G "MinGW Makefiles" . ; under (plain) MinGW
cmake -G "NMake Makefiles" . ; if you wish to use NMake

Il faut donc utiliser le shell (la ligne de commande de Windows). Changez de répertoires (cd nom_dossier) jusqu'à arriver au dossier principal de wla-dx que vous avez dézippé.

Pour aller plus vite, dans la fenêtre du dossier, tapez « Shift+Clic Droit » puis cliquez sur « Ouvrir une fenêtre de commande ici ».

Ensuite, en fonction de votre système d'exploitation, la commande cmake vous permettra de générer les fichiers configurant la compilation qui spécifient comment générer les fichiers cibles ; en résumé, ce sont des fichiers qui contiennent des directives pour générer nos exécutables.
Après avoir accédé au dossier « wla-dx-master », tapez « cmake -G "MinGW Makefiles" ». Et mince… ça ne fait rien, puisque cmake n'est pas reconnu en tant que commande !

III - Téléchargement de CMake et compilation des fichiers

La seule solution est donc de télécharger cette commande externe. Allez sur le site officiel de CMake : https://cmake.org/download/ ; puis télécharger son installeur pour Windows.
Installez le logiciel.

Les options par défauts de l'installateur sont appropriées pour notre cas.

Maintenant, vous pouvez lancer la commande cmake -G "MinGW Makefiles" dans l'invite de commande dans le répertoire « wla-dx-master » ! Remarquez que le dossier CMakeFiles est généré.

Enfin, tapez « mingw32-make », c'est l'équivalent de « make » en Linux : ceci correspond à l'étape de la compilation qui ne prend en effet pas mal de temps (vous verrez les lignes de votre invite de commande se colorer en rose, bleu, vert et vert clair !).

Aucun nom de dossier, du chemin de « wla-dx-master », ne doit comporter un caractère spécial, sinon « mingw » ne pourra pas compiler ! On oublie les accolades, les accents…

Ensuite, après la fin de la compilation, nous allons rajouter le chemin du dossier « binaries » dans la variable d'environnement PATH ; comme cela, les commandes de compilations de langages d'assemblage sont maintenant disponibles dans le système en tant que commande externe. Dans « Panneau de configuration → Système et sécurité → Système », cliquez sur « Paramètres système avancés » : une fenêtre s'affichera, cliquez sur « Variables d'environnement » ; dans la fenêtre « Variables d'environnement », cherchez « Path » dans « Variables système » et cliquez sur « Modifier », puis, dans la fenêtre qui vient de s'afficher, cliquez sur « Nouveau » et mettez le chemin du dossier « binaries ». Validez en cliquant sur « Ok ».

Maintenant, vous pouvez commencer à programmer pour la Super NES, le SPC-700 (l'APU de la Super NES), ou encore la NES et autres vieilles consoles…

IV - Développer avec Sublime Text

Mais le confort de développement pour Super Nintendo n'y est pas encore : tout d'abord le code vous l'écrivez dans le bloc-note (sans aucune coloration syntaxique), et puis le processus de compilation et d'édition de lien est plutôt fastidieux. Pour tester chaque modification, il faut :

- via la ligne de commande, accéder au répertoire du projet ;

- compiler : « wla-65816 main.asm » ;

- créer un fichier temporaire « temp » contenant : [objects] main.o ;

- et enfin, procéder à l'édition du lien : « wlalink temp main.smc ».

Afin de nous faciliter le travail, je vous propose d'utiliser Sublime Text, un éditeur léger et gratuit. Si vous ne possédez pas Sublime Text, je vous invite à le télécharger : https://www.sublimetext.com/3 . Ensuite installez le « package control » comme décrit sur le site de Sublime Text sur cette page https://packagecontrol.io/installation.

Démarrez Sublime Text, nous allons télécharger la coloration syntaxique la plus proche de l'assembleur de la Super NES : celle de NASM ou celle de la NES. Faites « Control+Maj+P » puis tapez « Package » et sélectionnez : « Package Control : Install Package » de la liste déroulante. Ensuite, tapez « NES ASM » ou « NASM » et cliquez sur le résultat voulu afin de télécharger la coloration en question. Maintenant, pour sélectionner la coloration que vous venez de télécharger, cliquez en bas de la fenêtre (voir image ci-dessous) : vous verrez un panneau de langage : cliquez sur « NES ASM » ou « NASM ».

Afin de profiter au maximum de la coloration syntaxique, les opcodes (comme LDA, STA, etc.) doivent être écrits en majuscules.

Ce n'est pas encore fini avec Sublime Text, nous allons écrire un script spécial pour ce logiciel afin de compiler et d'éditer le code d'assemblage en cliquant sur un bouton. Allez dans « Tools->Build System » puis cliquez sur « New Build System ». Voici le script qu'il faut écrire dans le fichier :

{
"shell_cmd":    "wla-65816 -v $file_base_name.asm && echo > temp [objects]  && echo >> temp $file_base_name.o && wlalink temp $file_base_name.smc && erase temp",
"selector":"source.ASM",
}

Enregistrez le fichier, en le nommant « 65C816 asm », dans le dossier par défaut proposé par le logiciel. Maintenant, vous pouvez le sélectionner pour la compilation.

V - Testons tout ça !

Téléchargez les fichiers du tutoriel de Kannagi.
Décompressez, puis accédez à « Base/Tuto1 » et ouvrez les fichiers « main.asm » et « header.asm » avec Sublime Text.
Démarrez le fichier « main.smc » avec un émulateur :

Comme vous pouvez le remarquer, lorsque l'on tourne un jeu sur émulateur, des informations du header sont affichées au démarrage dont le nom du jeu qui lui est différent du nom du fichier .smc . Nous allons faire une petite modification : changer le nom du jeu actuel dans le header : « Fighter Furry » (ce qui n'est pas le cas). Je vais le nommer « BG color test x) ».

Cliquez sur l'onglet « main.asm » et faites « Control+B » (raccourci pour compiler le code). Résultat : TADA ! Le titre du jeu a bien changé !

VI - Conclusion

Vous pouvez maintenant développer sur Super Nintendo confortablement, je vous conseille de bien prendre en note le tutoriel de Kannagi et de bien vous documenter sur d'autres sites comme : http://wiki.superfamicom.org/snes/show/HomePage ou bien
https://en.wikibooks.org/wiki/Super_NES_Programming .
Sur ce… je vous souhaite un bon courage.