[WIP 100%] Projet BricoNeo - Entrées et sorties via le connecteur de la ROM système

Chaine Youtube de notre ami "Referent Tech" spécialisé dans la reparation des consoles NeoGeo et autres
Répondre
Avatar du membre
Bouz
Expert Technique
Expert Technique
Messages : 1571
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Pays : 🇫🇷 FR
Contact :

Re: [WIP 76%] Projet BricoNeo - Entrées et sorties via le connecteur de la ROM système

Message par Bouz »

Illusionrip a écrit : sam. 27 janv. 2024 20:36 Bouz, je soude tout ce qui est soudable 😁
OK, ben je t'enverrai un kit, alors :)
Avatar du membre
Illusionrip
Administrateur
Administrateur
Messages : 486
Enregistré le : lun. 27 nov. 2023 17:13
Localisation : 7nm
Pays : 🇵🇱 PL
Contact :

Re: [WIP 76%] Projet BricoNeo - Entrées et sorties via le connecteur de la ROM système

Message par Illusionrip »

:love:
Avatar du membre
Bouz
Expert Technique
Expert Technique
Messages : 1571
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Pays : 🇫🇷 FR
Contact :

Re: [WIP 76%] Projet BricoNeo - Entrées et sorties via le connecteur de la ROM système

Message par Bouz »

L'impression 3D, on finit par y prendre goût...
C'est moins dégueu comme ça.

Image

Il me tarde de recevoir les composants manquants pour la 2ème face (un buffer 16 bits et 2 ferrites) pour pouvoir souder les rangées de connecteurs et faire les tests un peu mieux! Surtout que je dois encore bosser sur les timings, je ne suis pas encore sorti d'affaire et le concept n'est pas totalement éprouvé!

En attendant, je bosse sur la remise au propre du code et l'adaptation à la nouvelle stratégie de buffers (j'utilisais des bascules dans mon design précédent, et j'avais fait le code pour).

Je peux aussi attaquer la partie PC qui consiste à injecter une ROM dans le RP2040. Accessoirement, je devrais pouvoir faire du stockage de plusieurs images ROM dans la mémoire flash, et faire du hot swap instantané, mais attendons déjà de savoir si tout ça fonctionne dans sa version simple.

Je n'ose même pas vous dire tout ce que j'ai en tête en fonctionnalités soft sur cette plateforme!
Avatar du membre
Garfield56
Référent Technique
Référent Technique
Messages : 1107
Enregistré le : ven. 19 août 2022 03:14
Pays : 🇫🇷 FR

Re: [WIP 76%] Projet BricoNeo - Entrées et sorties via le connecteur de la ROM système

Message par Garfield56 »

Magnifique !
Avatar du membre
Bouz
Expert Technique
Expert Technique
Messages : 1571
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Pays : 🇫🇷 FR
Contact :

Re: [WIP 76%] Projet BricoNeo - Entrées et sorties via le connecteur de la ROM système

Message par Bouz »

Et coucou!

Hier, j'ai reçu les ferrites qu'il me manquait pour raccorder les lignes d'activation (OE/CE) à la circuiterie de ma carte.
Aujourd'hui, j'ai reçu les buffers qu'il me manquait pour la face inférieure. Ca y est, j'ai tout!
Je suis donc montré dans mon antre et j'ai soudé tout ça sur ma carte proto. J'ai enfin pu, du coup, raccorder les rangées de broches qu'il manquait pour en faire une véritable EPROM ;).
Tout y est!
Tout y est!
Jusqu'ici, j'avais travaillé totalement dans le vide au niveau du code. Je n'ai pas encore touché au code PC, qu'il faut reprendre complètement. Par contre, j'avais réécrit ce week-end et hier soir une amorce de quelque chose pour le microcontrôleur:
- Le code PIO pour une machine à états qui gère la lecture et l'écritude de données sur 16 broches du microcontrôleur via les buffers externes d'entrées/sorties
- La configuration de la chaîne de DMA (j'utilise 3 canaux, mais j'ai un souci avec le 3ème), qui gère la communication avec le PIO et l'accès mémoire
J'ai tout fait dans le vide, et je viens de faire les premiers tests.

Pour faire simple, j'ai rempli un tableau de words de 0x0000 à 0xffff, et je considère que c'est le contenu de la ROM. Je l'ai stocké dans la mémoire flash embarquée sur ma carte.

