MSXgl

msxgl-tate-logo
MSXgl est une bibliothèque C gratuite et open-source pour créer des applications sur MSX en utilisant SDCC.
La bibliothéque est architecturée autour de nombreux modules qui implémentent de façon optimisée les différentes fonctionnalités du MSX et d'un outil de génération multiplateforme (Windows, Linux et macOS) qui permet de générer en 1 click, le programme final en divers format (ROM, MegaROM, MSX-DOS et binaire BASIC).

Fonctionnalités


Formats


A partir d'un même code en C, MSXgl peut générer un code binaire utilisable sur MSX dans divers format :
#1 Pour les format 48 et 64 Ko, il est possible d'ajouter automatiquement un gestionnaire d'interruption pour remplacer celui du BIOS.

Modules


La librairie MSXgl est composé de nombreux modules qui implémentent les fonctionnalités du MSX. L'utilisateur peut choisir les modules qui sont utiles pour les besoins de son programme.

Core



Tools



Processeurs vidéo



Processeurs audio



Formats audio




Build tool


Le Build tool est un outil en ligne de commande qui s'occupe de toutes les étapes pour générer le fichier final :

Tous les programmes nécessaires pour ces étapes sont fournis directement dans le package MSXgl pour Windows et Linux. Pour ces plateformes, il n'y a donc aucun autres logiciels à installer (autre qu'un émulateur si vous voulez tester votre programme sur votre PC). Pour les utilisateurs de macOS, voir ce guide.

Émulateurs


Les émulateurs suivants sont supportés:


Installation


Pour installer MSXgl sur votre ordinateur, il faut suivre les étapes suivantes :

1️⃣ Créer un répertoire (appelez-le " MSXgl " par exemple).
Note : Il est recommandé de ne pas utiliser d'espace dans le chemin complet vers ce répertoire.

2️⃣ Installer la librairie:
- Télécharger et décompresser dans votre répertoire la dernière version de la librairie,
- ou Cloner le dépôt Git https://github.com/aoineko-fr/MSXgl.git (tag v0.8.0-alpha ),

3️⃣ (Optionnel) Si vous voulez utiliser l'option d'auto-démarrage d'un émulateur pour tester votre programme:
- Editer le fichier MSXgl/projects/default_config.js (la configuration par défaut du Build tool),
- Chercher " Emulator ", mettre le chemin vers votre émulateur préféré et mettre " DoRun = true; ".
Note : Les options du fichier default_config.js peuvent être écrasé par les valeurs données dans fichier de configuration d'un projet ( project_config.js ).

Et voilà! Vous pouvez maintenant tester l'un des nombreux programmes d'exemple ou commencer à créer votre propre programme.

Structure de fichiers



engine : MSXgl library
├─ content : Data ready to include (font, math table)
├─ datasrc : Data source
├─ doc : Documentation
├─ lib : Static library binaries (perhaps one day...)
├─ script : Build Tool scripts
└─ src : Library sources (.c and .h)
projects : Programs
├─ example : Game example
├─ samples : Sample programs (VDP, PSG, Sprite, ...)
├─ targets : Samples to test all target (ROM, DOS, BASIC)
├─ template : MSX 1 template sample (can be use as base to create a new program)
└─ template_msx2 : MSX2 template sample (can be use as base to create a new program)
tools : Tools
├─ MSXtk : MSX tool kit utilities (MSXhex is used in the build process)
├─ audio : Tools used with audio
├─ build : Tools used by the Build tool
├─ compress : Tools used to compress data
└─ sdcc : SDCC (binaries for Windows and Linux, and z80 lib)

Programmes d'exemples (samples)


MSXgl fournis un grand nombre de programmes d'exemple pour illustrer l'utilisation des différents modules.

Projets d'exemple


MSXgl fournis 3 projets d'exemple qui peuvent servir de base pour votre propre projet.

projects
├─ example : Example de jeu.
├─ template : Base pour un programme MSX1.
└─ template_msx2 : Base pour un programme MSX2.

Pour tester ces projets, aller dans l'un de ces répertoires et exécuter le script build.bat sous Windows ou ./build.sh sous Linux et macOS.

Le fichier final devrait se trouver dans le sous répertoire /emul/ .

Par ex., dans le cas du projet tamplate qui est configuré pour créer une ROM de 32 Ko, le fichier final se trouve dans projects/tamplate/emul/rom/template.rom .
Tester cette ROM avec votre émulateur préféré.

Si vous avez configuré un émulateur et activé l'option de lancement automatique (voir "Installation"), l'émulateur sera automatiquement lancé à la fin de création de la ROM.

Codes d'exemple



Pour éviter d'avoir un répertoire pour chaque exemple, la procédure de test des nombreux exemples contenu dans le répertoire samples est légèrement différente.

projects
└─ samples

C'est toujours le script build.bat sous Windows ou ./build.sh sous Linux et macOS qui permet de générer le programme final, mais il faut préciser dans la ligne de commande le programme à générer.

Par ex., pour générer le programme d'exemple qui montre l'utilisation du module Game qui s'appelle s_game , il faut utiliser la ligne de commande : " build.bat s_game " (ou " ./build.sh s_game " sur Linux ou macOS).

Formats cibles


Le répertoire targets permet de tester tous les formats de sortie (ROM, DOS, BASIC).

projects
└─ targets

La génération se fait également avec le script build.bat sous Windows ou ./build.sh sous Linux et macOS, mais il faut préciser dans la ligne de commande le format cible choixi.

Par ex., pour générer le programme pour MSX-DOS 2, il faut utiliser la ligne de commande : " build.bat DOS2 " (ou " ./build.sh DOS2 " sur Linux ou macOS). Pour une MegaROM ASCII8 de 128 Ko, il faut utiliser " build.bat ROM_ASCII8 ".