Actualités

mGBA : une API de scripting pour personnaliser l’émulation du Game Boy Advance

Depuis la version 0.10, mGBA intègre une API de scripting en Lua, offrant une flexibilité accrue pour contrôler l'émulation et interagir avec les jeux.

Scripting API dans mGBA : une nouvelle dimension pour l’émulation du Game Boy Advance

Depuis la version 0.10, mGBA, l’émulateur open-source du Game Boy Advance, intègre des capacités de scripting. Cette fonctionnalité, accessible via l’option « Scripting… » du menu Outils, permet aux utilisateurs de personnaliser leur expérience d’émulation en utilisant le langage Lua. Cette mise à jour, confirmée en mai 2022, marque une évolution significative dans la flexibilité et la puissance de l’émulateur.

Présentation de la Scripting API

La Scripting API de mGBA offre un accès direct à divers objets et fonctions qui permettent de contrôler l’émulation, d’interagir avec les jeux, et de modifier des paramètres en temps réel. Cette API est principalement conçue pour le langage Lua, qui est désormais le seul supporté. La documentation associée est générée automatiquement à partir de la version 0.10.2, ce qui garantit une précision et une cohérence dans les informations fournies.

Objets et fonctions disponibles

Les objets de haut niveau incluent C, callbacks, console et util. Ces objets offrent des constantes, des gestionnaires d’événements, des outils de console et des bibliothèques utiles. Parmi les fonctions disponibles, on retrouve des outils pour manipuler des masques de bits, charger des ROMs, gérer les sauvegardes, et interagir avec les registres de la console.

  • expandBitmask : transforme un masque de bits en une liste d’indices.
  • makeBitmask : compile une liste d’indices en un masque de bits.
  • addKey : ajoute une touche au jeu actif.
  • autoloadSave : charge automatiquement les sauvegardes associées à la ROM.
  • getGameTitle : récupère le titre interne du jeu à partir de l’en-tête de la ROM.
  • readRegister : lit la valeur d’un registre spécifique.
  • writeRegister : écrit une valeur dans un registre.

Les classes disponibles, comme Core, CallbackManager, Console, CoreAdapter, MemoryDomain et TextBuffer, permettent de gérer des aspects plus complexes de l’émulation, tels que la gestion des sauvegardes, la lecture/écriture de mémoire, et la gestion des événements.

Constantes et gestion des mémoires

Les constantes définies dans la Scripting API incluent des codes pour les touches, les plateformes, les états de sauvegarde, et les erreurs de socket. Par exemple, GBA_KEY définit les touches du Game Boy Advance, tandis que PLATFORM indique la plateforme émulée (GBA ou GB).

Les domaines de mémoire, tels que GBA et GB, permettent d’accéder directement à des parties spécifiques de la mémoire, comme la ROM, la VRAM, ou les registres. Ces domaines sont accessibles via des objets MemoryDomain, qui offrent des méthodes pour lire et écrire des données à des adresses précises.

Intégration avec Lua

La Scripting API est conçue pour s’intégrer naturellement avec le langage Lua. Des fonctionnalités spécifiques, comme la gestion des sockets TCP, sont disponibles via des classes et fonctions dédiées. Par exemple, le module socket permet de créer et gérer des connexions réseau, ce qui ouvre la porte à des extensions comme le multijoueur ou la communication avec d’autres instances d’émulateurs.

Les fonctions Lua, comme bind, connect, et send, facilitent la création de serveurs et de clients, tandis que les callbacks permettent de gérer des événements tels que la réception de données ou l’erreur réseau. Ces outils sont particulièrement utiles pour les développeurs souhaitant créer des extensions ou des outils personnalisés.

Conclusion

La Scripting API de mGBA représente une avancée majeure dans la personnalisation et la flexibilité de l’émulation du Game Boy Advance. En permettant l’utilisation de Lua, elle ouvre des possibilités de modération, de débogage, et d’extension qui étaient jusqu’alors limitées. Cette fonctionnalité, disponible depuis la version 0.10, est un exemple de l’évolution continue de l’émulateur vers un outil plus puissant et plus accessible pour les utilisateurs avancés.

Référence officielle : mGBA