Fermer2
furrtekLe 27/06/2014 à 22:27
Encore sur 3 projets a la fois mais tant pis, au moins ça fait du contenu.
Amis connaisseurs des CD-ROMs, we need you !

Après avoir vu l'info concernant l’émulateur GD-ROM qui permet de lire des ISOs sur une carte SD, je me suis demandé sérieusement si Kuk ne m'avait pas donné une idée qui était en fait réalisable.

Voila l’idée: Remplacer la partie en rapport avec le CD par un émulateur qui prendrait aussi une carte SD avec des ISOs.
Images qui seraient éventuellement sélectionnables par des dipswitchs vu que le remplacement du BIOS pour ajouter un menu serait assez infecte.

Je me suis tapé la source de MESS et la doc du chip qui sert de host (LC89515, voir LC8951 qui est compatible), et il me semble qu'en effet, c'est pas si violent que ça en a l'air.

Quelques données vérifiées d'abord:
Le lecteur de la NeoGeo CD top fonctionne en vitesse x1 (150ko/s).
La correction d'erreur par le LC89515 est faite a la volée pendant le chargement des frames et n'introduit donc pas de délai.
La copie des secteurs depuis le cache du LC89515 vers la DRAM peut se faire a max 2.3Mb/s et se produit réellement a 2.28Mb/s. Ça pousse deja au max.

Charger le plus de données possible (7Mo) en une fois prend 51 secondes.
Si on considère seulement la vitesse du lecteur sans aucun délai, on a un max de (7*1024)/150 = 47.7 secondes.
Il n'y a donc que 3.3 secondes de perdues entre la lecture CD et le placement des données en DRAM. Délais qui me semble difficilement compressible sans re-concevoir la moitié de la console tongue

Ce que je veux essayer d’accélérer, en bref, c'est les 150ko/s du lecteur CD.
Pour cela, je compte complétement dégager le bloc CD et le host LC89515 pour caler à la place un montage qui va émuler un minimum le comportement du dit host et ainsi charger des secteurs a une vitesse admissible par la carte SD (dois-je risquer de parler de Mo/s ?).

Première étape: piger les i/o que le bios fait, sur émulateur.
Deuxième étape: vérifier que les i/o sont bien les mêmes a l'analyseur logique.
Troisième étape: essayer de faire passer la TOC depuis une mémoire flash contenant un ISO en raw.
Quatrième étape: recevoir et interpréter les seek pour charger tel ou tel fichier depuis l'ISO.
Cinquième étape: réussir a faire passer des fichiers Wave en tant que données CDDA.
Sixième étape: fête du slip.

Si vous voulez aider ou si vous avez de la doc ou des notes a partager, n’hésitez pas à passer sur #neogeodev sur freenode, on risque de parloter de la chose smile