YENO super cassette vision
-
Bonjour,
Good news, le projet emuSCV avance bien .
J'ai presque fini l'intégration du moteur RetroPC sur Linux C'est grossomodo la structure dans laquelle "tourne" l'émulateur eSCV... ainsi que plein d'autres émulateurs d'ailleurs...
Il me reste une bricole de code à régler pour récupérer le nom des classes mais c'est secondaire car c'est utilisé uniquement pour le débogueur intégré de RetroPC.Je ne suis pas encore passé partout mais l'intégration de eSCV se passe bien aussi. Normalement tout est déjà intégré, je n'ai pas d'erreur de compilation mais il reste encore un gros boulot pour tout tester.
Il reste à faire:
-
La semaine prochaine je devrai pouvoir enfin charger le BIOS et une ROM pour voir si ça tourne comme attendu en débogage pas à pas (pour le moment il n'y a rien de visible pour le commun des mortels hormis pour moi dans le code avec mon débogueur).
-
Il faut que je fasse tout le code de la partie "OSD" de RetroPC (c'est le terme utilisé dans RetroPC).
C'est ce qui est chargé de faire l'interface entre eSCV/RetroPC et l'extérieur (Libretro, Recalbox et vous ) pour tout ce qui est entrées (clavier, joysticks) et sorties (vidéo et son).
Pour le moment c'est une juste coquille vide. J'ai bien toutes les fonctions qui sont créées mais elles ne font encore rien.
Ça ne devraient pas être une étape trop compliquée vu que tout le boulot sera au final délégué à l'API Libretro (donc à Recalbox). J'ai déjà fait plein de tests et je sais déjà quoi faire pour que ça marche.
Arrivé là les premiers jeux devraient être enfin être jouables . -
Il faudra faire aussi en sorte que ça tourne sur Retroarch PC et Mac en plus de Linux.
Même si pour Recalbox c'est Linux qui nous intéresse, je tiens à ce que ça reste crossplatform et si je le fais au fûr et à mesure j'ai moins de risque d'avoir des régressions. -
Il faudra ensuite compiler une version pour Recalbox (du boulot Bkg2k et la team Recalbox) mais normalement si ca tourne sur Linux ca devrait bien se passer.
-
Enfin la cerise sur le Mac Do, il faudra que je fasse une interface jolibô pour pouvoir régler les options directement dans l'émulateur... mais on peut démarrer sans ça avec des options "standards".
Ouf!
Voilà! Des news la semaine prochaine. Des bisous.
Bon week-end
@++
MaaaX ^^ -
-
J'en bave déjà.......
Merci encore pour tout ton travail!! -
Bonjour les ami(e)s,
Alors j'ai tout petit peu en avance:
- le BIOS "upd7801g.s01" se charge bien dans emuSCV et il tourne sans cartouche, donc à priori sur le test vidéo avec les espèces de ballons que certains d'entre-vous connaissent.
- Je n'ai pour le moment chargé qu'une seule cartouche, celle de Astro Wars, et ça tourne aussi sans problème.
Comme à l'origine on peut charger n'importe quel fichier en tant que BIOS dans eSCV, avec les conséquences imprévisibles que ça peut engendrer, je vais rajouter une sécurité en faisant un contrôle sur le hash MD5 du contenu du fichier.
A ma connaissance il n'y a que 2 BIOS en circulation pour la Super Cassette Vision "bios.rom" et "upd7801.s01" mais qui sont en réalité le même fichier avec des noms différents ça ne devrait pas poser de problème.Il faut que je me batte un petit peu avec les chemins de recherche de eSCV pour les adapter à Libretro/Recalbox mais ça va le faire.
Prochaine étape: développer la partie vidéo de l'OSD RetroPC pour que ca affiche ENFIN quelque chose
Peut-être des news demain, sinon le vendredi suivant.
@++
MaaaX ^^PS: je cherche toujours le manuel de Basic Nyumon...
-
Superbe initiative de votre part ! Merci beaucoup pour votre détermination et votre partage, je suis les news de ce projet avec beaucoup d'attention !
-
Petit point rapide:
- le contrôle du BIOS est ajouté
-
Hello,
L'affichage a pris bien moins de temps que ce que je pensais
Avant de passer à la suite j'ai encore du boulot sur la partie qui gère l'émulation de la puce EPOCH-TV1 afin de pouvoir émuler l'affichage de la console YENO en plus de celui des consoles EPOCH (pour mémoire l'affichage est différent sur les consoles JP et FR).
Et puis c'est un peu brut de fonderie pour le moment et je vais bien sûr améliorer tout ça.Je voudrais revenir aussi sur la gestion de la config.
Pour le moment j'utilise celle de eSCV qui est basée sur un fichier .INI mais je vais modifier ça pour que ça soit complètement intégré à Libretro/Recalbox.
Et enfin il faut que ce que j'ai fait tourne aussi sur Mac et Windows en plus de Linux (oui sur la photo c'est un Mac mais avec un Linuxmint dessus).Des news ASAP.
Des bisous.
@++
MaaaX ^^ -
Bravo encore une fois ! J'adore suivre les projets comme ça (j'aimerai voir un peu plus les coulisses de recalbox d'ailleurs, mais bon), c'est passionnant !!
-
Bordel je suis comme un fou!!!
ça va me rappeler trop de souvenir ses conneries!!!! -
@MaaaX Wahou, super et merci de nous faire découvrir ou redécouvrir la Yeno Super Cassette Vision.
C'est très intéressant d'ailleurs de lire l'avancer de tes travaux
-
Bonsoir amis retrogamers,
Voici les dernières news du front sur le projet EmuSCV:
- Je suis d'ores-et-déjà en mesure de gérer la surface d'affichage de toutes les consoles (les 2 JP et la FR), et même un peu plus car la zone d'image gérée est en fait beaucoup plus grande que ce qui est affiché au final à l'écran.
En gros ça fonctionne comme ça: plusieurs fonctions dessinent les textes, les blocs et les graphiques dans une zone mémoire de 320x320 pixels appelée "text buffer" utilisant 16 couleurs. Une autre fonction dessine les sprites dans une autre zone mémoire appelée "sprites buffer" (320x320, 16 couleurs). Ensuite on mixe les deux buffers en copiant d'abord le "text buffer" en mémoire vidéo avec les 16 couleurs affichées puis le "sprites buffer" mais en 15 couleurs, la couleur 0 servant de couleur transparente.
La couleur 0 est le bleu qu'on peut apercevoir subrepticement quand on fait un reset sur console (puisqu'on remplit la mémoire vidéo avec la couleur 0).
Notez qu'il y a léger décalage quand on fait la composition des deux buffers (cadre bleu sur l'image suivante: "text buffer", rectangle rouge: "sprites buffer").
Si on voulait tout afficher il faudrait avoir une résolution de 324x322, ce qui est assez loin de la résolution finale affichée à l'écran. Je ne peux pas vous mettre de vidéo ici mais les sprites vont parfois assez loin hors de la zone visible à l'écran.
Pour ceux qui se demande combien on affiche de sprites en même temps sur le test vidéo, en vrai ça donne ça (certains ballons sont invisibles car de la même couleur que le fond):
- Il reste un gros souci à régler pour Kung-Fu Road qui présente des bugs graphiques. Il faut que je creuse pour savoir si c'est un problème de eSCV, l'émulateur sur lequel je me base, où si c'est la ROM qui est pourrie. TAKEDA Toshiya, le créateur de eSCV, avait botté en touche en bidouillant le cadrage et en ne dessinant pas la partie haute du "sprites buffer" pour cette cartouche afin que les faux sprites s'affichent hors de l'écran. D'après mes tests je crains qu'il y ait un risque pour que ça écrive des données la ou ça ne devrait pas, il faut absolument que je résolve ce bug et j'ai commandé le matériel pour pouvoir réextraire le contenu des puces de MA cartouche d'origine pour vérifier ( ). Au passage la ROM que j'ai pour Astro Wars n'a pas les mêmes couleur que sur la vraie version (mais là j'ai la cartouche en double).
- Autre petite chose bien moins grave: je n'ai pas les bugs d'affichage de la console Yeno avec les jeux Boulder Dash et Doraemon.
Il devrait y avoir des restants de texte en haut de l'écran que je n'ai pas du tout sur l'emulo. Ca n'est pas grave en soit mais je chercherai pourquoi afin d'émuler parfaitement toutes les consoles.
-
J'ai eu quelques soucis pour charger certaines ROM mais j'ai trouvé pourquoi: eSCV n'est pas capable de charger certaines ROM telles qu'on les trouvent sur Internet car il est nécessaire de placer les blocs de données à certain endroits précis de la mémoire. Si les blocs doivent être chargés dans l'ordre à partir du début de la mémoire tout va bien sinon ça ne tourne pas.
Sur les cartouches d'origine, l'ordre des banques et leur adresse mémoire étaient définies en dur par le cablage sur la PCB (la carte électronique dans la cartouche) or c'est une information qu'on a pas dans les fichiers ROM.
TAKEDA Toshiya avait rencontré le même problème et crée un format de fichier spécifique pour remettre à disposition cette info (format pas ou peu documenté et il faut faire tout le boulot de création du fichier à la main). Il fournit dáilleurs avec le code source quelques exemplaires de ROM modifiées qui elles se chargent donc bien.
Personnellement je trouve que son format est quelque peu restrictif si on veut pouvoir faire du homebrew plus tard.
Je suis donc en train de peaufiner mon propre format pour EmuSCV (.cart pour les cartouches et .sram pour les sauvegardes), format que je documenterai. Je fournirai un outil cross-plateforme pour ceux qui souhaite recréer eux-même les fichiers à partir des ROM en circulation. (Nous sommes bien d'accord que je n'ai légalement pas le droit de fournir ni le BIOS, ni aucune ROM). -
Et sinon je n'ai pas du tout eu le temps de mettre le nez dans le recodage de la config pour l'intégrer totalement au fonctionnement de Libretro/Recalbox.
Encore merci à Fred pour les quelques photos du manuel de BASIC Nyumon qu'il doit m'envoyer (Fred lis ces lignes, ne m'oublie pas ).
Prenez soin de vous et à la semaine prochaine pour de nouvelles aventures.
@++
MaaaX ^^ - Je suis d'ores-et-déjà en mesure de gérer la surface d'affichage de toutes les consoles (les 2 JP et la FR), et même un peu plus car la zone d'image gérée est en fait beaucoup plus grande que ce qui est affiché au final à l'écran.
-
Bonsoir tout le monde,
Un petit point pour vous dire où j'en suis du développement de l'émulateur EmuSCV:
- Le format de fichier est créé et ne devrait plus trop bouger. Finalement c'est du .CART pour les cartouches et du .SAVE pour les sauvegardes des cartouches avec piles.
Je n'ai pas encore pu créer les fichiers pour toutes les ROMs mais les jeux suivants fonctionnent sur la démo (pas de manette active pour le moment pour tester plus) :
Astro Wars
Astro Wars II
Basic Nyumon + sauvegarde
Boulder Dash
Comic Circus
Dragon Ball
Doraemon
Dragon Slayer + sauvegarde
Elevator Fight
Kung-Fu Road
Lupin III
Mappy
Milky Princess
Miner 2049er
Nebula (2 versions)
Professional Wrestling
2 jeux me résistent encore un peu:
Pole position 2
Pop & Chips
J'ai déjà réussi à les faire tourner dans eSCV donc il n'y a pas de raison... je vais trouver.-
En plus du format de fichier propriétaire je vais ajouter la possibilité de charger les ROMs brutes de fonderie, si elles passent directement tant mieux. Pour les ROMs connues ça créera le fichier .CART correctement formaté à la volée (le .SAVE est créé automatiquement pour les jeux avec sauvegarde).
-
J'ai trouvé d'où venait le problème de couleurs sur Astro Wars: c'est un "bug" de eSCV et Mame. En fait mes prédécesseurs Takeda et Enri n'avaient pas trouvé comment était gérés la couleur des sprites 2 couleurs et ils avaient mis en place une solution qui marchait la plupart du temps mais pas pour Astro Wars qui use et abuse de ce type de sprites... mais j'ai trouvé
Je n'ai pas encore fini de saisir l'ensemble des palettes de couleurs mais c'est en cours et ça fonctionne bien.
-
J'ai aussi corrigé le masquage des sprites tout en haut de l'écran. Dans eSCV, Takeda masquait un peu trop de sprites, ce qui ne gênait pas sur la version japonaise mais du coup il manquait des sprites en haut de l'image avec le cadrage de la version européenne (les étoiles sur les deux Astro Wars par exemple).
-
J'ai réussi à récupérer presque tous les "bugs" d'affichage d'origine qu'on trouvait sur plusieurs jeux.
o Le texte en trop en haut dans Doaemon et Boulder Dash sur la console Fr (pas le même cadrage que la console Jp pour lequel le jeu a été développé).
o Le sprite en trop en bas à gauche dans Nebula sur la console Jp (c'est le dernier sprite de droite des pyramides qui déborde de la ligne et se retrouve affiché à gauche)
o Certains grands sprites qui disparaissent à gauche sur la console Jp quand le décor défile (Kung-Fu Road, Nebula, Lupin III, etc.)
-
Pour les sprites supplémentaires moches de Kung-Fu Road, j'ai opté pour la solution utilisée par eSCV et Mame, à savoir que dans certains modes graphiques on n'affiche tout simplement pas les sprites sur une bande en haut de l'écran.
Je ne pense pas que ça soit la solution idoine (vous chercherez "idoine" dans le dico ) mais ça fera l'affaire en attendant que je puisse injecter du code dans une vrai cartouche et tester du code sur mes consoles (c'est prévu mais c'est un peu long et compliqué à faire). -
J'ai presque fini de déterminer le cadrage des consoles Jp (cadre rouge) et Fr (cadre bleu).
Il faut que j'arrive à faire tourner Pop & Chips pour avoir des repères vraiment précis mais ça va venir.
Le cadrage d'EmuSCV sera entre les 2, comme expliqué précédemment.
Juste pour le fun je vous ai mis des captures où on voit ce que les joueurs ne voyaient jamais. Et une de plus pour la route
Je vous donnerai d'autres news la semaine prochaine si j'ai suffisamment avancé sinon dès que possible.
@++
MaaaX ^^ - Le format de fichier est créé et ne devrait plus trop bouger. Finalement c'est du .CART pour les cartouches et du .SAVE pour les sauvegardes des cartouches avec piles.
-
PS: Le "bug d'origine" qui me reste à retrouver c'est le texte supplémentaire en haut.de l'écran dans Boulder Dash. Maintenant il y a bien des caractères mais au lieu d'avoir plein de carrés vides j'ai quelques carrés plein. Je vais regarder si ça vient de la font des caractères ou si c'est un bug de la fonction de dessin "semi-graphique". Ceci-dit c'est pas grave du tout
-
@MaaaX said in YENO super cassette vision:
PS: Le "bug d'origine" qui me reste à retrouver c'est le texte supplémentaire en haut.de l'écran dans Boulder Dash. Maintenant il y a bien des caractères mais au lieu d'avoir plein de carrés vides j'ai quelques carrés plein. Je vais regarder si ça vient de la font des caractères ou si c'est un bug de la fonction de dessin "semi-graphique". Ceci-dit c'est pas grave du tout
Je n'ai pas connu ces machines, mais tout ça est passionnant
-
@nicko C'est passionnant pour moi aussi surtout que la Super Cassette Vision c'est ma console de cœur. C'est ma deuxième console mais c'est surtout ma première "vraie" console, la première étant un vieux machin façon Pong (Saft Leclenché TV 8 Sport pour ceux qui connaissent).
-
@MaaaX ma première aussi
-
Bonsoir,
J'ai déjà élucidé le mystère du "bug d'origine" du texte supplémentaire en haut de Boulder Dash sur la console Fr qui s'affichait mais pas comme attendu (pas assez de caractères et des gros carrés au lieu de carrés un peu plus petits).
A la question est-ce que c'est un problème de police de charactère, un problème de l'émulateur ou un problème de ROM? la réponse est "les trois mon capitaine"
-
C'est à la fois un problème de police de caractère et un problème de l'émulateur car eSCV utilise la table de caractères du BIOS contenu dans le processeur NEC μPD7801G, auquel il ajoute 32 symboles spéciaux qui manquent.
Les consoles, elles, utilisent en réalité la table de caractères interne de la puce graphique EPOCH TV-1 qui est différente de celle du BIOS (ce sont les mêmes caractères mais avec une police différente). -
C'est également un problème de ROM car j'ai découvert que le nombre de caractères affichés est différent entre la cartouche japonaise et la cartouche française.
La ROM que j'utilise ne correspond tout simplement pas à la cartouche que j'avais prise pour modèle.
Heureusement dans un coin de mon disque dur j'ai un dump de la table de caractères de la puce EPOCH TV-1.
Je suis donc en train de remettre tout ça d'aplomb pour qu'EmuSCV utilise la bonne table de caractères.Plus ça va et plus je me rapproche du fonctionnement des vraies consoles et ça me fait bien plaisir
-
-
Non seulement tu vas intégrer l'emu à libretro mais en plus tu es en train de très largement le paufiner ! Bravo !
-
Bonsoir amis rétrogamers et rétrogameuses,
Gros point de fin de semaine car pas mal de news à vous donner.
J'ai créé les ROMs au format .CART pour toutes les ROMs existantes. Tous les jeux se chargent et tournent sur EmuSCV.
Pour les jeux dont la cartouche permettait de sauvegarder (celles avec un emplacement pour 2 piles), un fichier .SAV est enregistré automatiquement au déchargement du jeu.
Si vous essayez de charger une ROM brute d'extraction telles que récupérées sur Internet et qu'elle est connue d'EmuSCV, l'émulateur vous crée le fichier .CART correspondant et le lance dans la foulée. Ça fonctionne pour les ROMs en un seul fichier .bin, .rom, ou n'importe quoi d'autre et pour les ROMs en plusieurs fichiers .0, .1, .2, .3 (32Ko maximum par fichier).
Petit aparté concernant le jeu Boulder Dash pour lequel j'ai extrait les données de la ROM de la cartouche européenne, données qui s'avèrent être différentes de celles de la version japonaise. Je n'avais trouvé cette ROM nul part sur Internet et elle n'est même pas encore connue de No-Intro.
Cette ROM est bien sûr également gérée par EmuSCV.La démo de tous les jeux fonctionnent parfaitement sauf 5 qui fonctionnent mais pour lesquels il me reste des mystères à élucider:
- Boulder Dash (encore lui): le dessin des sprites des diamants sur le 2ème et le 4ème quart vertical de l'écran utilisent un mode d'affichage particulier qui n'était pas géré du tout par eSCV. Dans ce mode il semble que le premier sprite doit être affiché comme un "sprite 2 couleurs" mais avec les deux couleurs inversées mais je ne sais pas encore quel index de sprite je dois afficher.
- Kung-Fu Road: Il faut que je trouve comment les vraies consoles gérent le masquage des sprites moches en haut de l'écran car après plusieurs tests je me suis aperçu que la façon de contourner le problème choisie par eSCV et Mame n'est pas la bonne . En effet dans la 2ème scène du jeu on peux monter sur le mur en faisant un grand saut (haut puis haut-droite) et si on refait un grand saut depuis le mur, le personnage disparait en haut de l'écran, ce qui n'est pas le cas sur les vraies consoles.
- Lupin III: dans la dernière scène il manque le dessin des "briques" qui devraient être présentes.
- Y2 Monster Land: dans eSCV il y a une rustine dans le code pour éviter un blocage de la machine virtuelle due au son et je n'aime pas les rustines car ça crée de la dette technique. Il faut que je trouve pourquoi ça bloque dans ce cas précis (c'est moi qui vais payer la dette).
Pour essayer d'avancer j'ai contacté la société EPOCH pour savoir s'ils avaient encore des infos techniques qui pourraient m'aider. J'ai eu un premier retour pour savoir qui j'étais mais je n'ai plus aucune nouvelle depuis.
J'ai aussi essayé plusieurs fois de contacter TAKEDA Toshiya, le créateur d'eSCV avec l'aide de Mr Enri et de Mr 333, mais je n'ai malheureusement pas eu de réponse.Ceci dut j'ai pu flasher une EEPROM pour injecter mon code dans une cartouche. Je pourrai donc tester mon propre code sur les vraies consoles et faire du rétro-engineering pour valider des hypothèses sur les mystères restants à élucider.
Enfin je remercie encore Fred qui m'a procuré une copie complète du manuel de Basic Nyumon, ce qui m'aidera certainement à comprendre certaines choses.
Le manuel faisant plus d'une centaines de pages tout en Japonais ça va me demander un peu de temps pour tout traduire et le reste va pas trop avancer pendant ce temps là.J'essaye de vous donner des nouvelles en fin de semaine prochaine.
@++
MaaaX ^^ -
Tu gères ! Bravo pour ton boulot, et pour tes comptes rendus !
-
@MaaaX said in YENO super cassette vision:
Petit aparté concernant le jeu Boulder Dash pour lequel j'ai extrait les données de la ROM de la cartouche européenne, données qui s'avèrent être différentes de celles de la version japonaise. Je n'avais trouvé cette ROM nul part sur Internet et elle n'est même pas encore connue de No-Intro.
Ça serait bien de l'avoir dans la base de données