Pour cela, vous allez avoir besoin :
- D’un ordinateur
- Le projet désassemblage des e-cards de votre choix.
Pour pouvoir réaliser nos petites expérimentations, nous allons devoir créer un environnement Linux sous Windows qui nous permettra de faire tourner le code que nous allons utiliser. Mais pas d’inquiétude, rien d’inaccessible, je vais vous guider pas par pas.
Fort heureusement pour nous, le temps des partitions de disque dur avec multi-boot au démarrage de votre machine ou bien l’usage de machines virtuelles sont bien loin derrière nous et Windows est maintenant doté d’un outil fait exactement pour nos profils de développeurs en herbe : WSL (Windows Subsystem for Linux ou Sous-système Windows pour Linux dans la langue de Molière).
Ouvrez PowerShell en mode Administrateur en cliquant avec le bouton droit et en sélectionnant « Exécuter en tant qu’administrateur ». Entrez la commande wsl --install, puis redémarrez votre ordinateur.
Code : Tout sélectionner
wsl --installDans Terminal, ouvrez un terminal Ubuntu à l’aide de la petite flèche vers le bas.
Vous pouvez ensuite fermer l’onglet PowerShell pour ne garder que l’onglet Ubuntu.
Finalisez l’installation d’Ubuntu et choisissez votre nom d’utilisateur et mot de passe pour ce système d’exploitation.
Bravo votre distribution Linux est prête !
Vous pouvez désormais fermer l’invite de commande.
Maintenant que vous êtes doté d’un ordinateur capable d’exécuter du code et d’assembler des e-cards, que diriez vous justement d’aller récupérer un projet de désassemblage de e-card ?
Pour cela, Github sera votre meilleur ami, avec différents projets dont :
- github.com/hatschky/pokecarde projet originel, créer par Hatschky en 2016
- github.com/Artrios/pokecarde branche d’Artrios qui a étendu le projet et surtout l’a rendu compatible avec des versions logicielles plus récentes
- github.com/Youpileouf/pokecarde_Emeraude_FR/tree/master branche d’un dénommé Youpileouf qui a fait en sorte de rendre les cartes compatibles avec la version française de pokémon Emeraude
Prenons un peu de temps pour comprendre la structure de ce dossier. Il est constitué de deux grandes catégories de sous-dossiers :
- Les sous-dossiers de support, contenant des éléments communs à toutes les créations de cartes, quelques soient leurs types.
- Bin pour les programmes utilisés lors de la création des cartes
- Common pour les instructions classiques à inclure dans les e-cards, comme par exemple la routine de transfert des données de l’e-Reader vers la cartouche
- Constants qui va être le dictionnaire des mots en langage humain avec leur correspondance en hexa-décimal pokémon (Ecrire BULBIZARRE sera compris par le code comme « j’écris $001 » soit le code hexadécimal pour désigner Bulbizarre dans Pokémon). J’ai traduit l’ensemble de ce dictionnaire en Français pour faciliter la modification du codes des cartes. N’hésitez pas à vous y référer mais je vous déconseille de le modifier.
- Scripts qui est le dossier dans lequel sont stockés du code sous python3 pour réaliser des calculs et des opérations logiques comme le calcul des Checksum ou l’encryptage/décryptage des pokémons Substructures.
- Les sous-dossiers de fabrication des e-cards, rangés par thèmes et par spécificités
- Battle-e pour les cartes de combats de dresseurs et de baies (semi-officiel)
- Decoration pour les Poupées Regi. (semi-officiel)
- Eonticket pour le Passe Eon (semi-officiel)
- Poke-cadeau pour la distribution de pokémons (Homebrew)
- Rubans pour la distribution de rubans (Homebrew)
- Vieillecarte_tickets_aurora_mystik (Homebrew)
Pour cela rien de plus simple !
On va dans le dossier des e-cards que l’on souhaite fabriquer et dans la barre d’adresse de l’explorateur on tape « wsl » puis on fait « entrée »
Code : Tout sélectionner
wslNotre invite de commande s’ouvre et lance Ubuntu 24.04 directement dans le dossier.
Il ne vous reste plus qu’à taper « make » et de profiter de l’effet hacker-man de la cascade d’instruction qui déroule sous vos yeux.
Code : Tout sélectionner
makePas de panique :
- Soit votre cher Youpileouf n’a pas encore remis à jour la liste des sommes de contrôle qui permettent de vérifier que les cartes générées sont conformes à ce qu’elles devraient être.
- Soit vous avez modifiés des paramètres des cartes en éditant des fichiers .asm et comme la carte n’est plus similaire à l’originale, le programme vous alerte.
- Les fichiers .raw qui contiennent les dotecodes de e-cards
- Les fichiers .vpk qui vous seront utiles pour générer des sauvegardes de e-Reader (se référer à Anatomie des e-cards, dernier chapitre)
- Les fichiers .z80 qui correspondent à ce que j’ai appelé decompressed.vpk dans Anatomie des e-cards qui vous permettra d’examiner les structures de code envoyées à votre cartouche.
J’y viens, j’y viens, ne vous en faites pas !
Pour ce qu’il s’agit du bidouillage, tout est possible et ce tuto s’arrêtera aux bases. Il est bien sûr possible d’injecter des scripts entier en jeu et même aller jusqu’à faire de véritables DLC ou patch mais ces manipulations ne seront possibles que par les plus aguerries d’entre vous ayant déjà une connaissance très approfondie en romhacking, en langage thumb et arm et en recherche d’adressages ROM, RAM etc… (Coucou E-sh4rk o/).
Pour le commun des mortels, nous nous en tiendrons à un fichier par catégorie de e-card que j’ai fait en sorte de traduire dans un langage le plus proche du français possible.
- battle-e\trainers\[nom].asm pour créer un dresseur custom à la place de celui que vous modifiez
- battle-e\berries[nom].asm pour créer une baie custom à la place de celle que vous modifiez
- poke-cadeau\giftpokemon.asm pour créer un pokémon custom
Ouvrons l’un de ces fichiers (à l'aide du bloc note windows) et laissons-nous guider !
Il vous suffira de changer les parties de la carte que vous souhaitez.
En cas de doute sur comment écrire l’attaque, l’objet, le nom du pokémon ou n’importe quelle partie de la data qui sera envoyée à votre jeu, faite une tour dans le dossier constants et explorer les fichiers .asm qui s’y trouvent avec CTRL+F jusqu’à trouver la bonne écriture.