Le cartmodding...
Il s'agit de modifier une cartouche d'un jeu vidéo pour remplacer le jeu
par un autre ou par une autre version du même jeu (traduite ou
modifiée/hackée par exemple).
Il y a deux gros avantages: pouvoir avoir un jeu rare ou introuvable et
pouvoir mettre en cartouche une modification amateur d'un jeu telle
qu'une traduction.
Il existe des versions de jeu complètement remaniées, proposant de
nouveaux graphismes, dialogues et histoire, voire une nouvelle musique;
et pouvoir posséder ce jeu en cartouche comme un original pour pouvoir y
jouer sur la vraie console (et non pas sur émulateur) est très gratifiant !
Alors pour vous expliquer ce qu'est le cartmodding, l'idéal est de vous
montrer directement comment l'on procède; je vais commencer par un
exemple simple: la modification d'un jeu LOROM avec une seule EPROM (27c801).
Je suis parti du jeu Hyper V Ball pour installer Pocky & Rocky,
une sorte de shoot em up à scrolling directionnel en plein Japon
médiéval fantastique, aux dessins sympas et aux couleurs vives.
Pocky étant l'héroïne qui est accompagnée de son comparse Rocky,
un raton laveur brun (tanuki ?) assez mignon.
C'est un jeu un peu méconnu auquel j'avais pu jouer à l'époque et qui
était particulièrement bien et je dois dire que même maintenant le
jeu est toujours aussi bon.
la version japonaise se nomme
"KiKi KaiKai : Nazo no Kuro Manto", le jeu est edité par Natsume et il est sortit chez nous (PAL) le 19 août 1993 (22/12/1992 au Japon).
Il existe une suite, sortie également sur la Super Nintendo: Pocky
& Rocky 2; je compte bien en faire le cartmod donc vous en aurez de
plus amples nouvelles bientôt...
j'ai utilisé cette rom : Pocky & Rocky (E)
et les infos que j'avais :
Filename Game Name Licensee
Megabit Video Mode ROM Type SRAM Size
Version HiROM ROM Speed Copier Language
------------ --------------------- -------------------------- ------- ---------- ---------------------
POCKY&~1.SMC POCKY ROCKY Natsume 8
MBit PAL ROM Only No SRAM 1.0 No
SlowROM SMC English
et pour Hyper V Ball :
HYPERV~1.SMC HYPER V-BALL Video System
8 MBit PAL ROM Only No SRAM 1.0 No
SlowROM MGD English
Je vais vous expliquer comment j'ai procédé, mais avant je voudrais
"situer" cette réalisation par rapport aux différents cartmods :
J'ai commencé par un jeu simple et nécessitant une seule puce (une
27c801; DIP 32 8 Mbit ( 1Mb x 8 ) UV EPROM) et de plus c'est une puce
qui permet la technique du
swapbin , c'est à dire, intervertir
logiciellement les adresses des pattes de la puce pour les rendre
quasi identiques aux adresses de la maskrom et ainsi éviter d'avoir
pleins de fils à souder.
Pour les "gros" jeux (style RPG) il faudra sûrement mettre plusieurs
puces, voir des décodeurs supplémentaires... donc beaucoup de fils à
souder et aussi beaucoup plus de problèmes potentiels !
Niveau matériel, il vous faudra:- 1 eprom 27c801 (trouvable sur ebay)
- 1 programmateur (j'ai un Wellon VP-280 USB mais un Willem à pas cher fera aussi l'affaire. trouvable sur ebay)
- 1 effaceur d'eprom à Ultra Violet (UV) pour éventuellement effacer une puce (trouvable sur ebay).
- 1 bon fer à souder avec une pointe fine en bon état (un JBL par exemple).
- de l'étain
- de la tresse à déssouder ou une pompe à déssouder (je vous recommande très vivement la tresse).
- du fil fin souple mono-brin (une nappe IDE convient très bien).
Je ferai le détail du matériel dans un autre post mais si vous avez des
questions, envoyez moi un message j'y répondrai avec plaisir.
Alors pour rentrer dans le détail de la réalisation pratique, voici les
étapes que j'ai suivi (et à suivre en règle générale pour tout cartmod) :
1) identifier le jeu désiré et préparer la rom :Sans rentrer maintenant dans le détail, il existe plusieurs types de pcb's
(LOROM,HIROM) donc il faut s'assurer de la bonne compatibilité du jeu
souhaité avec le circuit imprimé (communément appelé "pcb") du jeu hôte.
Une fois la Rom trouvée (sur un site d'émulation, comme emuparadise
par exemple) on peut la lancer dans l'émulateur Snes9x pour afficher
les caractéristiques de la Rom (comme par exemple: 8 MBit, PAL, NO SRAM, etc.)
J'ai aussi une liste des Roms SNES avec leurs infos techniques pour
avoir un premier aperçu de ces données (que je confirme ensuite avec
Snes9x). Cette liste provient d'un excellent site de cartmodding: Romlab.
Je vous conseille d'aller y jeter un coup d'œil car ce site est une mine d'or
pour ce qui est du cartmod'.
Ensuite, une fois la Rom du jeu trouvée, il faut vérifier qu'elle ne
possède pas de header (entête de fichier numérique contenant diverses
informations sur le contenu de la Rom, qui était ajoutée et utilisée
par les premiers émulateurs mais qui empêchera le fonctionnement de la
Rom sur le hardware d'origine).
Il existe différents outils permettant de vérifier
la présence de header, de le supprimer et d'opérer un swapbin.
Il y a
SnesTools par exemple; il est assez spartiate dans son
style DOS mais il remplit bien son rôle, mais personnellement je
préfère grandement
Snes Rom Utility de Takashi qui à une interface win32 simple et claire.
Voici un lien pour télécharger ce très bon programme (malgré tout pas facile à trouver) :
SFC-SNES ROM Utility
[Vous devez être inscrit et connecté pour voir cette image] capture d'écran de SNES Rom Utility. Ensuite et pour finir avec la préparation de la Rom on peut faire un
swapbin, toujours avec SNES Rom Utility de Takashi, qui préparera un
fichier spécial prêt à mettre dans le programmeur d'Eprom.
Attention, petite précision : le swapbin ne fonctionne que pour les puces 27c801 ! (dommage ^^)
Mais une fois que nous avons trouvé notre Rom nous pouvons définir quelle Eprom nous devons utiliser.
Ici le jeu fait 8Mbit donc une Eprom 28c801 convient parfaitement,
d'autant plus que je voulai un montage des plus simple donc j'ai choisi
aussi en sachant que je pourrais faire un swapbin...
2) identifier et préparer le pcb du jeu hôte :Une fois un pcb compatible trouvé, il faut enlever la maskrom contenant le jeu.
Personnellement pour ce faire j'utilise une dremel avec un disque à
tronçonner que je passe délicatement sur les pattes de la puce Maskrom à
enlever.
Une fois toutes les pattes de la puce tranchées, je les déssoude en les
tirant une par une avec une pince brucelles (ou une pince à épiler)
pendant que je pose le fer sur la pastille.
Une fois toutes les pattes retirées, je nettoie les pastilles de tout
leurs restes d'étain à la tresse à déssouder (ou à la pompe).
ATTENTION : je précise qu'ainsi la puce sera détruite !
Pour éviter de sacrifier la maskrom on peut utiliser de la tresse à
dessouder et prendre son temps ou bien utiliser un embout de fer à
souder spécial, en forme de peigne, qui permets de déssouder les rangées
de pattes d'un seul coup.
[Vous devez être inscrit et connecté pour voir cette image] exemple de pcb (SHVC-1A0N-10
). 3) test & programmation de l'eprom :maintenant que la Rom est prête ou plus exactement le fichier obtenu
après le swapbin par le soft de Takashi: Pocky & Rocky (E)_01), on
peut démarrer le programmateur d'Eprom.
Je vous renvois à la doc de votre programateur mais en gros il faut
mettre l'Eprom 27c801 (encoche dans le bon sens,C.à.d. quasi toujours
en haut), vérifier que vous avez bien sélectionné le bon modèle
("device") de puce sur votre programmateur, éventuellement mis les
switchs dans la position indiquée (si vous n'avez pas un programmateur
USB ...) et ensuite faire un "Blank Check" pour vérifier que la puce
est bien vierge.
Si votre puce est vierge vous pouvez charger ("Load") le fichier
"swapbiné" (soit dans mon cas: Pocky & Rocky (E)_01)) et vérifier
qu'il n'y a plus de header (un conseil: il faut toujours vérifier et
re-vérifier !).
Pour vérifier la présence de header faites "Buffer" une fois que
vous avez chargé le fichier, une fenêtre va s'ouvrir avec le code
hexadécimal de votre fichier.
Si le code commence pas une suite de valeurs 00 c'est qu'il y à un header,
enlevez le comme expliqué à l'étape 1.
[Vous devez être inscrit et connecté pour voir cette image] exemple de buffer. Donc maintenant vous n'avez plus qu'à faire "Program" pour lancer la programmation de la puce.
Une fois la programmation effectuée vous pouvez comparer le fichier mis
sur la puce avec le fichier chargé à l'origine, pour cela cliquez sur
"compare" ou "Verify".
Si le résultat est identique le programmateur vous dira "OK", vous
pouvez donc enlever la puce du programmateur et mettre un bout de
scotch noir d'électricien sur la petite fenêtre de l'Eprom pour
empêcher sa réécriture.
Dans le cas ou la programmation s'est mal passée vous devez effacer
l'Eprom en la mettant sous une lampe UV adéquate pendant une demie
heure environ pour la rendre vierge à nouveau. Je précise que ce n'est
valable que pour les Eproms UV (celle avec une petite fenêtre) et non
pas les eproms OTP (
One Time Programmable soit "programmable une seule fois").
[Vous devez être inscrit et connecté pour voir cette image] exemple d'interface de programmateur Willem type. 4) installation de l'Eprom à la place de la maskrom sur le pcb :C'est là que cela devient sportif ! jusqu'à maintenant il suffisait d'être attentif
mais là, il faudra être minutieux et adroit.
Bon je vous rassure tout de suite :
c'est très simple, dans notre cas il n'y a que deux fils seulement à souder !
Alors si vous n'avez jamais fait de soudure (souder et déssouder) je
vous conseille fortement de vous entrainer au préalable sur un vieux
bout de circuit imprimé. Vous allez voir on prend vite le coup.
Avant de souder il faut vérifier plusieurs fois ses schémas (
pinouts) des pattes des puces Eprom et maskrom pour être sûr qu'il n'y ait pas d'erreur et pour mémoriser le câblage; ça aide.
Comme vous l'aurez sûrement lu sur le fichier informatif qui vient avec
SFC-SNES Rom Utility (vous l'aurez lu si vous êtes consciencieux ou
curieux... ^^), une fois le swapbin effectué il suffit d'intervertir les
pattes 24 et 31 comme ceci :
27C801 | MASKROM
------------------
Pin24 -> Pin31
Pin31 -> Pin24
autres Pin-> 1:1
Pour souder la 27c801 il suffit de la placer dans les trous d'origine
de la maskrom en ayant pris soin de relever les pattes 24 et 31 pour
pouvoir y souder les fils. L'autre extrémité de ces fils ira
(respectivement) dans les trous 31 et 24 de la maskrom.
ce qui donne ceci sur le pcb :
[Vous devez être inscrit et connecté pour voir cette image] grâce au swapbin sur les Eprom 27c801 il n'y a que deux fils à souder.[Vous devez être inscrit et connecté pour voir cette image] on peut voir toutes les pattes enfoncées dans les trous de la maskrom sauf les deux pattes 24 et 31 repliées sur le dessus. J'ai choisi de les faire passer par l'autre face mais pour gagner de
la place on peut les faire passer sur la même face que les pattes relevées.
Mais si vous êtres un débutant je vous conseille de faire au plus simple (comme moi).
notes :En règle générale, pour savoir quelle patte d'une Eprom correspond à
quoi, il suffit de consulter le document technique du fabriquant de la
puce. On appelle ce document
"datasheet".
Il est impératif de télécharger les datasheets correspondants aux composants que l'on utilise !
On peut les trouver rapidement sur alldatasheets.fr
Dans notre cas, il suffit de faire une recherche sur google en marquant
"27c801 datasheet" et vous verrez tout de suite des liens vers de
grandes banques de datasheets en ligne sur lesquelles vous pourrez
télécharger le documents au format .pdf .
Bon pour la première fois je vous mets directement le lien :
[Vous devez être inscrit et connecté pour voir ce lien] Vous n'avez plus qu'à cliquer sur le pdf pour le télécharger...mais je vous mets le schéma que vous y trouverez :
[Vous devez être inscrit et connecté pour voir cette image]pinouts eprom 27c801 MAIS ATTENTION :maintenant que l'Eprom est "swapbinée" les pins ne correspondent
plus au schéma fourni par le constructeur (juste au dessus) !!!
Les pins ont étés intervertit pour s'adapter au maximum au routage
de la maskrom, sauf les pins 24 et 31, donc.
Et pour ce qui est des pins aux nom particuliers qui ne correspondent pas avec les schémas SNES, voici leur significations :
VCC = 5V
Byte Vpp/Vss = GND (
ground soit "masse" en français)
E = /CE
G = /OE
Q0 à Q... = D0 à D...
Pour ce qui est du pinouts de la maskrom je vous renvois à Romlab, à la page 8/16bit maskrom's pinouts
mais comme c'est encore la première fois je vous mets quand même l'image en question, pour être sûr :
[Vous devez être inscrit et connecté pour voir cette image]pinouts Maskrom SNES Et bien voilà, nous avons fait un bon premier tour de la question.
Si le sujet vous intéresse et que vous voulez poursuivre et faire des
cartmods plus complexes, je vous encourage à vous renseigner sur le net
et en particulier sur ces quelques sites :
Romlab, qui contient nombre d'informations tels que pinouts et schémas divers.
Ultimate Console.fr, mon second choix mais mon préféré. un site (français) de passionnés, avec une poignée de gars très compétents et toujours prêts à aider un
débutant (comme moi ^^).
Snes Central, site qui date un peu, pas vraiment mis à jour mais qui est plein d'infos sympas.