Pokemon Crystal LibreSave

Pokemon Crystal LibreSave est un projet visant à manipuler une sauvegarde du jeu vidéo Pokémon Cristal sur la console portable GameBoy Color faite par Nintendo. Le but est de permettre d'en visualiser le contenu et également d'en permettre l'édition sans devoir en passer par l'hexadécimal. De plus, il est souhaité que le programme soit bien découpé et simple à comprendre, de sorte qu'il puisse servir de documentation pour comprendre comment une sauvegarde est faite.

Il existe déjà des logiciels permettant de manipuler des sauvegardes pour au moins ce jeu Pokémon. Parmi ceux-ci, certains sont libres (au sens de Richard Stallman). PKHeX est sans doute un des plus notables, car il a une belle interface graphique et gère un nombre conséquent de jeux Pokémon, mais il est en langage C# et le cadriciel dotNET (pour lequel il existe certes Mono) et il n'y a pas de volonté d'apporter de l'attention aux systèmes d'exploitation libres (comme GNU/Linux et les *BSD). Pour les jeux d'aventure de la première et seconde génération sur GameBoy et GameBoy Color, il y a PikaSav, mais son code pourrait être plus clair (bien qu'il soit cependant assez simple à comprendre) et il est écrit en Python 2 (qui est mort en 2020). Au contraire de PKHeX, la bonne gestion de GNU/Linux est un critère. Tandis que pour PikaSav, il est malheureusement mort et dans un langage non standardisé dont l'évolution n'est pas nécessairement rétro-compatible (le passage de Python 2 à 3 a demandé bien des efforts et la bibliothèque standard est susceptible de casser même au sein d'une version majeure du langage).

Développement

Pour minimiser la maintenance une fois le logiciel écrit, le langage de programmation est le bon vieux C (standardisé, rétro-compatible, solide et typé, un bon outillage libre, liaison avec de nombreux autres langages, etc.). Néanmoins une interface graphique sera peut-être faite en C++, tout en usant d'une bibliothèque stable et à priori vouée à le rester, par exemple avec FLTK. En revanche, la vue principale, et peut-être l'unique qui existera à jamais, est textuelle par simplicité et parce que les autres projets libres semblent tous exclusivement graphiques. Bien que ce soit centré sur Pokémon Cristal, un but secondaire est de créer des abstractions de ce que contient une sauvegarde Pokémon, ce qui pourrait servir pour d'autres jeux et éviter ainsi de ré-écrire une vue (puisque les mêmes abstractions pourraient être utilisées). N'hésitez pas à contribuer, faire une ou d'autres vues, utiliser les abstractions dans un autre but que manipuler une sauvegarde de Pokémon Cristal, ou faire un ou des paquets pour un ou des systèmes d'exploitation.