Neo Geo AES 3.5 Palette Ram Problem (Francais/English)
Petite Neo Geo d’origine, on dépose donc le BIOS japonais, on pose un support tulipe afin de pouvoir mettre un BIOS de diagnostic.
Résultat : une erreur de lecture sur les RAM.
Je teste les SRAM, les deux sont HS… la réparation va être trop facile.
Sauf que non, j’ai toujours la même erreur.
Donc, le système teste en écrivant à l’adresse $400000 la donnée $5555, et à la relecture, il lit $5557. Donc, quand il compare la donnée écrite et celle lue, ça fait une erreur…
En plus, $400000 est le début de l’adresse mappée des palettes RAM.
Le bus de données du processeur 68000 est en 16 bits, c’est-à-dire une ligne de 16 chemins qui peuvent prendre la valeur 0 ou 1.
Représentons le bus comme suit en mettant D devant chaque bus de données (ci-dessous).
Le but est de convertir le code hexadécimal $5555 et $5557 en binaire.
Un nombre de 4 chiffres en hexadécimal représente un nombre (aussi dit mot) de 16 bits.
Deux autres règles importantes :
Le chiffre le plus faible est celui tout à gauche, le chiffre binaire le plus grand/fort est tout à droite.
on parle alors de bit de poids fort et bit de poids faible.
On ne commence pas à compter les bits à partir de 1 mais de 0, c’est pour cela que notre mot binaire va se lire de 0 à 15, et comme c’est un bus de données, on a mis D devant (vous vous rappelez :D).
--------------------------------------------------
Original Neo Geo console, so we remove the Japanese BIOS, add a tulip socket to insert a diagnostic BIOS.
The result: a read error on the RAMs.
I test the SRAMs, and both are faulty… the repair is going to be too easy.
Except it’s not, I still get the same error.
So, the system tests by writing the data $5555 to the address $400000, and when it reads it back, it reads $5557. So, when it compares the written and read data, it shows an error…
Moreover, $400000 is the starting address mapped for the palette RAM.
The data bus of the 68000 processor is 16 bits, which means it has a line of 16 paths that can take either a 0 or 1 value.
Let’s represent the bus as follows by putting D in front of each data bus line (below).
The goal is to convert the hexadecimal codes $5555 and $5557 to binary.
A 4-digit hexadecimal number represents a 16-bit number (also called a word).
Two other important rules:
The lowest digit is the one on the far left, and the highest binary digit is on the far right.
We don’t start counting bits from 1 but from 0, so our binary word will read from 0 to 15, and since it’s a data bus, we’ve put a D in front (remember? :D)
Avec l’image qui compare les deux conversions en binaire de $5555 et $5557, on s’aperçoit que le deuxième bit, soit D1, reste à la position 1.
Comme les signaux numériques sont faits de 0 et de 1, mais qu’il s’agit avant tout de courant électrique, on a alors 0V et ici 5V.
Donc, le D1 devra être logiquement à +5V, comme nous allons le mesurer à l’oscilloscope.
Bon, vous vous rappelez, on a un problème sur une des deux RAM palettes ; on en a déduit que D1 nous embête.
On regarde le schéma de la Neo pour localiser la palette RAM.
Nous avons deux choses importantes : la palette RAM et le Neo-G0.
Le Neo-G0 est un gros mixeur de données pour les palettes et la carte mémoire de la Neo.
Il reçoit les données du bus de données du 68000 de D0 à D15, et il transmet les données sur les RAM palettes, notées sur le schéma de PC0 à PC15. Donc, D1 correspond à PC1.
Je pose la sonde de mon oscilloscope sur la broche 12 de la palette RAM supérieure, et comme je le pensais, j’ai un signal constamment à +5V sans modulation ; même mesure sur le Neo-G0 au pin 63, et pareil, un signal haut à +5V.
Cela signifie aussi que la ligne n’est pas coupée entre ce pin du Neo-G0 et la palette RAM.
--------------------------------------------------
With the image comparing the binary conversions of $5555 and $5557, we notice that the second bit, D1, stays at position 1.
Since digital signals are made up of 0s and 1s but fundamentally represent electrical currents, we have 0V and here 5V.
So, logically, D1 should be at +5V, as we’ll measure with the oscilloscope.
Now, remember we have an issue with one of the two palette RAMs, and we’ve deduced that D1 is causing trouble.
We check the Neo Geo schematic to locate the palette RAM.
There are two important components: the palette RAM and the Neo-G0.
The Neo-G0 is a large data mixer for the palettes and the Neo’s memory card.
It receives data from the 68000’s Data Bus from D0 to D15 and sends data to the Palette RAMs, labeled on the schematic as PC0 to PC15, meaning D1 corresponds to PC1.
I place the oscilloscope probe on pin 12 of the upper palette RAM, and as expected, I get a constant +5V signal with no modulation. I measure the same on the Neo-G0 at pin 63, and it’s also a high +5V signal.
This also means that the line isn’t cut between this pin of the Neo-G0 and the palette RAM.
Allez, on regarde du côté de la broche du Neo-G0 qui reçoit les données du bus de données du 68000, et là, on n’a clairement rien.
Je prends mon multimètre en mode continuité, et je teste la broche 4 du 68000, qui est commune (D1) avec celle du Neo-G0, et… rien.
On a donc une belle piste coupée quelque part en chemin.
Et nous avons nos gagnants : deux pistes.
-----------------------------------------
Alright, let’s check the pin on the Neo-G0 that receives data from the 68000 data bus, and there’s clearly nothing there.
I take my multimeter in continuity mode, and test Pin 4 of the 68000, which is D1 connected to the Neo-G0, and… nothing.
So, we have a nice broken trace somewhere along the way.
And we have some winners: two broken traces
J’essaie un nouveau jump wire de chez Mechanic : le FX-9.
Et franchement, c’est le meilleur que j’ai essayé. Il se fixe juste en posant le fer dessus et se coupe super facilement…
D’habitude, je suis obligé de m’y reprendre 3 ou 4 fois ; ici, c’est instantané. Quel confort pour mes nerfs !
--------------------------------
I’m trying a new jump wire from Mechanic: the FX-9.
Honestly, it’s the best I’ve tried. It attaches just by placing the iron on it, cuts super easily…
Usually, I had to do it 3 or 4 times, but here it’s instant. Such a relief for my nerves!
Allez, encore un passionné qui va pouvoir jouer pendant les 30 prochaines années !
Bien sûr, un petit coup de résine verte UV pour sécuriser le tout.
------------------------------------
Another enthusiast ready to play for the next 30 years!
Of course, a quick coat of green UV resin to secure everything.