Illusionrip a écrit : ven. 5 avr. 2024 07:54

On t’as déjà dit que t’étais un ouf
Rétrospectivement, c'est vrai que c'est arrivé

.
Progrès du jour, bonjour!
Voilà la tête du lecteur qui est automatiquement monté quand on connecte la carte au port USB.
En parallèle, on peut toujours utiliser Putty ou n'importe quel terminal série pour parler avec la carte.
On a toutes les fonctionnalités d'avant, mais maintenant, en plus, quand on copie une ROM dans le répertoire CURRENT.ROM, elle est injectée dans la section de la RAM qui est accédée directement par la NeoGeo. Plus besoin de se déconnecter du terminal pour transférer une image de ROM!
J'en ai profité pour ajouter quelques rafinements. Voilà globalement ce que ça permet de faire dans l'immédiat (il y aura peut-être plus un peu plus tard, mais c'est moins prioritaire):
- Ouvrir un joli fichier README.TXT qui indique comment ça marche (limité à 512 octets, il va falloir être concis!)
- Injecter une image de ROM dans le simulateur d'EPROM =>
on peut booter la NeoGeo sur une ROM juste en la copiant dans un répertoire
- Injecter une image de ROM dans l'une des
8 banques supplémentaires, persistées dans la mémoire flash de la carte. On peut ensuite basculer d'un banc à l'autre avec le terminal.
La banque 0 est rechargée automatiquement à la mise sous tension de la carte
- Faire du
byteswap (ou non, comme on veut) au moment de l'injection. Sur NeoGeo, il faut inverser les octets pairs et impairs des ROMs (endianness, ROM 16 bits, ...). On peut balancer les ROM officielles directement. Pour les ROM compilées "maison", il suffit de remplacer l'extension ".bin" en ".nib" pour que ça réalise le byteswap tout seul en fin de copie.
- Résultat des courses,
pour développer des tests ou autre chose sur NeoGeo, il suffit d'
ouvrir un terminal pour piloter le lancement des tests, et de faire
pointer la sortie de build 68000 vers le répertoire CURRENT.ROM de la carte.

- La chose en action avec la dualité de vue de la même chose.
Dans le reste à faire, j'aimerais juste ajouter un fichier "RESULT.TXT" à la racine (ou quelque chose qui ressemble) qui renvoie l'état de la dernière opération (image byteswappée, transférée dans telle banque, de telle taille, ...).
Dans les trucs qui m'embêtent, je dois virer l'image ROM du répertoire après l'upload pour ne pas faire n'importe quoi avec la virtualisation du contenu du disque. La mécanique pour forcer un refresh côté hote USB n'est pas câblée dans TinyUSB. Je dois donc éjecter et réinsérer virtuellement le disque à chaque copie. Sous Windows, ça veut dire que la fenêtre se ferme et se réouvre à chaque copie. Je l'ai mise dans un coin et ça ne me dérange pas, mais ça peut être pénible sur d'autres plateformes.