Bricopain: The Briconeo's best friend !!!!!!

Publié le par illusionrip

Au début de mes aventures dans l’électronique, j’avais fabriqué un petit outil qui permettait de tester la continuité des pistes entre le port cartouche et la console — Neo Geo, bien sûr. :)

At the beginning of my adventures in electronics, I built a small tool that allowed me to test the continuity of the traces between the cartridge port and the console — Neo Geo, of course. :)

Au fil du temps et des réparations, je me suis dit que je pourrais faire la même chose, mais avec des LED, afin de voir directement les pistes qui ne réagissent pas et ainsi trouver les problèmes beaucoup plus rapidement.

Entre-temps, j’ai reçu un Briconeo pour pousser les tests encore plus loin. Et franchement, ça a complètement changé ma façon de faire mes réparations et mes analyses.

Over time, and as I worked on more and more repairs, I thought I could do the same thing but with LEDs, so I could immediately see which traces weren’t responding and find problems much faster.

In the meantime, I got a Briconeo to take my testing even further. And frankly, it completely changed the way I approach repairs and troubleshooting.

Je me suis alors posé une question : pourquoi ne pas essayer de créer une interface sur le port cartouche qui puisse aller encore plus loin que le Briconeo, mais cette fois du côté graphique ?

Pourquoi passer par le port cartouche ?

Le bus graphique est en quelque sorte caché du bus 68000. Le CPU ne peut pas accéder directement aux VRAM : il doit passer par le LSPC2 pour y écrire.

En revanche, en se plaçant directement sur le port cartouche, on a accès au bus graphique ainsi qu’aux différents signaux qui permettent de le synchroniser et de le temporiser.

Et là, ça devient intéressant.

L’idéal serait donc d’avoir une seule interface capable à la fois de piloter le Briconeo et d’effectuer des tests beaucoup plus spécifiques sur la partie GFX de la Neo Geo.

L’idée du Bricopain — le copain du Briconeo — était née. :)

Le problème, c’est que tout ça est quand même un peu gros pour moi.

Cela fait donc maintenant presque un an que je me renseigne sur les composants, la logique numérique, les FPGA, les différentes façons de récupérer les signaux, de les analyser, etc.

Et petit à petit, j’ai commencé à designer mes propres cartes.

Le Bricopain sera donc à la fois un outil d’analyse visuelle et logicielle.

That led me to a question: why not try to create an interface for the cartridge port that could go even further than the Briconeo, but this time focusing on the graphics side?

Why use the cartridge port?

The graphics bus is, in a way, hidden from the 68000 bus. The CPU cannot access the VRAM directly: it has to go through the LSPC2 to write to it.

However, by connecting directly to the cartridge port, we gain access to the graphics bus as well as the various signals used to synchronize and time it.

And that’s where things start to get interesting.

Ideally, I wanted a single interface capable of both controlling the Briconeo and performing much more specific tests on the Neo Geo’s GFX section.

And so the idea of the Bricopain — the Briconeo’s buddy — was born. :)

The problem is that all of this is still a pretty big project for me.

So, for almost a year now, I’ve been learning about components, digital logic, FPGAs, the different ways of capturing signals, analyzing them, and so on.

And little by little, I started designing my own boards.

The Bricopain will therefore be both a visual and software-based diagnostic tool.

 

 

 

Un ESP32 sera chargé de piloter une interface Web et de programmer le FPGA. Le FPGA contiendra toute la logique nécessaire pour récupérer les différents signaux du bus graphique, les synchroniser et les analyser.

Et évidemment, pour faire cohabiter tout ce petit monde avec la logique 5 V de nos vieilles Neo Geo : beaucoup, mais alors beaucoup de level shifters !

Un défi avant tout personnel

Cette carte ne sera certainement pas destinée à la vente. Elle est relativement coûteuse à produire et, depuis le début, je vois surtout ce projet comme un défi personnel, bien plus que comme un projet commercial.

Après des mois à travailler dessus, j’ai finalement lancé un premier batch de PCB en production.

Quelques semaines plus tard, les cartes arrivent.

Je commence le montage avec un peu la boule au ventre, en pensant à toutes les conneries que j’ai forcément dû faire… ou à tous les petits détails que j’ai pu oublier.

Bon, évidemment, il y avait quelques trucs. :D

Les paires différentielles, par exemple… disons que ce n’était pas exactement ça. Mais quand tu ne sais pas, tu ne sais pas. C’est aussi comme ça qu’on apprend.

Et finalement, après quelques corrections et pas mal de vérifications, ça commence à fonctionner plutôt pas mal !

 

An ESP32 will be responsible for running the web interface and programming the FPGA. The FPGA will contain all the logic needed to capture the various signals from the graphics bus, synchronize them, and analyze them.

And of course, to make all of this coexist with the 5 V logic of our good old Neo Geo hardware: lots — and I mean lots— of level shifters!

First and foremost, a personal challenge

This board will most likely never be intended for sale. It is relatively expensive to produce, and from the very beginning, I’ve seen this project primarily as a personal challenge rather than a commercial product.

After months of working on it, I finally sent the first batch of PCBs into production.

A few weeks later, the boards arrived.

I started assembling them with a bit of a knot in my stomach, thinking about all the stupid mistakes I must have made… or all the little details I might have forgotten.

Well, obviously, there were a few things. :D

The differential pairs, for example… let’s just say I didn’t exactly get those right. But when you don’t know, you don’t know. That’s also how you learn.

And finally, after a few corrections and a lot of checking, things are starting to work pretty well!

 

J’arrive maintenant à flasher le firmware de l’ESP32 et, surtout, j’arrive même à communiquer avec le Briconeo d’Aurélien via la liaison UART.

je peux meme lancer les tests depuis la console , et changer des bios en direct en appuyant sur les bank correspondantes 

 

I can now flash the ESP32 firmware and, more importantly, I can even communicate with Aurélien’s Briconeo via the UART connection.

I can even launch the tests directly from the console and switch BIOSes on the fly simply by selecting the corresponding banks.

j'ai aussi une page intégré qui rappel l'utilisation des commandes du BricoNeo 

I’ve also added a built-in page that provides a quick reference for the Briconeo commands.

Ce n’est encore que le début, mais voir les deux communiquer pour la première fois après tout ce travail, c’est déjà une sacrée étape.

Maintenant, il va falloir s’attaquer sérieusement à la partie FPGA et aux signaux graphiques de la Neo Geo.

Et c’est probablement là que les choses vont vraiment devenir intéressantes…

to be continued

 

This is still just the beginning, but seeing the two communicate for the first time after all this work is already a huge milestone.

Now it’s time to seriously tackle the FPGA side of things and start working with the Neo Geo’s graphics signals.

And that’s probably where things are really going to get interesting…

To be continued…

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article