Tuto réalisation cartmod/convert MegaDrive/Genesis d'un jeu commercial sans sauvegarde avec le programmateur grand public TL866. Je fais dans ce tutoriel l'exemple complet Sonic 2 en photo, le tout sur ma PCB prototype.
L'outillage du Cartmod :
- Effaceur EPROM UV
- Programmateur EPROM TL866
- Adaptateur 16bits 27C160/322/400/800 pour le TL866
- Tournevis cruciforme/gamebit adéquat pour ouvrir la cartouche
- Réceptacle pour y déposer les vis sans les perdre.
- Tresse et/ou pompe à dessouder (manuel ou électrique)
- Fil électrique ou Kynar
- La rom du jeu au format binaire (.bin) exclusivement
C'est parti pour la partie hardware :
Avant tout chose, commencez par prendre connaissance sur comment programmer les EPROM (cf. infra : EPROM tout savoir) ainsi que la partie théorique du cartmod MegaDrive, choix de votre EPROM selon la taille du jeu (cf. infra : MEGADRIVE - CARTMOD/CONVERT les bases). Ce tuto est réalisé avec le jeu Sonic 2 sur une EPROM adaptée à sa taille en Mo (1Mo donc 27C322, non je déconne 27C800). Vous trouverez tous les logiciels de ce tuto ici.
- Commencez par effacer complètement votre EPROM avec votre effaceur UV
- Prenez votre TL866 et son adaptateur 16bits 27C160/322/400/800
- Placez l'adaptateur sur le TL866 comme sur la photo
- Placez votre EPROM vierge sur le TL866 en faisant bien attention à son placement (voir photo).
Mettez le switch sur "27C322" ou "Other" selon votre EPROM, et les 3 switch rouges sur 0.
Préparation de la rom binaire :
Assurez-vous d'avoir une rom binaire (.bin) fonctionnelle.
- Avant toute chose, nous devons vérifier le checksum, en effet une erreur sur celui-ci empêchera votre console de lancer le jeu
S'il y besoin de faire un dummy (ex: 3Mo dans une EPROM 4Mo ou 1.3Mo dans 2Mo), c'est très facile avec le logiciel "GQ4X Programmer". Il suffit d'ouvrir dedans votre fichier.bin et de sélectionner votre EPROM de destination puis d'enregistrer le fichier binaire. Dans mon exemple ci-dessous, je transforme un fichier 3Mo en 4Mo. N'oubliez pas de vérifier que votre nouveau binaire fasse bien la bonne taille.
- Une fois ceci de fait, nous allons devoir modifier la structure de la rom, en effet le processeur de votre PC est une architecture dite "Little-Endian" alors que le processeur Motorola 68000 de votre MegaDrive est une architecture "Big-Endian".
Il s'agit de la manière dont le processeur lit les octets en mémoire (pour plus d'information voir Google), nous allons donc procéder à ce que nous nommons un "Byte-swap". Pour cela nous allons utiliser le logiciel "GQ4X Programmer" (disponible dans la section utilitaires MegaDrive).
Vous allez voir ci-dessous en photo et appréhender ce concept très important pour que votre console puisse lire le jeu. Concept très simple d'application 😀
La mention "SEGA GENESIS" est parfaitement lisible, nous avons du code LITTLE-ENDIAN pour PC
Nous effectuons une transformation pour le rendre lisible par la MegaDrive, le fameux BYTE-SWAP
A présent nous sommes en présence d'un code parfaitement compréhensible par la MegaDrive. Pensez à sauvegarder votre fichier binaire, en le nommant correctement pour mieux l'identifier (personnellement je le nomme Sonic2-swap.bin et supprime le binaire pc)
- Il faut savoir que le TL866 ne peut pas écrire des binaires de plus de 512Ko, c'est une limitation technique de l'appareil (grand public et pas cher, tout en étant non cheap 😉).
Nous devons obligatoirement, pour les fichiers supérieurs à 512Ko, les splitter/découper en plusieurs fichiers de 512Ko.
Nous allons utiliser pour ce faire l'excellent outil "HxD Hexadecimal" (disponible dans la section utilitaires MegaDrive)
Ouvrez votre binaire avec Hxd, et nous pouvons de suite confirmer que le Byte-swap précédent a bien été effectué avec succès.
- Nous allons à présent découper le fichier binaire avec l'outil Hxd comme suit :
- Configurez comme sur l'image ci-dessous, Numérotation Consécutive, 512 KiB (attention de bien mettre KiB)
- Et vous obtiendrez ceci, votre rom binaire en fichier de 512Ko
- Ici c'est surtout une subtilité très importante du TL866, vos fichiers fraîchement découpés, il va falloir les écrire en sens inverse de leur chronologie. Le dernier fichier devient le premier à insérer et le premier le dernier (logique). Petite astuce, personnellement je préfixe les fichiers dans le nouvel ordre chronologique à insérer.
Configuration de votre TL866 :
Ouvrez votre logiciel Xgpro et pensez de temps en temps à le mettre a jour ici .
- Il faut choisir le chip AMD 27C4096
- et obtenir cette interface, on désactive Pin Detect et Check ID
- Il faut appréhender et comprendre le fonctionnement de votre adaptateur, sur le tableau ci-dessous, il faut le lire de bas en haut pour votre chip
Essayons de simplifier en remettant dans un ordre de lecture chronologique habituel la séquence selon le chip, faites juste attention aux valeurs on/off du switch (rouge) 18 19 20 :
27C400 => 1 1 1
27C800 => 0 1 1
1 1 1
27C160 => 0 0 1
1 0 1
0 1 1
1 1 1
27C322 => 0 0 0
1 0 0
0 1 0
1 1 0
0 0 1
1 0 1
0 1 1
1 1 1
Ecriture de votre rom sur l'EPROM :
Je vais donc écrire SONIC 2 sur mon EPROM 27C800, en utilisant l'ordre préfixé que j'ai mis précédement et le tableau de l'adaptateur, à vous d'adapter cette étape à votre rom et EPROM.
- Je commence par ouvrir dans Xgpro mon premier fichier Sonic (qui dans la réalité je rappel est le dernier, j'ai juste préfixé comme étant le premier) à écrire.
Puis je règle l'adaptateur sur "Other" et je rentre la sequence 0 1 1 sur son switch rouge. Et je le programme 😉
- Puis j'enchaine avec mon second fichier (le premier dans la réalité). Comme vous pouvez le constater, la mention "SEGA GENESIS" est bien lisible... C'est tout à fait normal, votre byte-swap c'est correctement effectué, j'ignore comment l'afficher correctement dans le logiciel...
Je rentre la sequence 1 1 1 sur son switch rouge. Et je le programme 😉voila
Test de votre EPROM :
C'est là que j'apprécie très fortement d'avoir fait une pcb prototype, ça me permet de tester facilement sur la console mon EPROM et ainsi certifier son bon fonctionnement.
Vous venez de réaliser avec succès votre cartmod/convert MegaDrive, il ne vous reste plus qu'à mettre cet EPROM dans sa cartouche définive. Passez de très bonnes heures de jeu 😀.