Programmation C

MSXgl

Cet article a été mis à jour, vous consultez ici une archive de cet article!
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 :
  • 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.
#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


  • 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.