Recalbox Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • recalbox.com
    • Gitlab repository
    • Documentation
    • Discord

    YENO super cassette vision

    Recalbox Général
    yeno cassette vision
    25
    161
    40070
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • MaaaX
      MaaaX last edited by

      Salut,

      Merci Yannick49. Ca fait plaisir 🙂
      Je fais tout mon possible pour ça sorte au plus tôt avec la meilleure qualité possible avec le peu de temps que je peux y consacrer.

      Petit point du soir:

      • Après moultes essais divers et tentatives variées, je vais partir sur une résolution finale de 3x la résolution de la console, à savoir 864x666 en 16 millions de couleurs (la résolution native de la console étant de 192x222 avec des pixels rectangulaires de 1,5x1, un ratio de 288/222=1,3 et une palette de 16 couleurs). Pour l'émulation ça ne changera strictement rien mais ça me permettra à terme d'afficher de jolis menus (visuel des différents modèles de la console) et d'intégrer un affichage des cartouches (résumé des commandes), des overlays/grilles pour le clavier, des boîtes et des manuels et que tout ça reste lisible et pas avoir un gros pâté de pixels moches... genre ça (sauf que l'image de l'émulateur sera pas lissée comme sur ma maquette pour rester en "pixel perfect"):
        0_1583625635235_testmenu.png
      • La bibliothèque SDL2 est intégrée pour gérer l'affichage ainsi que l'extension SDL2_gfx pour avoir quelques fonctions de dessin sous la main:
        0_1583625866027_Capture.PNG

      • Les bibliothèques libZip/zLib et libPng sont intégrées et en cours de test pour pouvoir lire les archives ZIP (les roms pourront être lues directement ou depuis un fichier ZIP) et afficher des images PNG (les fichiers ZIP pourront aussi contenir les images des boîtes, des cartouches, des manuels, etc.).

      • Toutes les bibliothèques utilisées sont embarquées directement dans le core, à l'exception notable de SDL2, afin de limiter au maximum les dépendances à des bibliothèques externes et ainsi faciliter le travail d'intégration à Recalbox.

      A suivre...

      @++
      MaaaX ^^

      PS: Merci Fred pour la photo de la pub d'avant sortie de la console. On y voit une rare image du jeu Black Hole, un des 2 jeux jamais sortis, ainsi que des images de plusieurs prototypes qui eux sont bien sortis: Wheely Racer, Lupin III, Nebula, etc.

      Core developer for Recalbox:

      • Libretro-EmuSCV (EPOCH/YENO Super Cassette Vision)
      • Libretro-EmuCV (EPOCH Cassette Vision)
      • Libretro-SimBB2 (EPOCH Barcode Battler 2)
      • Libretro-RB1G (lot of 1st gen consoles)
      1 Reply Last reply Reply Quote 1
      • MaaaX
        MaaaX last edited by MaaaX

        Je pensais que le dossier des résolutions était clos mais il y a un rebondissement.
        Je me suis aperçu dans eSCV que dans Nebula et KungFu Road il y avait un petit artefact graphique en bas à gauche que je ne me rapelait pas avoir vu sur la console YENO (FR).
        J'ai donc testé sur la console EPOCH (JP) et c'est bien un bug d'affichage qui existait d'origine... ça voulait donc dire que les consoles japonaises et la console française n'affichent pas la même chose... j'ai donc enquêté.

        Non seulement elles n'ont pas la même résolution mais elle n'ont pas non plus la même origine.
        Voici un petit résumé de mes dernières recherches:
        0_1583849149016_test000.png

        • En Rouge et violet c'est la zone de la mémoire vidéo qu'affichent les deux consoles japonaises EPOCH, avec en bas à gauche en jaune l'emplacement des artefacts graphiques vus sur Nebula et KungFu Road. La résolution native est de 198x224. Rapporté à un format 4/3 les pixels sont légèrement rectangulaires.
        • En bleu et en violet c'est ce qu'affiche la console française YENO, avec en haut en jaune une bande supplémentaire qui pour certains jeux contient des infos inutiles au joueur (par exemple sur Doraemon et Boulder Dash). La console affiche en plus une bande noire en bas et à droite (zone bleutée sur mon image). Rapporté en 4/3 les pixels sont très rectangulaires (l'image est donc plus tassée verticalement que les consoles JP).
        • eSCV se situe quelque par entre les deux avec une résolution native de 192x222 (incluant les artéfacts en bas à gauche), avec des pixels de 1,5x1 ça devient du 288x222. Ce qui ne fait pas tout à fait un ratio de 4/3.
        • En gris et en blanc c'est ce qui s'affiche nul part. Pas sûr qu'on soit encore en mémoire vidéo.

        L'affichage 4/3 sur console japonaise:
        0_1583849843957_testepoch.png

        L'affichage en 4/3 sur console française:
        0_1583849885400_testyeno.png

        Après m'être fait des nœuds au cerveau j'ai finalement opté pour cette solution (en vert sur mon dessin):

        • par défaut je choisi une résolution native de 198x216, avec des pixels de 1,5x1 ça devient 288x216, que j’agrandis enfin d'un facteur 3, cequi donne une résolution de 864x648. C'est une assez solution proche de eSCV mais j'exclue les zone en jaunes (pas jolies ou inutiles), j'ai un ratio pile poil de 4/3, les pixels font 4x3 et restent "pixel perfect" et j'ai une résolution suffisante pour mes jolis menus.
        • je laisserai la possibilité de choisir entre l'affichage conseillé (le miens ^^), celui des consoles japonaises, celui de la console française ou d'afficher toute la mémoire vidéo (ça pourra toujours être utile aux développeurs).

        L'affichage en 4/3 devrait donc donner ça:
        0_1583850740490_testemuscv.png

        Ouf!
        @++

        Core developer for Recalbox:

        • Libretro-EmuSCV (EPOCH/YENO Super Cassette Vision)
        • Libretro-EmuCV (EPOCH Cassette Vision)
        • Libretro-SimBB2 (EPOCH Barcode Battler 2)
        • Libretro-RB1G (lot of 1st gen consoles)
        barbudreadmon 1 Reply Last reply Reply Quote 0
        • barbudreadmon
          barbudreadmon @MaaaX last edited by

          @maaax si tu veux que le repo soit hébergé sur https://github.com/libretro, fais-moi signe.

          Libretro developper :

          • FBAlpha FBNeo (Arcade)
          • Kronos (Sega Saturn/ST-V)
          • YabaSanshiro (Sega Saturn)
          • Reicast Flycast (Dreamcast/Naomi/AtomisWave)
          MaaaX 1 Reply Last reply Reply Quote 0
          • MaaaX
            MaaaX @barbudreadmon last edited by

            Salut @barbudreadmon

            Pour faciliter la vie de Bkg2k et simplifier l'intégration à Recalbox (compilation BuildRoot) j'ai mis les sources sur Gitlab là :
            https://gitlab.com/MaaaX-EmuSCV/libretro-emuscv
            (c'est la v0.2 qui est dispo pour le moment, je bosse sur la v0.3)

            Je ne sais pas si mon projet est suffisamment avancé pour l'intégrer au repo Libretro mais oui je veux bien.

            Core developer for Recalbox:

            • Libretro-EmuSCV (EPOCH/YENO Super Cassette Vision)
            • Libretro-EmuCV (EPOCH Cassette Vision)
            • Libretro-SimBB2 (EPOCH Barcode Battler 2)
            • Libretro-RB1G (lot of 1st gen consoles)
            barbudreadmon 1 Reply Last reply Reply Quote 0
            • barbudreadmon
              barbudreadmon @MaaaX last edited by

              @maaax dès que j'ai le temps, je regarde et teste ton code source pour voir si je peux te donner des conseils

              Libretro developper :

              • FBAlpha FBNeo (Arcade)
              • Kronos (Sega Saturn/ST-V)
              • YabaSanshiro (Sega Saturn)
              • Reicast Flycast (Dreamcast/Naomi/AtomisWave)
              MaaaX 1 Reply Last reply Reply Quote 0
              • Bkg2k
                Bkg2k Staff last edited by

                Beau travail en tout cas 🙂 Hate de voir la version finale 😉

                1 Reply Last reply Reply Quote 0
                • MaaaX
                  MaaaX @barbudreadmon last edited by MaaaX

                  @Bkg2k
                  Merci ^^
                  Y a encore du boulot 😉

                  @barbudreadmon
                  Pour le moment mon code n'est pas très propre. Il y a pas mal de choses qui sont commentées pour pouvoir travailler dessus plus tard.

                  J'essaye déjà de comprendre comment fonctionne Libretro. La documentation est tout petit un peu juste et je m'inspire donc de ce que je trouve dans d'autres cores.

                  A force de tâtonner j'ai globalement compris le fonctionnement mais il reste encore quelques points à élucider:

                  • A quoi sert le FRAME TIME CALLBACK ? Pour le moment je ne l'utilise pas. Est-ce que ça peut m'être utile pour quelque chose ?

                  • Pour le cas où on change de résolution ou de nombre de frames par secondes (différents selon les consoles), comment demander au frontend de relancer le core à zéro? ou est-ce qu'il y a une méthode qui permet de changer la résolution ou le nombre de frames par seconde à la volée?

                  Core developer for Recalbox:

                  • Libretro-EmuSCV (EPOCH/YENO Super Cassette Vision)
                  • Libretro-EmuCV (EPOCH Cassette Vision)
                  • Libretro-SimBB2 (EPOCH Barcode Battler 2)
                  • Libretro-RB1G (lot of 1st gen consoles)
                  barbudreadmon 1 Reply Last reply Reply Quote 0
                  • barbudreadmon
                    barbudreadmon @MaaaX last edited by barbudreadmon

                    @maaax said in YENO super cassette vision:

                    A quoi sert le FRAME TIME CALLBACK ? Pour le moment je ne l'utilise pas. Est-ce que ça peut m'être utile pour quelque chose ?

                    çà m'étonnerait que çà te serve à quelque chose, en tout cas çà ne me sert dans aucun core, il me semble que c'est utilisé par certains core pour calculer si l'émulation est "en retard" et éventuellement déclencher des actions de frameskip en fonction du résultat.

                    @maaax said in YENO super cassette vision:

                    Pour le cas où on change de résolution ou de nombre de frames par secondes (différents selon les consoles), comment demander au frontend de relancer le core à zéro? ou est-ce qu'il y a une méthode qui permet de changer la résolution ou le nombre de frames par seconde à la volée?

                    Vaste sujet, alors :

                    • si possible, il est toujours conseillé de donner les bonnes valeurs dès le lancement (retro_get_system_av_info est appelé après retro_load_game, donc théoriquement tu peux déjà savoir des choses sur le jeu que tu lances)
                    • si ce n'est pas possible (exemple: la résolution - variable - de sfiii2 arcade est déterminé directement par la borne d'arcade après lecture de son eeprom, donc bien après que retro_get_system_av_info ait été appelé), voilà un exemple de code pour changer la résolution à la volée : https://github.com/libretro/FBNeo/blob/6edecd4c13fe9c86f9ffc80ebada5f0034991624/src/burner/libretro/libretro.cpp#L420-L428
                    • si vraiment tu dois changer aussi la fréquence de rafraîchissement à la volée (attention, c'est très déconseillé car c'est une opération coûteuse niveau réinitialisation), remplace RETRO_ENVIRONMENT_SET_GEOMETRY par RETRO_ENVIRONMENT_SET_SYSTEM_AV_INFO dans mon exemple de code.

                    Libretro developper :

                    • FBAlpha FBNeo (Arcade)
                    • Kronos (Sega Saturn/ST-V)
                    • YabaSanshiro (Sega Saturn)
                    • Reicast Flycast (Dreamcast/Naomi/AtomisWave)
                    MaaaX 1 Reply Last reply Reply Quote 1
                    • MaaaX
                      MaaaX @barbudreadmon last edited by

                      @barbudreadmon Un très grand merci. Je vais essayer tout ça.

                      Core developer for Recalbox:

                      • Libretro-EmuSCV (EPOCH/YENO Super Cassette Vision)
                      • Libretro-EmuCV (EPOCH Cassette Vision)
                      • Libretro-SimBB2 (EPOCH Barcode Battler 2)
                      • Libretro-RB1G (lot of 1st gen consoles)
                      1 Reply Last reply Reply Quote 0
                      • yannick49
                        yannick49 last edited by

                        A effectivement y a du taff en tout cas encore merci pour ton temps......

                        MaaaX 1 Reply Last reply Reply Quote 0
                        • MaaaX
                          MaaaX @yannick49 last edited by

                          @yannick49 Merci.

                          Ca avance. L'intégration des bibliothèques est faites pour Windows et Linux. Le chargement de fichiers binaires fonctionne (BIOS et ROMs non compressés). Le chargement d'images PNG (cartouche, manuel, etc.) et de fichiers binaires (ROMs) depuis une archive ZIP fonctionne aussi.
                          Je bute encore sur l'intégration de certaines bibliothèques sur Mac. C'est un problème récurent quand on utilise des outils libres à la place des outils Apple... mais je vais finir par trouver 😜
                          Je pourrai ensuite pousser la version 0.3 sur Gitlab.

                          Après je testerai les changements de config à la volée (résolution et fréquence) comme m'a indiqué Babudreadmon (encore merci pour les infos). Ca servira à appliquer les changement d'options sans devoir redémarrer le jeu.
                          Ca devrait être assez rapide à faire et ça fera l'objet d'une v0.4.

                          Et après je pourrai enfin continuer à travailler
                          sur l'émulateur lui-même. Il y a pas mal de choses à reécrire pour que ça tourne sur autre chose que Windows.

                          Soyez patients. Ca va venir.

                          En attendant, quelqu'un aurait-il un scan du manuel de BASIC Nyumon? (oui je sais il fait presque une centaine de pages tout en Japonais)
                          Ca m'aiderait pour une future étape de mon projet.

                          @++
                          MaaaX^^

                          Core developer for Recalbox:

                          • Libretro-EmuSCV (EPOCH/YENO Super Cassette Vision)
                          • Libretro-EmuCV (EPOCH Cassette Vision)
                          • Libretro-SimBB2 (EPOCH Barcode Battler 2)
                          • Libretro-RB1G (lot of 1st gen consoles)
                          1 Reply Last reply Reply Quote 1
                          • yannick49
                            yannick49 last edited by

                            @maaax said in YENO super cassette vision:

                            manuel de BASIC Nyumon

                            atfff désolé j'ai pas ça du tout....

                            1 Reply Last reply Reply Quote 0
                            • MaaaX
                              MaaaX last edited by MaaaX

                              Et voilà! Bibliothèques intégrées aussi sur Mac.
                              0_1585088768463_EmuSCV_v0.03_windows.png
                              La cartouche rouge est une image PNG avec de la transparence lue depuis l'archive ZIP qui contient la ROM du jeu ASTRO WARS.

                              Plus qu'à pousser la v0.03 sur Gitlab.
                              Je vais pouvoir m'occuper du changement de résolution et de fréquence d'affichage.

                              A suivre...

                              Core developer for Recalbox:

                              • Libretro-EmuSCV (EPOCH/YENO Super Cassette Vision)
                              • Libretro-EmuCV (EPOCH Cassette Vision)
                              • Libretro-SimBB2 (EPOCH Barcode Battler 2)
                              • Libretro-RB1G (lot of 1st gen consoles)
                              1 Reply Last reply Reply Quote 0
                              • yannick49
                                yannick49 last edited by

                                Au top!!!

                                MaaaX 1 Reply Last reply Reply Quote 0
                                • MaaaX
                                  MaaaX @yannick49 last edited by

                                  @yannick49 Merci ^^

                                  Core developer for Recalbox:

                                  • Libretro-EmuSCV (EPOCH/YENO Super Cassette Vision)
                                  • Libretro-EmuCV (EPOCH Cassette Vision)
                                  • Libretro-SimBB2 (EPOCH Barcode Battler 2)
                                  • Libretro-RB1G (lot of 1st gen consoles)
                                  1 Reply Last reply Reply Quote 0
                                  • MaaaX
                                    MaaaX last edited by

                                    v0.03 poussée sur Gitlab

                                    Pour la prochaine v0.04 j'ai commencé à tester l'application des options à la volée (changement de résolution et/ou de fréquence).
                                    Au passage j'ai ajouté le bouton POWER juste pour le fun.

                                    Core developer for Recalbox:

                                    • Libretro-EmuSCV (EPOCH/YENO Super Cassette Vision)
                                    • Libretro-EmuCV (EPOCH Cassette Vision)
                                    • Libretro-SimBB2 (EPOCH Barcode Battler 2)
                                    • Libretro-RB1G (lot of 1st gen consoles)
                                    Bkg2k 1 Reply Last reply Reply Quote 0
                                    • Bkg2k
                                      Bkg2k Staff @MaaaX last edited by

                                      @maaax Attention on va finir par vouloir t'embaucher chez Recalbox 😉

                                      Bon c'est payé pas loin de 0% du smic, mais notre grand guru nous a augmenté de 300% cette année alors on se plaint pas! Des fois, tu te fais un peu gueuler ou vomir dessus par des gars qui pensent que tout leur est du, mais un p'tit coup de nettoyage et ça passe ^^'
                                      Parfois aussi, on se fait poursuivre dans la rue par des fans en furie qui veulent te faire des bisous partout (hein @zouiguipopo!). Dommage que ça soit pas des jolies filles, mais on fait avec, même si le rouge à lèvre ça colle un peu sur les vêtements.

                                      Allez, je t'ai assez vendu de rêve! Tu signes quand? 😄

                                      MaaaX 1 Reply Last reply Reply Quote 1
                                      • MaaaX
                                        MaaaX @Bkg2k last edited by

                                        @bkg2k Ah ah ah! Je signe quand tu veux mais je te préviens qu'entre mon boulot, ma maison, mes voitures et tout ça, ça me laisse pas beaucoup de temps mais on en est tous là et pour 0% du smic on fait ce qu'on peut 😉

                                        Core developer for Recalbox:

                                        • Libretro-EmuSCV (EPOCH/YENO Super Cassette Vision)
                                        • Libretro-EmuCV (EPOCH Cassette Vision)
                                        • Libretro-SimBB2 (EPOCH Barcode Battler 2)
                                        • Libretro-RB1G (lot of 1st gen consoles)
                                        1 Reply Last reply Reply Quote 0
                                        • yannick49
                                          yannick49 last edited by

                                          oui il mérite son salaire!!! 😉

                                          1 Reply Last reply Reply Quote 0
                                          • MaaaX
                                            MaaaX last edited by

                                            Bonsoir,

                                            Le support du changement de résolution et du nombre de frames par seconde à chaud est ajouté, ainsi que le support du bouton power (off).
                                            Le code de la v0.04 est poussé sur Gitlab.
                                            @barbudreadmon encore merci pour ton aide sur Libretro. Grace à toi j'ai compris qu'il y a plus d'aide dans les commentaires du fichier header de Libretro que dans la documentation 😄
                                            0_1585257249680_EmuSCV_v0.04_linux.png

                                            Je peux enfin m'atteler au cœur du sujet et le plus intéressant: le portage de l'émulateur. Yes!

                                            A suivre...

                                            @++
                                            MaaaX ^^

                                            Core developer for Recalbox:

                                            • Libretro-EmuSCV (EPOCH/YENO Super Cassette Vision)
                                            • Libretro-EmuCV (EPOCH Cassette Vision)
                                            • Libretro-SimBB2 (EPOCH Barcode Battler 2)
                                            • Libretro-RB1G (lot of 1st gen consoles)
                                            barbudreadmon 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Want to support us ?

                                            82
                                            Online

                                            99.6k
                                            Users

                                            28.1k
                                            Topics

                                            187.1k
                                            Posts

                                            Copyright © 2021 recalbox.com