A la mise sous tension, je fais un transfer DMA du contenu de la mémoire en question vers la RAM, et j'attends les demandes d'accès à l'EPROM émulée. Le transfert se fait en environ 1ms pour 128ko. Ca turbine! L'idée étant de pouvoir charger une ROM avant que la NeoGeo ait eu le temps de démarrer elle-même!

Dans un premier temps, je fais des tests avec ce que j'ai de plus adapté pour ça: un lecteur d'EPROM!
Premières lectures
Premières lectures
Alors là, on voir qu'on n'est pas encore au point sur le contenu au départ, puis que ça roule par la suite. J'ai enlevé le câble USB, alors la carte est alimentée par le lecteeur d'EPROM juste avant la lecture. C'est un bon test du temps démarrage :).

Ce qui est super bizarre, c'est que j'ai systématiquement un décalage de 3 words au départ. Je ne parviens pas à trouver pourquoi, mais il se fait tard, alors on verra un autre jour!
Je lis 65536 mots, et le DMA enregistre 65539 accès. Il faut que j'arrive à trouver d'où viennent ces 3 accès mystères, qui injectent un décalage dans mon FIFO.

Dans tous les cas, je pense que je vais devoir gérer les cas où les lignes /OE et /CE sont laissées basses et où seules les lignes d'adresses changent. Ca va compliquer un poil les choses, mais ça éviterait ce genre de problèmes.

Bref, évidemment, il reste du boulot, mais pour un truc lancé après avoir bossé dans le vide, ce n'est pas si mal pour un premier démarrage.
Niveau électronique, en tout cas, ça semble bien tenir la route!
Avatar du membre
ragefan
Expert Technique
Expert Technique
Messages : 495
Enregistré le : mer. 22 nov. 2023 21:08
Pays : 🇫🇷 FR

Re: [WIP 80%] Projet BricoNeo - Entrées et sorties via le connecteur de la ROM système

Message par ragefan »

C'est magnifique !
Avatar du membre
Xrider
Administrateur
Administrateur
Messages : 5550
Enregistré le : sam. 14 sept. 2019 10:47
Localisation : MaskRom
Pays : 🇫🇷 FR
Contact :

Re: [WIP 80%] Projet BricoNeo - Entrées et sorties via le connecteur de la ROM système

Message par Xrider »

Quel bonheur de our ce projet se concrétiser !
Tu vas révolutionner le diag des NeoGeo !
Delta Store - Modchip - Mods - Tools - Modification pour vos consoles de jeux video
Delta island - Jeux Vidéo - Retro-Ingénierie - Développement Hardware & Software
Avatar du membre
Bouz
Expert Technique
Expert Technique
Messages : 1571
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Pays : 🇫🇷 FR
Contact :

Re: [WIP 76%] Projet BricoNeo - Entrées et sorties via le connecteur de la ROM système

Message par Bouz »

Garfield56 a écrit : dim. 28 janv. 2024 22:50Magnifique !
ragefan a écrit : mer. 31 janv. 2024 11:28 C'est magnifique !
Merci! ;)
Xrider a écrit : mer. 31 janv. 2024 19:53 Quel bonheur de our ce projet se concrétiser !
Tu vas révolutionner le diag des NeoGeo !
Révolutionner, je ne sais pas, mais j'espère bien arriver à faire des choses utiles.
Avant de m'emballer, il faut que j'aille jusqu'au bout de quelques trucs:
- Passer les données sans les décaler de 3 rangs :)
- Envoyer une ROM dans ma mémoire flash (c'est juste du soft sans surprise, ça devrait le faire)
- Faire tourner un MVS avec cette carte!
A ce moment-là, j'aurai juste une EPROM facilement programme pour 10x le prix d'une EPROM normale ;).
L'étape suivante sera donc:
- Intercepter les lectures à une adresse donnée pour envoyer des données vers le microcontrôleur.
C'est seulement là que je serai iso (un peu plus que ça, même) avec la carte précédente, et que les choses vont commencer à devenir très intéressantes.

Au boulot, donc, une étape après l'autre!
Avatar du membre
Bouz
Expert Technique
Expert Technique
Messages : 1571
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Pays : 🇫🇷 FR
Contact :

Re: [WIP 80%] Projet BricoNeo - Entrées et sorties via le connecteur de la ROM système

