Accueil > Bienvenue > Journal de bord > Mon gros projet

Mon gros projet

dimanche 13 novembre 2022, par Mathieu Brèthes

Toutes les versions de cet article : [Deutsch] [English] [français]

J’aime bien les jeux avec des histoires. Ca fait un moment que je m’intéresse à la fiction interactive, que ce soit des fictions textuelles avec Inform, ou bien des fictions graphiques (genre connu sous le nom de "visual novel"). L’avantage de ces jeux est que la programmation s’efface au profit de l’histoire. Ce sont de jeux avec peu d’interactions, que l’on peut se représenter comme des successions d’embranchements menant à une ou plusieurs fins.

J’ai déjà développé un prototype de jeu avec RenPY, qui est un environnement de développement basé sur le langage Python. Pour résumer, un programme RenPY est un fichier texte avec des commandes qui sont interprétées et interfacées avec Python. Je me disais qu’il serait possible de développer un traducteur qui au lieu d’interfacer avec Python, génèrerait du code C qui pourrait ensuite être facilement porté sur une console portable.

La deuxième étape serait de créer des outils pour transformer les média (images statiques) vers le format adapté à la console.

Théoriquement, arrivé là, il suffit de compiler et ça marche.

Sauf que... Il n’y a pas de compilateur C libre pour le processeur de la Neo Geo Pocket (Toshiba TLCS 900H). Le compilateur proposé par Toshiba est payant et fonctionne exclusivement sous Windows. Il est possible de le trouver sur internet... Mais bon, where is the fun with that ? Et puis je continue, vingt-cinq ans après ma première installation de Linux, à privilégier cet environnement.

Qu’est-ce qui existe en libre pour faire du code pour ce processeur ? Il existe un assembleur appelé AS. Et, il y a un compilateur C libre, SDCC, qui permet de générer du binaire pour un processeur proche, le TLCS 90. D’après la documentation Toshiba, les deux processeurs sont compatibles au niveau du code assembleur (le langage s’écrit pareil, les registres portent les mêmes noms... Mais par contre le code binaire n’est pas compatible). Et si c’était possible de rajouter le TLCS900 à la liste des processeurs supportés par ce compilateur...?

Les étapes de ce projet seront donc les suivantes :

  1. Apprendre l’assembleur pour le TLCS900H en faisant un projet test
  2. Développer un jeu simple sur RenPY (ou réutiliser le jeu de démo)
  3. Décider si oui ou non je veux m’embarquer sur ce projet avec SDCC
  4. Si non :
    1. Développer mon outil pour transformer le fichier RenPY en code assembleur
    2. Valider le fonctionnement
  5. Si oui :
    1. plonger dans les entrailles de SDCC pour voir
    2. développer ensuite une version C de ce transformateur

Voilà de quoi m’occuper un moment :-D