YENO super cassette vision
-
@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?
-
-
@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èsretro_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 queretro_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
parRETRO_ENVIRONMENT_SET_SYSTEM_AV_INFO
dans mon exemple de code.
- si possible, il est toujours conseillé de donner les bonnes valeurs dès le lancement (
-
@barbudreadmon Un très grand merci. Je vais essayer tout ça.
-
A effectivement y a du taff en tout cas encore merci pour ton temps......
-
@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^^ -
@maaax said in YENO super cassette vision:
manuel de BASIC Nyumon
atfff désolé j'ai pas ça du tout....
-
Et voilà! Bibliothèques intégrées aussi sur Mac.
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...
-
Au top!!!
-
@yannick49 Merci ^^
-
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. -
@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?
-
@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
-
oui il mérite son salaire!!!
-
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
Je peux enfin m'atteler au cœur du sujet et le plus intéressant: le portage de l'émulateur. Yes!
A suivre...
@++
MaaaX ^^ -
@maaax pas de soucis, tiens moi au courant si t'as besoin d'autres infos
-
Alors comment ça ce passe le projet avec ce confinement?
-
@yannick49 Salut.
J'avoue que ça avance pas trop trop en ce moment,. Paradoxalement j'ai moins de temps libre que d'habitude et j'étais un peu crevé ces derniers temps. Je continue de bosser normalement pour le moment (je croise les doigts), j'étais déjà à 100% en télétravail, mais j'ai maman et bébé dont il faut que je m'occupe un peu plus que d'habitude.
Sinon j'avance sur le projet le soir quand je suis pas trop fatigué.
J'ai déjà réécrit la partie Libretro en objet (ça parlera au devs) et j'intègre le moteur EmuSCV petit à petit, mais ça va demander un peu de temps avant d'avoir quelque chose de présentable.@++
-
Priorité à la famille........j'ai un bébé aussi......
En même temps ça fait 30 ans que j'ai pas rejoué à la YENO, donc je suis pas à la seconde. -
Ma première vraie console avec ses jeux mythiques à la fin des années 80 🤩
Je n’ai jamais trouvé un émulateur valable...
Merci de ton initiative hâte de pouvoir retomber en enfance. -
Bonjour.
Merci pour les encouragements
Le projet n'a pas beaucoup avancé pendant le confinement mais je m'y remet tranquillement.
J'avais réécrit le projet en objet au début du confinement et j'avais déjà commencé à intégrer eSCV mais j'ai un souci avec les logs qui génèrent des erreurs de segmentation. C'est certainement dû au fait qu'on soit maintenant dans une classe plutôt que dans une simple fonction (problème de fonction pas statique?).
J'ai aussi changé d'IDE (environnement de développement intégré) pour passer sur Studio Code mais je ne sais pas comment déboguer mon projet (point d'arrêt, pas à pas, évaluation de variable, etc.).Voilà donc les travaux en cours ou très bientôt en cours:
- Trouver comment déboguer avec Studio Code voire rechanger d'IDE (peut-être qu'il me faudra écrire un frontend Libretro pour pouvoir déboguer, je ne sais pas encore). SI QUELQU'UN UTILISE DÉJÀ UN ENVIRONNEMENT PRATIQUE ET MULTI-PLATEFORME (Windows, Mac, Linux) JE SUIS PRENEUR.
- Résoudre mon problème de plantage, voire réécrire ma classe si besoin mais j'aimerai autant éviter.
A suivre...
@++
MaaaX ^^