MSXgl
Table des matières
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).
- Version actuelle: 0.8.0 Alpha
- Version de SDCC: 4.2.0 (embarquée), 4.2.8 (testée)
- Author: Guillaume "Aoineko" Blanchard
- License: Creative Commons BY-SA 4.0
- Liens (en anglais):
- GitHub: https://github.com/aoineko-fr/MSXgl (téléchargement des releases et fichiers sources)
- Wiki: https://aoineko.org/msxgl (divers articles)
- Documentation: https://aoineko.org/msxgl-doc (documentation des fichiers sources)
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 :
- ROM "pleine" (8, 16, 32, 48 ou 64 Ko).#1
- MegaROM ou ROM "mappée" au format ASCII-16 (de 64 Ko à 4 Mo) ou ASCII-8, Konami et Konami avec SCC (de 64 Ko à 2 Mo).
- Binaire ( .com ) pour MSX-DOS 1 ou MSX-DOS 2.
- Binaire (
.bin
) pour MSX BASIC.
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
- bios: Gestion du BIOS
- clock: Horloge temps-réel du MSX2 (RP-5C01)
- dos: Fonctionnalités MSX-DOS 1 & 2 (gestion des fichiers, I/O de la console, etc.)
- input: Clavier, joystick, souris
- math: Fonctions mathématiques optimisées
- memory: Gestion de la mémoire
- print: Affichage de texte (module générique quelque soit le mode écran)
- string: Gestion des chaine de caractère
- system: Gestion des slots et des opérations binaire (sans passer par le BIOS)
Tools
- compress: Décompresseur RLEp (Pattern based RLE)
- compress/bitbuster: Décompresseur BitBuster (version 1.2)
- compress/bitbuster2: Décompresseur BitBuster 2 (version 2.0)
- compress/pletter: Décompresseur Pletter (version 0.5c1)
- compress/zx0: Décompresseur ZX0
- draw: Fonctions de dessin avancées
- game: Architecture de programme
- game_menu: Gestion des menus
- game_pawn: Gestion des entités du jeu (animation, déplacement, collision, etc.)
- input_manager: Gestion avancé des intpus
- scroll: Fonctions de scrolling
- device/ninjatap: Gestion du NinjaTap (pour brancher 4 joysticks par port)
Processeurs vidéo
- vdp: Fonctionnalités pour les TMS9918, V9938 and V9958 (gestion des modes, I/O en VRAM, sprites, commandes, etc.)
- v9990: Gestion du Yamaha V9990
Processeurs audio
- psg: Gestion du PSG (AY-3-8910, YM2149 or T7766A)
- msx-music: Gestion du MSX-Music (YM2413, FM-PAC)
- msx-audio: Gestion du MSX-Audio (Y8950 + YM3014, Music-Module)
- scc: Gestion du Konami SCC
Formats audio
- arkos/akg_player: AGK pour Arkos Tracker II
- arkos/aky_player: AGY pour Arkos Tracker II
- arkos/akm_player: AGM pour Arkos Tracker II
- ayfx/ayfx_player: ayFX sound-effect
- lvgm/lvgm_player: Custom light-VGM music
- pcm/pcmenc: PCM-encoder
- pcm/pcmplay: PCM Play
- pt3/pt3_player: Vortex Tracker II
- trilo/trilo_scc_player: TriloTracker SCC
- vgm/vgm_player: VGM
- wyz/wyz_player: WYZ Tracker (based on version 47c)
- wyz/wyz_player2: WYZ Tracker (based on version 47d)
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 :
- Il compile tous les fichiers C ou assembleur du projet (ainsi que ceux de la librairie si besoin),
- Il assemble (link) tous ces bouts de code,
- Il converti le tout en binaire ( .rom , .com ou .bin ),
- Dans le cas d'un programme MSX-DOS ou BASIC, il regroupe les fichiers nécessaires au programme et peut générer une image disque ( .dsk ),
- Si un émulateur a été configuré, il lance automatiquement le programme généré avec l'émulateur configuré comme il faut,
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 (appelé-le " MSXgl " par exemple).
Note : Il est recommandé de ne pas utilisé 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.
Programmes d'exemples (samples)
MSXgl fournis un grand nombre de programmes d'exemple pour illustrer l'utilisation des différents modules.
Pour tester un programme d'exemple, aller dans le répertoire du son projet ( projects/tamplate par ex.) et exécuter le script build.bat (ou ./build.sh sur 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érez.
Si vous avez configurez un émulateur et activé l'option de lancement automatique (voir "Installation"), l'émulateur sera automatiquement lancé à la fin de création de la ROM.