Message par Bouz »

Le coup du décalage, c'est corrigé! Une erreur de config sur un canal DMA, je voulais copier un mot de 16 bits, et je ne sais pas pourquoi, j'avais programmé 4 transferts de 16 bits au lieu d'un seul.
Du temps perdu, mais c'est comme ça qu'on apprend!
Avatar du membre
Bouz
Expert Technique
Expert Technique
Messages : 1571
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Pays : 🇫🇷 FR
Contact :

Re: [WIP 80%] Projet BricoNeo - Entrées et sorties via le connecteur de la ROM système

Message par Bouz »

... et je lâche l'affaire pour ce soir. J'aurais aimé pouvoir injecter une jolie ROM d'Unibios, mais la gestion du port USB est super pas simple sur Pico, je suis surpris que ce soit aussi compliqué!
Ce sera pour un autre jour!
Avatar du membre
Illusionrip
Administrateur
Administrateur
Messages : 486
Enregistré le : lun. 27 nov. 2023 17:13
Localisation : 7nm
Pays : 🇵🇱 PL
Contact :

Re: [WIP 80%] Projet BricoNeo - Entrées et sorties via le connecteur de la ROM système

Message par Illusionrip »

J’adore !!!!

Le nouveau SMK DAN est née, vive SNK BOUZ !!!! :merci:
Avatar du membre
Bouz
Expert Technique
Expert Technique
Messages : 1571
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Pays : 🇫🇷 FR
Contact :

Re: [WIP 80%] Projet BricoNeo - Entrées et sorties via le connecteur de la ROM système

Message par Bouz »

Illusionrip a écrit : jeu. 1 févr. 2024 09:06 Le nouveau SMK DAN est née, vive SNK BOUZ !!!! :merci:
N'exagérons rien!

Alors les progrès du jour...
- J'ai enfin réussi à utiliser le port USB. Ca n'a pas l'aid'une stabilité folle quand on debugge, par contre. Windows n'aime pas que l'USB ne donne pas de nouvelles pendant 10s quand on est sur un point d'arrêt. Il faudra que je m'en souvienne.
- Dans les trucs dont il faut se souvenir, il y a aussi le fait que le TL866 (le lecteur d'EPROM) envoie les demandes /OE et /CE alors que les lignes d'adresses ne sont pas stabilisées. Pour régler le problème de manière moyennement élégante, mais potentiellement temporaire (la cible, c'est la NeoGeo, pas le TL866), j'ai ajouté une temporisation de 20 nanosecondes dans la machine à état qui lit les adresses. 10s de correction, pour 2h de diagnostic!
- J'ai appris qu'on ne pouvait pas debugger le RP2040 si on avait plus de 4 points d'arrêt. Ca le fait planter au démarrage :).

En tout cas, le résultat, c'est ce qu'on voit sur le bout de vidéo ci-dessous:
- Ouverture de l'image de l'UNIBIOS 4.0
- Vérification de la pseudo EPROM par le logiciel (il compare ce qu'il trouve sur la carte avec l'image que j'ai chargée)
- Les deux images sont identiques.



Et ce qui se passe en vrai quand je clique sur le bouton "Verify":
- Le TL866 met la carte sous tension (en pendant alimenter une EPROM)
- Le BricoNeo initialise ses canaux DMA
- Il lance la copie en RAM par DMA de la ROM de l'Unibios que j'ai stocké dans la mémoire Flash (on peut en mettre 8 sans problème)
- Il initialise ses IO (pour utiliser le port USB)
- Il configure la machine à état qui scrutent et écrivent sur le bus (PIO)
- Il attend que la copie de la ROM en tâche de fond soit terminée
- Le TL866 n'a pas vu le temps passer, il commence à parler à la puce pour lire le contenu de la mémoire. L'initialisation a pris un peu moins d'une milliseconde.

Et la suite, alors?
Eh ben il faut courageusement enlever la ROM du slot MVS que j'ai dans ma borne (le seul fonctionnel que j'ai en ma possession!), placer la puce à la place, et voir si je peux jouer à Puzzle Bobble. Si je passe cette étape, je pourrai attaquer la partie écriture de données!
Si ça ne marche pas, il faudra faire en sorte que ça marche :).
Répondre

Retourner vers « Aurélien / Bouz "Technique" »