logo

Cette page a au moins 14 ans !
This page is at least 14 years old !

Cartouche Flash MBC1 pour GAMEBOY™.
A partir d'un BIOS de PC. Max. 2Mo ROM, 8Ko RAM

ROM de test 32ko:

Binaire (GameBoy Color uniquement)

Source commentée pour WLA-DX

 

Tetris DX contient un ROM de 512Ko, 8Ko de SRAM (pour les profiles et scores des joueurs) avec une pile CR1616 3v et un controlleur qui s'occupe de lui fournir le courant nécessaire pour ne pas qu'elle s'efface quand la cartouche n'est pas utilisée.

 

La vis spéciale se retire avec une pince coupante classique, il se peut qu'il faille forcer un peu et gratter le plastique pour réussir à accrocher aux creux.

 

Le MBC1 qui nous interesse et qui permet d'utiliser les 512Ko du ROM sur un bus 16 bits seulement.

 

SRAM 8Ko.

 

ROM Macronix MX23C4002 en boitier SOIC32. Les cartouches intégrant le MBC5 ont des ROMs bien plus grands (souvent 2 ou 4Mo) et souvent avec un espacement plus réduit entre les broches.

 

Un des meilleurs moyens pour déssouder le ROM est de chauffer et soulever chaque patte avec une aiguille. Le pistolet à décaper est à proscrire car la pile risque de vous faire violament part de son malaise.

 

Le ROM déssoudé, qui n'a plus grande utilité à part faire de la fumée sous 15v.

 

La mémoire Flash de 2Mbit (256Ko) qui était anciennement le BIOS d'un vieux PC. La réference générique est 29C020 (Atmel en fabriquent). Il est evidemment mieux d'acheter un 29C040, qui lui fait 512Ko et pourra profiter pleinement du MBC1.

Le format DIP est pas des plus pratique niveau encombrement. Le boitier TSOP parfois proposé est bien plus réduit, mais plus dur à souder.

 

Il faut premièrement faire la correspondance entre les broches du ROM Macronix et celles du 29C020. Par chance, elles sont en tout point identiques, sauf pour la broche 31, qui servira de broche /RW (31) au lieu de A18 (il ne faut que 18 bits pour adresser 256ko).

Dans le cas du 29C040, la broche /RW est également située à la place de A18, mais celle-ci est reportée à la broche 1, qui était "NC" sur le 29C020 et relié à la masse sur le circuit de la cartouche.

Tableaux de correspondances CLAIRS à suivre...

 

Les nappes pour PC ont un espacement identique à celui des broches du ROM d'origine, on peut en couper une et la dénuder en deux fois avec une pince, en faisant attention de ne pas emmeler les brins.

 

Il faut ensuite la couper pour qu'elle fasse 16 fils de largeur, étammer les brins pour éviter qu'ils se croisent (très important, ça peut vite dégenerer ensuite) et les couper pour qu'ils ne fassent plus que 2mm.

 

La soudure se fait assez facilement. Il faut courber la nappe dès le départ pour que les fils viennent s'appuyer sur les pastilles sans être soulevés par la SRAM derrière. Deux soudures aux extremités permettent de la maintenir en place pour souder individuellement chaque fil.

J'ai une panne 1.5mm et de l'étain 0.8, tout s'est assez bien passé. Il faut un bon éclairage et avoir une bonne vue de près.

 

Les deux nappes de 16 fils soudées de part et d'autre.

 

Malgré leur apparence, ici toutes les soudures sont bonnes. Quelques fils de la nappe du haut se sont dangereusement décalés pendant la soudure mais pas assez pour toucher les pastilles adjacentes. Il faut à tout prix éviter les brins tordus: soit les couper, soit les "recoller" proprement sur la soudure.

 

Détail des soudures.

 

Un fil doit être rajouté entre la broche 31 du 29C020 et la broche 31 du connecteur cartouche, ceci relie AudioIn au /RW de la mémoire Flash, nécéssaire pour la programmation.

 

