[NES] Beta Mesen emulateur
+6
Zarnal
vincent2105
Sour
brokestudio
Tryphon
upsilandre
10 participants
Page 4 sur 4
Page 4 sur 4 • 1, 2, 3, 4
Re: [NES] Beta Mesen emulateur
Oui, c'est mon premier (et seul) émulateur. Comme upsilandre l'a dit, c'est beaucoup une question de documentation - le NES est très bien documenté comparé à bien d'autres consoles.
Au départ c'était simplement un petit projet pour refaire du C++ (que je n'avais pas touché depuis que j'avais commencé à travailler après mes études). Le UI était fait avec l'api C Win32 et c'était vraiment pénible à développer (faire un debugger avec ça c'est infernal). Donc, j'ai plus ou moins abandonné et mis ça sur la glace pendant une bonne année.
J'y ai retouché par la suite, d'abord en effaçant tout le UI et en recommençant avec WinForms en C# à la place (comme c'est présentement) - WinForms étant quelque chose que j'utilisais tous les jours au bureau à l'époque, c'était probablement 10x plus rapide de développer ce UI comparé au UI Win32 d'avant. Mais malgré ça, j'ai éventuellement perdu l'intérêt une autre fois et j'ai mis ça de côté pendant une demie-année.
Puis, finalement, je me suis remis dedans, décidé à "au moins" faire un release publique avec un core qui passait plus de tests que tous les autres émulateurs, donc j'ai travaillé dessus comme un fou pendant un bon 2 mois avant de releaser la version 0.1.0. Le reste de l'histoire est écrite dans le changelog depuis :) Et maintenant, puisque je suis rendu au point où j'en suis, je me dis que je suis aussi bien d'essayer de pousser encore un petit peu et d'en faire le meilleur émulateur possible.
Pour ce qui est des conseils, c'est difficile à dire - je suis pas vraiment un expert dans le domaine (à part pour le NES, et encore là...). Le meilleur conseil que je puisse donner c'est probablement de lire au maximum la documentation existante pour la plateforme avant d'écrire la première ligne de code. Comme ça, ça peut éviter d'avoir à refaire des gros changements par la suite à cause de choses qu'on ne savait pas (ça m'est arrivé 2-3 fois pendant le dev de Mesen).
Et pour ce qui est de mes compétences, j'ai commencé à programmer en QBasic sous DOS à l'âge de 10 ans à peu près. C'est surtout ça le secret dans tout ça :)
Au départ c'était simplement un petit projet pour refaire du C++ (que je n'avais pas touché depuis que j'avais commencé à travailler après mes études). Le UI était fait avec l'api C Win32 et c'était vraiment pénible à développer (faire un debugger avec ça c'est infernal). Donc, j'ai plus ou moins abandonné et mis ça sur la glace pendant une bonne année.
J'y ai retouché par la suite, d'abord en effaçant tout le UI et en recommençant avec WinForms en C# à la place (comme c'est présentement) - WinForms étant quelque chose que j'utilisais tous les jours au bureau à l'époque, c'était probablement 10x plus rapide de développer ce UI comparé au UI Win32 d'avant. Mais malgré ça, j'ai éventuellement perdu l'intérêt une autre fois et j'ai mis ça de côté pendant une demie-année.
Puis, finalement, je me suis remis dedans, décidé à "au moins" faire un release publique avec un core qui passait plus de tests que tous les autres émulateurs, donc j'ai travaillé dessus comme un fou pendant un bon 2 mois avant de releaser la version 0.1.0. Le reste de l'histoire est écrite dans le changelog depuis :) Et maintenant, puisque je suis rendu au point où j'en suis, je me dis que je suis aussi bien d'essayer de pousser encore un petit peu et d'en faire le meilleur émulateur possible.
Pour ce qui est des conseils, c'est difficile à dire - je suis pas vraiment un expert dans le domaine (à part pour le NES, et encore là...). Le meilleur conseil que je puisse donner c'est probablement de lire au maximum la documentation existante pour la plateforme avant d'écrire la première ligne de code. Comme ça, ça peut éviter d'avoir à refaire des gros changements par la suite à cause de choses qu'on ne savait pas (ça m'est arrivé 2-3 fois pendant le dev de Mesen).
Et pour ce qui est de mes compétences, j'ai commencé à programmer en QBasic sous DOS à l'âge de 10 ans à peu près. C'est surtout ça le secret dans tout ça :)
Sour- Patient en incubation
- Nombre de messages : 25
Date d'inscription : 28/10/2017
Re: [NES] Beta Mesen emulateur
Lol, idem du Qbasic à ~ le même âge (et du turbo pascal ± en même temps).
Ca ne me rajeunit pas tout ça ^^
Ca ne me rajeunit pas tout ça ^^
Re: [NES] Beta Mesen emulateur
Voila on en sait un peu plus
C'est vrai que la NES est super bien documenté d'autant qu'on a meme une simulation. Mais y a quand meme ce gros défi des cartouches quasiment toute differente.
C'est vrai que la NES est super bien documenté d'autant qu'on a meme une simulation. Mais y a quand meme ce gros défi des cartouches quasiment toute differente.
upsilandre- Interne
- Nombre de messages : 5138
Age : 49
Localisation : val de marne 94
Date d'inscription : 31/05/2015
Re: [NES] Beta Mesen emulateur
La version 0.95 est sortie! (Si vous avez deja Mesen il se met a jour tout seul)
https://www.mesen.ca/
https://www.mesen.ca/docs/index.html
Le debug atteint maintenant un niveau d'ergonomie incroyable et bienvenu aux nouveaux outils comme l'APU viewer et surtout l'Event Viewer, une idée génial. :)
https://www.mesen.ca/
https://www.mesen.ca/docs/index.html
Le debug atteint maintenant un niveau d'ergonomie incroyable et bienvenu aux nouveaux outils comme l'APU viewer et surtout l'Event Viewer, une idée génial. :)
upsilandre- Interne
- Nombre de messages : 5138
Age : 49
Localisation : val de marne 94
Date d'inscription : 31/05/2015
Re: [NES] Beta Mesen emulateur
Bonjour,
Je profite de cet espace pour demander à l'auteur de Mesen si il a entendu parler de cette nouvelle technique anti lag qui est apparue récemment et si il serait potentiellement intéressé pour l'inclure dans Mesen. Le créateur de cet algorithme recherchant des développeurs d'émulateurs intéressés.
https://www.blurbusters.com/blur-busters-lagless-raster-follower-algorithm-for-emulator-developers/
Les résultats sont impressionnants sous WinUae dont je me permets de poster une vidéo d'exemple (Même portable, même réglage, +- même vitesse de frappe). Sur ma très veille machine je suis limité à 7 slices pour ce jeu. La version 10 slices peut être contestable.
Avec Lagless 7 slices :
Avec 10 slices :
Sans Lagless :
Je profite de cet espace pour demander à l'auteur de Mesen si il a entendu parler de cette nouvelle technique anti lag qui est apparue récemment et si il serait potentiellement intéressé pour l'inclure dans Mesen. Le créateur de cet algorithme recherchant des développeurs d'émulateurs intéressés.
https://www.blurbusters.com/blur-busters-lagless-raster-follower-algorithm-for-emulator-developers/
Les résultats sont impressionnants sous WinUae dont je me permets de poster une vidéo d'exemple (Même portable, même réglage, +- même vitesse de frappe). Sur ma très veille machine je suis limité à 7 slices pour ce jeu. La version 10 slices peut être contestable.
Avec Lagless 7 slices :
Avec 10 slices :
Sans Lagless :
Zarnal- Infirmier
- Nombre de messages : 4210
Age : 49
Localisation : Kekpart Ailleurs
Date d'inscription : 27/06/2016
Re: [NES] Beta Mesen emulateur
Et il y avait un bug dans le cas d'une nouvelle installation (sur un PC qui n'avait jamais roulé Mesen) - c'est corrigé, j'ai uploadé un nouveau build de 0.9.5 qui corrige le problème.upsilandre a écrit:La version 0.95 est sortie!
Comme toujours, si vous avez des commentaires/suggestions, c'est toujours apprécié!
Non, c'est la première fois que j'en entend parler. Par contre, ça risque d'être un peu (trop?) complexe à implémenter dans le cas de Mesen. Mais bon, je garde ça en tête pour le futur. Aussi, dans le même style d'idées, il y a une nouvelle fonctionnalité dans RetroArch qui permet de réduire l'input lag des jeux encore plus que sur la vraie console (mais la technique est un peu méchante au niveau de la performance..).Zarnal a écrit:si il a entendu parler de cette nouvelle technique anti lag qui est apparue récemment et si il serait potentiellement intéressé pour l'inclure dans Mesen
Sour- Patient en incubation
- Nombre de messages : 25
Age : 39
Localisation : Canada
Date d'inscription : 28/10/2017
Re: [NES] Beta Mesen emulateur
Merci pour cette réponse.
Je te rassure, la technique semble bien plus ou moins méchante également par rapport à la technique Retroarch (niveau GPU cette fois) avec le Lagless.
Je tiens à préciser que je suis en 1024*768 FS niveau résolution sur une vieille TV LCD standard pour les vidéos. Mais bien sur l'enregistrement s'adapte à la taille de la fenêtre du jeu (384*288).
Voici ce que j'ai à l'écran.
Les bandes multi-couleurs sont les slices. Bien entendu, je peux scaler en FS.
Je te rassure, la technique semble bien plus ou moins méchante également par rapport à la technique Retroarch (niveau GPU cette fois) avec le Lagless.
Je tiens à préciser que je suis en 1024*768 FS niveau résolution sur une vieille TV LCD standard pour les vidéos. Mais bien sur l'enregistrement s'adapte à la taille de la fenêtre du jeu (384*288).
Voici ce que j'ai à l'écran.
Les bandes multi-couleurs sont les slices. Bien entendu, je peux scaler en FS.
Zarnal- Infirmier
- Nombre de messages : 4210
Age : 49
Localisation : Kekpart Ailleurs
Date d'inscription : 27/06/2016
Re: [NES] Beta Mesen emulateur
Le messie est revenu dans sa version 0.9.6
Y a eu plus de 300 commits sur le Github pour cette version donc beaucoup d'ajout et de correction encore une fois. Il a pas arrêté de bucher depuis la 0.9.5, ce type est fou.
Pour ceux qui n'ont pas encore tester ca me parait etre une version idéal pour s'y mettre https://www.mesen.ca/
Feuilleter la doc qui est tres sympa est un bon moyen de se faire une idée https://www.mesen.ca/docs/
Donc dans cette version y a maintenant le support du DualSystem. Pour ceux qui savent pas Nintendo avait des bornes d'arcade appelé Vs. System sur lesquelles on pouvait retrouver les classiques de la NES mais dans une version différente adapté a l'arcade (et pas les même palette non plus) a ne pas confondre avec les bornes PlayChoice 10 qui elle sont juste des jeux NES dans une borne.
Et il existe aussi une version DualSystem qui sont 2 bornes connectés pour jouer a 2 en link sur des jeux spécifique et maintenant on peut jouer a ces jeux sur Mesen en dual-Screen. Par exemple ca veut dire pouvoir jouer a Balloon Fight a 2 mais avec chacun son ecran.
Cette version c'est aussi l'occasion de tester une nouvelle feature, l'history Viewer. Quand on l'ouvre ca ressemble simplement a une seconde fenêtre de jeu qui ressemble a un player vidéo
Et dans cette fenêtre on peut avoir tout l'historique de votre partie qui peut etre rejoué. Vous pouvez déplacer le slide comme dans une vidéo et revoir n'importe quelle moment meme 2 heures en arrière et surtout reprendre votre partie a cette endroit. Donc plus besoin d'etre dans la crainte d'avoir oublier de faire une savestate a un endroit stratégique vous pouvez y revenir n'importe quand (pour continuer ici ou juste pour faire une savestate a cette endroit).
Niveau debugger plein de truc amélioré et encore un nouvel outil (Text Hooker pour absorber directement le texte d'un jeu).
Et dans cette version vous aurez un accès direct a certain de mes scripts qui sont intégré dans l'outil script (mon script pour les sprites ou pour les samples DMC par exemple).
Moi ca va faire presque un an que je suis sur Mesen, depuis la 0.9.3, j'ai du beta tester plus d'une centaine de build et je me régale a voir le truc grandir petit a petit .
Y a eu plus de 300 commits sur le Github pour cette version donc beaucoup d'ajout et de correction encore une fois. Il a pas arrêté de bucher depuis la 0.9.5, ce type est fou.
Pour ceux qui n'ont pas encore tester ca me parait etre une version idéal pour s'y mettre https://www.mesen.ca/
Feuilleter la doc qui est tres sympa est un bon moyen de se faire une idée https://www.mesen.ca/docs/
Donc dans cette version y a maintenant le support du DualSystem. Pour ceux qui savent pas Nintendo avait des bornes d'arcade appelé Vs. System sur lesquelles on pouvait retrouver les classiques de la NES mais dans une version différente adapté a l'arcade (et pas les même palette non plus) a ne pas confondre avec les bornes PlayChoice 10 qui elle sont juste des jeux NES dans une borne.
Et il existe aussi une version DualSystem qui sont 2 bornes connectés pour jouer a 2 en link sur des jeux spécifique et maintenant on peut jouer a ces jeux sur Mesen en dual-Screen. Par exemple ca veut dire pouvoir jouer a Balloon Fight a 2 mais avec chacun son ecran.
Cette version c'est aussi l'occasion de tester une nouvelle feature, l'history Viewer. Quand on l'ouvre ca ressemble simplement a une seconde fenêtre de jeu qui ressemble a un player vidéo
Et dans cette fenêtre on peut avoir tout l'historique de votre partie qui peut etre rejoué. Vous pouvez déplacer le slide comme dans une vidéo et revoir n'importe quelle moment meme 2 heures en arrière et surtout reprendre votre partie a cette endroit. Donc plus besoin d'etre dans la crainte d'avoir oublier de faire une savestate a un endroit stratégique vous pouvez y revenir n'importe quand (pour continuer ici ou juste pour faire une savestate a cette endroit).
Niveau debugger plein de truc amélioré et encore un nouvel outil (Text Hooker pour absorber directement le texte d'un jeu).
Et dans cette version vous aurez un accès direct a certain de mes scripts qui sont intégré dans l'outil script (mon script pour les sprites ou pour les samples DMC par exemple).
Moi ca va faire presque un an que je suis sur Mesen, depuis la 0.9.3, j'ai du beta tester plus d'une centaine de build et je me régale a voir le truc grandir petit a petit .
upsilandre- Interne
- Nombre de messages : 5138
Age : 49
Localisation : val de marne 94
Date d'inscription : 31/05/2015
Re: [NES] Beta Mesen emulateur
De la folie cet émulateur, un vrai régal !
Je me demandais, vu que Lua est parfaitement intégré, est-ce que ça pourrait être une fonctionnalité sympa de pouvoir ajouter des mappers grâce à des scripts Lua sans avoir à recompiler l'exe ?
Je me demandais, vu que Lua est parfaitement intégré, est-ce que ça pourrait être une fonctionnalité sympa de pouvoir ajouter des mappers grâce à des scripts Lua sans avoir à recompiler l'exe ?
Re: [NES] Beta Mesen emulateur
C'est une bonne question.
Pour un utilisateur qui voudrait ajouter un obscure mapper pirate qui n'est pas deja intégré ou ajouter un mapper homebrew fait sur-mesure et pouvoir continuer a développer quand meme sur emulateur ca peut peut etre fonctionner.
Pour un utilisateur qui voudrait ajouter un obscure mapper pirate qui n'est pas deja intégré ou ajouter un mapper homebrew fait sur-mesure et pouvoir continuer a développer quand meme sur emulateur ca peut peut etre fonctionner.
upsilandre- Interne
- Nombre de messages : 5138
Age : 49
Localisation : val de marne 94
Date d'inscription : 31/05/2015
Re: [NES] Beta Mesen emulateur
J'imagine que tu m'as vu venir avec mes gros sabots et mon envie de développer mon propre mapper
Dernière édition par brokestudio le Mar 7 Aoû 2018 - 20:45, édité 1 fois
upsilandre- Interne
- Nombre de messages : 5138
Age : 49
Localisation : val de marne 94
Date d'inscription : 31/05/2015
Re: [NES] Beta Mesen emulateur
Je vois l'attrait que ça pourrait avoir, mais ça serait assez compliqué à faire, je crois. Il faudrait que j'expose beaucoup plus de fonctionnalités côté Lua pour que ça soit aussi flexible que le code en C++. Et dans certains cas, je pense pas que le runtime Lua soit assez rapide. Je pense pas que ça serait pas possible faire un aller-retour Lua à chaque cycle CPU et garder un framerate au dessus de 60fps, par exemple, et ce genre de code est nécessaire dans bien des cas pour implémenter des fonctionnalités plus avancées. Ça serait relativement simple de permettre des mappers très simples (e.g des mappers qui offrent du bankswitching PRG/CHR et pas grand chose d'autre), mais je suis pas certain que ça serait très utile comme feature si c'est limité à ça?brokestudio a écrit:Je me demandais, vu que Lua est parfaitement intégré, est-ce que ça pourrait être une fonctionnalité sympa de pouvoir ajouter des mappers grâce à des scripts Lua sans avoir à recompiler l'exe ?
Mais bon, en principe, compiler Mesen de ton côté ça devrait être assez simple aussi, sur Windows le seul prérequis c'est essentiellement d'avoir VS 2017 d'installé et c'est tout.
Sour- Patient en incubation
- Nombre de messages : 25
Age : 39
Localisation : Canada
Date d'inscription : 28/10/2017
Re: [NES] Beta Mesen emulateur
Sour a écrit:
Mais bon, en principe, compiler Mesen de ton côté ça devrait être assez simple aussi, sur Windows le seul prérequis c'est essentiellement d'avoir VS 2017 d'installé et c'est tout.
Effectivement, j'avais VS2017 d'installé, il m'a fait télécharger quelques éléments qu'il me manquait et j'ai pu compiler Mesen sans trop de soucis ! Je vais pouvoir regarder un peu comment ajouter un mapper de mon cru :)
Re: [NES] Beta Mesen emulateur
Bonsoir, j'ai une question : le core retroarch de mesen est-il identique niveau fonctionnement à la dernière version standalone ou y a t'il des choses en moins ou bien des soucis techniques spécifiques (pour les jeux uniquement bien sùr) ? Merci.
Zarnal- Infirmier
- Nombre de messages : 4210
Age : 49
Localisation : Kekpart Ailleurs
Date d'inscription : 27/06/2016
Re: [NES] Beta Mesen emulateur
Le core libretro est mis à jour automatiquement par le buildbot (qui est géré par l'équipe de RetroArch) à chaque fois que je fais des changements. Donc, en fait le core libretro c'est l'équivalent des dev builds qui sont disponibles sur Appveyor pour la version standalone (bref, toujours en avance par rapport à la dernière release officielle). Ça vient aussi avec le désavantage que ça peut parfois être un peu moins stable, par contre.Zarnal a écrit:Bonsoir, j'ai une question : le core retroarch de mesen est-il identique niveau fonctionnement à la dernière version standalone ou y a t'il des choses en moins ou bien des soucis techniques spécifiques (pour les jeux uniquement bien sùr) ? Merci.
Sour- Patient en incubation
- Nombre de messages : 25
Age : 39
Localisation : Canada
Date d'inscription : 28/10/2017
Page 4 sur 4 • 1, 2, 3, 4
Page 4 sur 4
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum