YENO super cassette vision
-
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
-
@Pitch64 Oui, je sais pas encore comment ils fonctionnent mais je vais faire le nécessaire pour qu'ils aient les infos.
-
@MaaaX Je suis inscrit chez eux depuis longtemps, je peux faire passer les infos si besoin. Je peux pas les ajouter dans le Dat-o-matic, je n'ai pas les accès de ce côté
Ou si tu t’inscrit directement, il y a un forum
New Dumps & Redumps
où il suffit de créer un nouveau sujet avec les informations nécessaires tel que crc32, md5, sha1, la taille de la rom. Tu as un exemple ici de cartouche SCV trusted et la liste des jeux actuellement dans la base de données, sachant que ceux avec un point jaune ne sont pas trusted. Ceux en verts ont été trusted à plusieurs reprises et sont plus que confirmés étant des roms correctesAprès, faire tourner la rom pour compléter les fullsets.... C'est pas de mon ressort
-
@Pitch64 Salut,
Je leur ai envoyé un email directement et ils vont ajouter la nouvelle ROM au DAT-O-MATIC.
Merci. -
Bonjour,
J'ai un peu avancé sur la traduction du manuel de Basic Nyumon et il y a des choses qui vont m'être bien utile comme les instructions PEEK et POKE.
Ceci dit je n'ai pas tant avancé que ça car mes environnements de développement Mac et Windows ont implosés suite à une mise à jour d'OS X.En gros, suite à la mise à jour la partition Windows de mon Mac n'est plus bootable et impossible de compiler en ligne de commande sur la nouvelle version d'OS X et/ou de XCode. J'ai même compilé le dernier gcc "from scratch" en lignes de commande mais rien n'y fait: ça marche bien mais seulement jusqu'à ce que je reboote et que l'OS me remplace à nouveau ma version de gcc par celle de XCode, version qui ne veut rien savoir en ligne de commande et je ne veux pas utiliser XCode pour ce projet.
La partition Linux de mon Mac est toujours accessible mais elle a aussi quelques soucis car le Wifi se déconnecte sans arrêt depuis la mise à jour.Pas d'inquiétude toutefois pour le projet EmuSCV car les sources sont sauvegardées à plusieurs endroits.
Pour pouvoir avancer j'ai donc réinstallé une petite partition Windows 10 sur mon PC et le reste du disque avec mon Linux préféré, les deux avec tous les outils de développement, et là... tout va bien
C'est même plutôt mieux parce que mon PC est plus puissant que mon Mac.
La bonne nouvelle c'est que je peux vous dire que le projet tourne sous Linux et Windows.Il ne reste qu'à régler mes soucis sous OS X mais je vais y arriver... j'y arrive toujours.
@++
MaaaX ^^