Découper un morceau de plaque bakélite en bandes de la taille du 29C020. Ici la plaque fait 20 bandes par 9 colonnes car je voulais pouvoir faire les soudures et joindre A18 pour installer le 92C040 plus tard (quand je l'aurais commandé).

 

La nappe de gauche soudée dessus.

 

Détail des soudures et de la coupure faite au Dremel (propre et rapide!) avec les deux nappes. Il faut veiller à laisser le fil de A18 sur une bande à part, pour pouvoir l'utiliser plus tard. Ici elle ne servira pas. C'est dans cet emplacement vide qu'il faut connecter le fil de /RW.

Il est possible de relier directement A18 sans mettre le fil à part. Il faut le souder sur la broche 1 du 29C020, étant donné qu'elle est indiquée chez tous les fabricants comme "NC", elle ne devrait pas poser de problèmes.

 

La cartouche avec la plaque Flash soudée, et retournée. Toujours être très délicat avec les soudures à l'emplacement du ROM car si une pastille se décolle, tout est probablement à jeter !

 

Isoler la partie haute de la cartouche avec du scotch épais pour plaquer le circuit Flash contre, le mieux possible.

Les nappes occupent assez de place mais peuvent être suffisament pliées sur elles-même pour laisser la plaque dépasser du haut.

Il est maintenant crucial de tester les connections une par une, et entre elles, pour éviter les faux-contacts et ceux non désirés.
On peut directement les tester entre la plaque bakélite et le connecteur doré sur la cartouche. Les lignes A0 à A14 et D0 à D7 doivent être reliées, ainsi que /RW, VCC et la masse. Les lignes A15 à A17, /OE et /CE sont gérées par le MBC1 (les tester sur ses broches).

 

A ce stade, on peut determiner si la cartouche fonctionne en partie en l'insérant dans la Gameboy, même si elle ne contient pas de programme, ou un programme qui n'a rien à voir.

Si le logo Nintendo est remplacé par un rectangle noir, le 29C020 a soit ses sorties en tristate, ou il n'est pas du tout alimenté. Il faut vérifier en priorité les fils VCC, GND, /RW, /OE, et /CE au testeur de continuité (Cartouche hors tension).

 

Si le logo paraît "corrompu", c'est que le 29C020 répond au moins quelque chose sur le bus de données, son alimentation et ses lignes /OE et /CE devraient être correctes.

Le logo Nintendo affiché est en fait stocké dans tous les vrais jeux, la Gameboy s'en sert pour le comparer a une copie qu'elle possède en ROM pour déterminer si il n'y a pas de faux contacts sur le connecteur cartouche. C'est pour ça qu'il faut parfois souffler dans la cartouche pour que le jeu se lance alors que le logo s'affichait mal.

Comme ici la Gameboy voit que le logo ne correspond pas, elle n'ira pas executer le bordel infernal et surement aléatoire qui se trouve dans le 29C020. C'est normal.

 

Lorsque le logo Nintendo apparaît au complet et n'est pas corrompu, et que le logo Gameboy disparait, ceci indique que les données venant de la cartouche sont assez correctes pour passer le checksum des 32 premiers Ko. Avec de la chance, le reste des données est correcte et votre ROM démarrera. Ici Infrared Investigator est éxecuté sans problème.

Attention aux mauvais dumps qui fonctionnent sur émulateur et pas sur la vrai Gameboy, c'est peut être pas la cartouche qui a un problème !

 

Par souci pratique on peut ensuite placer la coque supérieure de la cartouche dans le connecteur et marquer où elle dépasse avec un stylo pour la couper et laisser dépasser la plaque bakélite.

 

Virer l'étiquette et la remplacer pour se la péter est optionnel ;)

 

On sait tout de suite à quoi on a affaire...

Maintenant, on peut soit programmer le 29C020 avec un programmateur externe (déconseillé, car les efforts sur les fils risquent à la longue de les déssouder), ou mieux: attendre que je me bouge le cul pour faire un programmateur de cartouche avec un vieux connecteur, un ATMega32 et un port série.

Vite calculé, 256Ko complets devraient prendre environ 15 secondes si la liaison série se fait à 460800bps, et si le 29C020 a des temps d'écriture assez longs.

footer
symbol symbol symbol symbol symbol