YENO super cassette vision
-
Bonsoir @Secamfr,
Merci de m'avoir signalé le problème.
Vérifications faites je confirme qu'il y a bien un souci de performance et de son au moins sur la dernière version de Recalbox.
Sur PI0 ça rame mais c'était déjà le cas avant, donc le son aussi, mais j'ai l'impression que ça rame plus et que le canal PCM 1bit ne fonctionne plus.
Sur PI3 ça saccade et le son sature sur le Canal PCM 1bit (d'où les fameux bruits de mouche).
Sur PI4 ça tourne bien mais il y a le même problème de son.
Je n'ai pas pu tester sur Recalbox Odroid ni sur Recalbox PC mais ça tourne normalement sur Retroarch Linux-PC (performance, vidéo, audio et tout et tout).Je ne sais pas ce qui a changé entre-temps mais, comme je n'ai pas touché au son depuis avril 2021, je pense que le problème est plutôt lié à la compilation ou une bibliothèque sur la ou les dernières versions de Recalbox (aux dernières nouvelles tout fonctionnait en 7.2.2 sauf sur PI0 où ça ramait).
Je vais chercher d'où vient le problème exactement et le corriger.J'avais commencé à tout réécrire pour gagner en performance mais c'est très long à faire et je travaille en parallèle sur d'autres émulateurs pour Recalbox. La nouvelle version optimisée d'EmuSCV ne sera donc sans doute pas dans la prochaine correction liée à l'audio.
Je te donne des nouvelles ASAP.
@++
EPOCH84 (aka MaaaX) -
@maaax Je suis sur Pi4 mais je n'avais pas souvenir d'avoir entendu ces sons PCM, c'est ce qui m'a choqué en regardant la vidéo
-
Pas de problème de son sur Recalbox Odroid et PC. Donc ça ne touche que les Raspberry Pi.
Je cherche... -
bonjour, juste pour info
vu sur le groupe recalbox entraide sur facebook ces derniers jours
depuis la v8, les jeux en zip se bloquent, et les utilisateurs recommandent de dézipper pour que ça fonctionne.lien du post en question :
https://www.facebook.com/groups/RecalboxOfficiel/posts/1623539937988460/ -
@lezone Bonjour,
Il y aura un correctif dans la prochaine version. Pour le moment, la seule solution est de les décompresser.
Bonne journée. -
-
@secamfr Merci pour le retour.
Les autres jeux en .ZIP fonctionnent?
Je vais regarder ces 3 là parceque ce sont ceux au format ROM en ".0", ".1", etc. et peut-être que ça ne charge que le premier fichier.Est-ce que tu peux me dire STP s'il y a bien deux fichiers dans le .ZIP?
-
@maaax Oui tous les autres fonctionnent
Effectivement les 3 jeux on bien 2 roms en .0 et .1
-
Merci @secamfr
Je vais regarder ça.
En attendant que je corrige tu peux dézipper les ROMs ça fonctionnera. -
@maaax Oui je sais en dezippant ça marche
-
@Secamfr
Je confirme que Retroarch n'extrait que le premier fichier qu'il trouve. Je vais voir s'il y a un moyen de lui demander de tout extraire sinon il faudra que je me charge de l'extraction moi-même.Pour le son je viens de tester sur Pi0 en 8.0.1 et sur Pi3b+ et Pi4 en 8.0.2 et j'ai toujours les craquements à la place du son du canal PCM 1bit.
Tu as quoi comme matos et comme version de Recalbox?PS: sur Recalbox PC le son est correct et je n'ai pas pu tester sur d'autres plateformes.
-
@maaax J'ai testé sur la 8.1-Beta9 sur Pi4...
-
Merci @secamfr
Je vais retester ça.
Pour les .ZIP contenant plusieurs fichiers je confirme que je vais devoir coder l'extraction... -
Bonsoir,
Le problème de son (canal PCM 1bit) et de chargement des ROMs multifichiers (.0, .1, .2, .3) depuis une archive .zip sont réglés (EmuSCV v0.10.20220310130100).
Ca sera dispo dans la prochaine version de Recalbox.@++
EPOCH84 (aka MaaaX ^^)P.S.: pour les pressés les dernières versions d'EmuSCV pour Windows, Mac et Linux sont disponibles là: http://www.maaax.com/emuscv/binaries/last/
-
@maaax Merci, il n'y a plus qu'a attendre la nouvelle version de Recalbox
-
Hello world!
Comme (pas) promis voici quelques explications concernant mon émulateur EmuSCV.
Tout d'abords un peu d'Histoire... ouvrez la parenthèse... mode roman ON...
Non je ne suis pas parti de rien, ça aurait été trop de travail pour un seul homme, et le but c'était aussi que ça soit intégré "rapidement" à Recalbox. J'ai donc commencé mes recherches en testant les deux seuls émulateurs existants à ma connaissance: eSCV et MESS/MAME (initialement dans MESS qui a été intégré dans MAME ensuite).
Après inspection, il se trouve que MAME reprend simplement le code d'ESCV, avec des couleurs un peu plus jolies mais sans le canal audio PCM 1bit.Je me suis donc tourné vers eSCV qui est le fruit du retro-engineering de Mr Enri et des recherches de TAKEDA Toshiya. Deux personnes que je ne peux que remercier et à qui je rends hommage ici. Sachant que la Super Cassette Vision n'était pas du tout documentée au départ, ils ont fait un travail titanesque sur plusieurs années pour décortiquer le matériel, comprendre son fonctionnement et finalement créer eSCV... il y avait encore beaucoup de zone d'ombre mais franchement chapeau parce que le fonctionnement de cette console d'apparence toute bête est tout sauf simple à comprendre.
L'émulateur eSCV avait donc le mérite d'exister mais il a été extrêmement difficile d'en trouver une version "récente" avec pas trop de corrections à faire pour que ça soit compilable rapidement et que ça fonctionne un minimum. Cet émulateur n'est bien sûr prévu que pour Windows au départ et a énormément de bugs et de lacunes mais c'est la meilleure base de départ que j'ai pu trouver.
Partant de là j'ai corrigé pas mal de bugs et surtout j'ai réécrit une bonne partie du code pour transformer l'émulateur autonome en un core Libretro qui puisse tourner sur un frontend Windows, Mac ou Linux (dont Recalbox qui est un Linux). Ca vous permet de bénéficier du rembobinage, de l'avance rapide, des sauvegardes, etc. bref de toutes les fonctions qu'on aime bien dans Recalbox.
Comme je suis quelque peu perfectionniste sur les bords j'ai fait énormément de recherches complémentaires sur les vraies consoles japonaises (EPOCH) et française (YENO) pour que mon émulateur colle encore mieux au comportement réel des machines.Sans vouloir me vanter, grâce à tout le travail accompli, je pense vraiment qu'EmuSCV est le meilleur émulateur qui existe aujourd'hui pour la Super Cassette Vision... et il est dans Recalbox
Ceci dit j'ai encore quelques recherches à faire pour élucider les derniers mystères qui me résistent et quelques améliorations qui s'imposeront pour que mon émulateur soit enfin parfait (notez qu'EmuSCV n'est toujours pas en version finale, ça n'est pas pour rien).
Au passage je remercie Frédéric PETRUCCI, mon fournisseur officiel de cartouches SCV, @barbudreadmon qui m'a mis le pied à l'étrier du dev Libretro, @Bkg2k qui m'a beaucoup aidé pour l'intégration et l'optimisation dans Recalbox, ainsi que tous les gens comme les bêta-testeurs de Recalbox qui ont participé au projet de prêt ou de loin ( @Karlito si tu m'écoutes...).
Fin de ma grosse parenthèse. mode roman OFF.
...
-
..;
Pour commencer la partie "manuel utilisateur", il faut savoir qu'EmuSCV supporte toutes les consoles Super Cassette Vision (pour les puristes) plus un mode adapté pour améliorer l'affichage (pour les utilisateurs lambda).
Les options d'EmuSCV sont accessibles par l'item "Options" du menu rapide de Retroarch (hotkey+bouton du bas dans Recalbox pour accéder au menu rapide).
Toutes les options sont sur AUTO par défaut.Option CONSOLE: elle permet de choisir le mode de fonctionnement général de l'émulateur et l'apparence du menu.
La valeur choisie a une incidence sur les autres options en AUTO.
- AUTO: équivalent à EPOCH pour l'affichage du menu.
- EPOCH: fonctionnement comme sur une EPOCH Super Cassette Vision japonaise (la normale). Menu anglais noir.
- YENO: fonctionnement comme sur une YENO Super Cassette Vision française. Menu français noir.
- EPOCHLADY: fonctionnement comme sur une EPOCH Super Cassette Vision LADY japonaise (la rose). Menu anglais rose.Option DISPLAY: elle permet de choisir le cadrage de l'image.
Voir aussi l'option DISPLAYFULLMEMORY
- AUTO: équivalent à EMUSCV
- EMUSCV: cadrage adapté à l'émulation permettant de ne pas avoir les bugs d'affichage spécifiques aux vraies consoles.
- EPOCH: cadrage comme sur une console japonaise, avec les bugs correspondants. Notez qu'on voit les grands sprites qui disparaissent à gauche de l'écran pendant les scrolling (Lupin III) et des sprites normalement affichés tout à droite qui apparaissent parfois à gauche (Nebula)... comme sur les vraies.
- YENO: cadrage comme sur la console française avec une bande d'image supplémentaire affichée en haut (Doraemon) et une bande noire en bas... comme sur la vraie.Option PIXELASPECT: elle permet de choisir le ratio largeur/hauteur des pixels.
- AUTO: équivalent à RECTANGULAR
- RECTANGULAR: pixels rectangulaires comme sur les vraies consoles.
- SQUARE: pixels carrés. Utile seulement pour faire des captures d'écran propres à étirer ensuite.Option RESOLUTION: elle permet de choisir la résolution d'affichage et la qualité du menu.
Peut être utile pour avoir une image plus propre quand on est pas en Pixel Perfect et un plus joli menu. Plus la résolution est élevée, plus ça rame.
- AUTO: équivalent à LOW uniquement sur Recalbox. Pour les versions autres que Recalbox: LOW de PI 0 à PI 2, MEDIUM sur PI 3 et HIGH sur tout le reste (PI 4, WINDOWS, LINUX, MAC, etc.).
- LOW: basse résolution "d'origine" des vraies consoles (un peu adapté quand même pour avoir des pixels rectangulaires propres). Menu tout moche (pas pu faire mieux, désolé). Sur PI 0 ça rame un peu quand même.
- MEDIUM: résolution moyenne. Menu un peu plus joli. C'est le max qui passe sur PI3.
- HIGH: "haute" résolution. Joli menu. Ca rame plus mais ça passe bien à partir de PI4.Option PALETTE: elle permet de choisir la palette des couleurs affichées.
- AUTO: équivalent à STANDARD.
- STANDARD: couleur normales des consoles.
- OLDNTSC: couleurs moches comme sur une vielle télévision NTSC japonaise (c'est pas pour rien que ce standard a eu le sobriquet de Never The Same Color). C'est comme ça que les Japonais ont connu la console et c'est pour ça que les couleurs étaient si moches dans eSCV.option FPS: Nombre d'images par secondes. Ca correspond à la fréquence de la console.
- AUTO: 50 ou 60 selon la console choisie. 60 pour CONSOLE = AUTO
- EPOCH50: 60 FPS (60Hz comme sur les consoles japonaises)
- YENO60: 50 FPS (50Hz comme sur la console française)Option DISPLAYFULLMEMORY: option rigolote qui permet d'afficher la totalité de la mémoire vidéo ou l'image normale.
Ca permet de voir ce que les développeur ont fait et que les joueurs n'ont jamais vu.
- AUTO: équivallent à NO
- YES: affiche toute la mémoire vidéo. Un cadre coloré indique la partie normalement affichée selon l'option DISPLAY choisie (vert pour EMUSCV, rouge pour les consoles EPOCH japonaises et bleu pour la console YENO française).
- NO: affiche l'image normale selon l'option DISPLAY choisie.Option DISPLAYINPUTS: permet d'afficher ou de masquer l'état des contrôleurs (interrupteurs, boutons, clavier, manettes).
- AUTO: équivallent à NO
- YES: état des contrôleurs affiché.
- NO: état des contrôleurs masqué.Option LANGAGE: option non utilisée pour le moment. Elle servira plus tard pour afficher la cartouche et le manuel correspondant à la langue choisie.
- AUTO: JP ou FR selon la console choisie.
- JP: Japonais
- FR: Français
- EN: Anglais, juste au cas où on traduirait l'étiquette des cartouches ou les manuels qui n'existent qu'en Japonais et éventuellement en Français pour les jeux qui sont arrivés chez nous.CHECKBIOS: Permet d'activer et de désactiver le contrôle du BIOS par l'émulateur au démarrage.
- YES: Vérification du BIOS (checksum MD5)
- NO: Pas de contrôle...
-
...
Pour finir voilà par où EmuSCV pêche encore:
Améliorer le mixage des différents canaux sonores: il n'est pas parfait, je sais. Par exemple le son de moteur qu'on peut entendre au démarrage de Wheely Racer qui est un mélange des trois canaux "noise" et il n'est pas encore tout à fait identique au son original.
Améliorer la restitution du canal PCM 1bit: ce canal va me rendre fou. C'est le canal qui restitue les sons échantillonnés: les voix et certains bruitages comme les voix dans Kung-Fu Road, Pole Position 2 et Star Speeder ou les saut dans Y2 Monster Land (ce son est horrible même en vrai).
Le PCM 1bit c'est hyper facile à restituer en analogique en envoyant intégralement le signal à un haut-parleur mais en programmation c'est un enfer à restituer correctement à cause du taux d'échantillonnage différent. Ca n'est pas encore parfait mais ne marche déjà pas trop mal sur EmuSCV. A titre de comparaison MAME ne gère pas du tout ce canal et ça fait parfois planter eSCV.Comprendre le mécanisme limitant le nombre de sprites à afficher: je subodore l'existence d'un mécanisme qui limite le nombre sprites à afficher mais que je n'ai pas encore réussi à débusquer. Pour tous les jeux j'affiche donc tous les sprites sauf pour Kung-Fu Road ou je dois me limiter à peu près à la moitié si je ne veux pas que ça m'affiche plein de sprites moches partout. TAKEDA Toshiya avait contourné le problème dans eSCV en n'affichant pas les sprites de la partie haute de l'écran... du coup dans le deuxième niveau si vous faites un grand saut pour monter sur le mur et que vous faites encore un grand saut votre personnage disparaît un instant. Idem dans MAME.
Comprendre le mécanisme d'affichage d'un tout petit nombre restant de sprites: Cette console est vraiment tordue (je suis poli) et en gros la façon dont sont traités les sprites dépend de deux modes d'affichage et du numéro du sprite à afficher (plus un tas d'autres choses que je vous épargnerai ici).
Il reste encore deux cas où je n'ai pas encore réussi à comprendre comment afficher le sprite correctement:
- Dans Boulder Dash: dès le premier niveau on peut voir des diamants bleus et jaune dont les couleurs alternent régulièrement sauf que parfois certains diamants clignotent un instant, contrairement aux console ou ça alterne simplement. C'est juste que les infos que j'ai pour le sprite à un instant donné indiquent que je devrai afficher la couleur n°2 alors que la console continue d'afficher la couleur n°1 et inversement pour l'autre couleur... le pire c'est que dans d'autres jeux, pour les mêmes modes, le même sprite et tout et tout, j'ai bien le bon affichage... ça doit dépendre d'une autre info que je n'ai pas encore trouvée.
- Dans Lupin III: dans le dernier niveau la console affiche des briques (lignes blanches)... sauf que je n'ai aucune info à ce moment précis qui me dit que je dois afficher le sprite des briques...A ma connaissance c'est à peu près tout.
Je continue mes expérimentations sur les vraies consoles et je vais bien finir par tout trouver.
Si vous avez la possibilité de comparer avec le matériel d'origine et que vous trouver des différences n'hésitez pas à me le faire savoir.Des bisous... jouez bien...
@++
EPOCH84 (aka MaaaX ^^) -
Merci beaucoup pour votre retour, c'est hyper intéressant à lire le processus de compréhension de la console nécessaire au bon développement de l'émulateur !
Je trouve cela très intéressant à suivre, vous donnez beaucoup de détails en plus c'est top.Merci à vous en tout cas pour votre investissement !
PS : je suis déjà fan de l'option "DISPLAYFULLMEMORY", c'est intéressant de voir que l'image n'est pas la même selon le pays de la console !Si je puis me permettre, pourriez-vous mettre le git de votre projet dans votre signature ? J'ai votre projet en favori pour suivre, mais pour les nouveaux qui découvrent la console ou le projet, c'est tjs sympa d'y avoir accès facilement
-
Bonjour @Murdock et merci.
C'est toujours motivant d'avoir des retours positifs et sympas.Pour le dépôt je ne peux malheureusement pas le mettre en signature parceque c'est limité à 255 caractères mais c'est là que ça se passe:
https://gitlab.com/MaaaX-EmuSCV/libretro-emuscv/La page de Mr Enri est là (détail technique en Japonais avec des choses fausses qu'ils ne connaissait pas à l'époque et que j'ai corrigé dans EmuSCV):
http://www43.tok2.com/home/cmpslv/Scv/EnrScv.htmLa page eSCV de TAKEDA Toshiya est là (historique de projet en Japonais):
http://takeda-toshiya.my.coocan.jp/scv/index.html@++
EPOCH84 (aka MaaaX^^)