Développer des émulateurs pour passer le temps
-
Hello,
Un de mes amis d’enfance avec qui j’ai toujours gardé contact développe des émulateurs pour “passer le temps”.
A l’époque il a eu successivement une master system, un 500+, un 1200, un snes, un PSX (quelques semaines), puis il a basculé sur un PC 486 DX4-100 (doom)…
Il y a quelques années, il a commencé par programmer un émulateur gameboy sous Windows, il m’a dit “tiens j’ai trouvé une astuce pour que l’émulateur détecte les boucles inutiles, du coup ça bouffe encore moins de cpu…”
Puis il a recommencé à zéro sous linux / GCC, via une VM qu’il transporte chez sa mère pendant les vacances. Je sais pu si le changement est lié à un crash de données ou autre…
C’est un multi-émulateurs à la mame qu’il n’a jamais diffusé : Alice
Il fonctionne en ligne de commande et lance le bon émulateur en fonction des roms
Faudrait que je le teste sur ma babasse…Après la gameboy / nes, il y a eu, je ne me souviens plus vraiment de l’ordre :
master systèm / gamegear
pc engine
super nintendo
playstation
neo geo (un des plus facile d’après lui, c’est que des sprites, pas de bidouilles)
megadrive
Amstrad CPC
Arcdade (jeu crime fighter)
Il me semble qu’il a programmé un lecteur audio gérant plein de puces audio différentes
Il s’amuse aussi à porter crime fighter sur la SNES “ça doit être faisable”Attention, tous ses émulateurs ne sont pas aboutis à 100%, il augmente la compatibilité selon ses envies et besoins. Et vu qu’il l’a programmé par “modules embriqués”, une amélioration de la compatibilité d’une puce comme le Z80 profite à plusieurs émulateurs.
De même qu’il l’a programmé de manière à pouvoir le porter sous Windows ou sous un autre système assez facilement…
Et là il s’est attaqué à l’Amiga !!! Objectif : jouer à pinball dreams
Il a affiché la rom 1.3 “Et mine de rien, la main est entièrement dessinée en vectoriel avec le Blitter !!”
Il a toujours été une tête le gars ^ ^
“mais non, c’est pas si compliqué” qu’il nous répond
Quelques vidéos sur sa “chaîne privée”Niveau matos, il a chopé à Taïwan lors d’un voyage pour le boulot une supernes avec lecteur carte SD pour tester ses programmes sur le vrai hardware. Il a aussi une PSX avec port parallèle, pareil pour tester ses programmes. Enfin il a aussi un PI3, je lui ai demandé s’il ne pouvait pas cross compilé son émulateur dessus, “il sait pas”.
Il m’a demandé un A500, je lui filerai cet été quand je rentrerai en métropole…
Un jour je lui ai parlé de latence, que c’est souvent les soucis dans des émulateurs softwares contrairement à des solutions matérielles comme les FPGA
Il n’avait pas l’air de comprendre et m’a fait des grands yeux.
Je lui ai dis que j’avais testé des émulateurs ou le temps de latence se ressentait trop entre le moment où j’appuyais sur une touche et le moment où ça bougeait à l’écran.
Il m’a expliqué qu’il testait les interruptions à chaque ligne dessinée, j’ai dit “ok !” (et je pensais dans ma tête mais quel cinglé, c’est beaucoup trop, on est pas des aliens)Lubuntu Linux sur Lenovo 81AX - A1260/64 - http://mikedafunk.over-blog.org
Objectif déjà atteint, il a déjà pu lancer une partie de pinball dreams, le son semble nickel…
Je ne comprends pas comment il a intégré toutes les puces de l’Amiga dans son émulateur aussi vite.Lubuntu Linux sur Lenovo 81AX - A1260/64 - http://mikedafunk.over-blog.org
J’avais en contact l’auteur d’un des émulateur de NéoGéo à l’époque (David quelque chose), il m’avait dit aussi la même chose pour l’émulation néogéo, c’était super simple.
Pour l’Amiga par contre c’est compliqué car non seulement il faut émuler la bête et chaque composant mais aussi l’interaction entre chaque chips et au poutiem pret.
Ton pote c’est peut être aider des sources d’autres émulateur ?
On trouve les sources de WinUae, de Uae, de WinFello, etc..Sinon, projet à suivre 🙂
Par contre faut qu’il mettre un vrai GUI avec plein d’option (comme ses concurrents).
et qu’il apporte, si possible, un ‘plus’ par rapport toujours à ses concurrents.Joli boulot!
Perso je m’étais lancé dans la création d’un émulateur pc/dos en JS, juste pour voir, et parce que ça m’avait l’air plus simple que l’Amiga par exemple.
S’il y a des curieux c’est par ici: js-x86. Rien ne tourne pour l’instant, mais j’avais pas mal avancé.
Biensûr tout a déjà été fait, même en JS, mais je trouve l’exercice passionnant et super formateur.
“Je lui ai dis que j’avais testé des émulateurs ou le temps de latence se ressentait trop entre le moment où j’appuyais sur une touche et le moment où ça bougeait à l’écran.
Il m’a expliqué qu’il testait les interruptions à chaque ligne dessinée, j’ai dit « ok ! » (et je pensais dans ma tête mais quel cinglé, c’est beaucoup trop, on est pas des aliens)”Pourtant c’est la seule façon de faire un émulateur qui fonctionne à la vbl ou à la trame comme on disait.
Il y a un mode dans winuae qui permet d’avoir une émulation plus précise. Mais j’ai l’impression qu’il a été rajouté aprés. Donc je pense pas que winuae ait été vraiemnt optimisé dans ce sens. Pour winuae le but est d’émuler tout le matériel amiga. C’est un trés bon ému mais le côté usine à gaz peut être un peu rebutant.
Je pense qu’il y a de la place pour un émulateur qui fairait par exemple que le A500, ou que le A1200 en visant un fonctionement cycle perfect en priorité.
edit : le problème reste l’input, la vidéo et l’os : le clavier pc géré par l’os introduit forcément de la latence, de même qu’un joy usb, il faudrait un émulateur avec un micro noyeau linux, et un vieux pc avec un joy sur port interne. pour la vidéo il faudrait une carte vga qui gère le 720*576 (ça a existé…)
Moi je serais intéressé par un émulateur Amiga qui permet une émulation de lecture/écriture instantané et sans bug.
Chose que ne permet pas à ce jour WinUae.
Il est possible d’accélérer les accès disk mais en grande généralité, ça perturbe l’exactitude des I/O émulé.
Quand au mode ‘turbo’, alors la… c’est la cata, rien de mieux pour bousiller une image disk.Si ce genre d’émulateur est possible, pour moi, ça serais super intéressant.
ça me permettrait par exemple, sous l’émulateur, lancé X-Copy et copié en 1s l’intégralité d’une disquette.
L’utilité n’étant bien sur la création de la copie (on peut copier directement le fichier image depuis windows, beaucoup plus rapide), mais de voir ce que Xcopy va crée comme ‘copy’ et ce, sans attendre 2mn et des poussière.
Pour mes travaux sur les IPF, ça serait top.Salut les gars,
Non mon pote ne cherche pas de béta testeur, ni à coder une gui, ni même à le diffuser
Il fait ça juste pour s’amuser, “passer le temps”.Je ne pense pas qu’il se soit inspiré de sources d’autres émulateurs Amiga, avec l’expérience qu’il s’est faite avec les autres émulateurs, pas besoin !
Contenu de son dernier message par mail :
Un peu plus quand meme, j’ai commencé le 26 Jan.
Et je n’ai pas tout émulé, juste ce qu’il faut pour Pinball Dreams 😀A mon avis, si je mets une démo, ca va merder direct !
Mais c’est vrai que c’était plus rapide que je pensais !Et ca motive plus de faire fonctionner des jeux qu’on a connus à l’époque !
Lubuntu Linux sur Lenovo 81AX - A1260/64 - http://mikedafunk.over-blog.org
Bontanpi 😉
@Mikedafunk ton pote serait pas intéressé par le mettre open source ? Ca pourrait être intéressant/éducatif, surtout face au monstre qu’est devenu (Win)UAE.
Je viens de lui poser la question Leo, “pas vraiment mais on verra”
Il bosse en ce moment à faire fonctionner ‘state of the art’, “petit pb de fill up du blitter”
Lubuntu Linux sur Lenovo 81AX - A1260/64 - http://mikedafunk.over-blog.org
une demie heure après m’avoir envoyé “pb blitter” par sms, et tout en continuant à m’envoyer des messages, il m’a répondu “blitter ok”
J’ai testé, “State of the art” se lance, ok il y a quelques bugs graphiques sur certaines séquences, mais sur mon netbook atom de daube, c’est très fluide et ça consomme environ 25-35% du cpu, émulateur + debug :
idle(403, 34%) cpu(295, 24%) gfx(306, 25%) blit(143, 12%) snd(35, 3%) total(1186)
elapsed 15715 usec, wait instant 5145 us, fps: 63 (avg 50)En comparaison “9 fingers” avec fs-uae sur ma babasse consomme environ 90%, et rame du cul à certains moments (mais ça c’est la démo)
C’est beau !
Attachments:
Lubuntu Linux sur Lenovo 81AX - A1260/64 - http://mikedafunk.over-blog.org
#J’ai testé, « State of the art » se lance, ok il y a quelques bugs graphiques sur certaines séquences, mais sur mon netbook atom de daube, c’est très fluide et ça consomme environ 25-35% du cpu, émulateur + debug :
O_o’
La je demande à voir 🙂
ça me parait dingue.Hier soir j’ai essayé quelques demos pour le fun !
Lubuntu Linux sur Lenovo 81AX - A1260/64 - http://mikedafunk.over-blog.org
Emuler un Amiga complet, je vois ça comme un travail de titan. Rien que l’émulation du blitter, quand on connait tout le bazar de registres qui existe, ça me parait fou.
L’auteur de WinUAE corrige des beugs depuis quelques millions d’années maintenant 😉
Mais c’est vrai que l’approche, je prends un soft et j’émule juste ce qu’il faut pour qu’il fonctionne, est peut être la bonne chose à faire pour avoir un résultat assez “rapidement” et ne pas être découragé. Mais bon, ça veut quand même dire comprendre ce que font tout un cas d’obscures instructions assembleurs, propres à l’Amiga, dispatchées dans un programme. Et surtout il faut la doc de la machine, sinon tu ne vas pas aller bien loin, surtout dans le cas de l’Amiga.
Quand il y a un OR qui est fait sur un registre spécifique Amiga pour placer certains bits, si tu ne sais pas à quoi correspondent ces bits dans l’archi Amiga, je ne vois pas comment tu vas pouvoir écrire le code qui émule ça, à moins d’être devin. Et l’archi Amiga, c’est vraiment chaud (et je ne parle même pas de l’archi AGA ou on passe dans la 4eme dimension), il y a plein de registres pour piloter tous les composants. Surtout qu’il y a parfois de l’interdépendance entre plusieurs bits. C’est bien d’ailleurs ce qui a été reproché à cette plateforme, trop de complexité. Les consoles étant réputées beaucoup plus simples pour arriver à faire la même chose que sur l’Amiga.
Donc bref, ce que fait ton pote me parait fou.
Sur EAB il y un gars qui avait commencé un peu la même chose : Baremetal Amiga Emulator mais a abandonné. Si tu peux lui signaler. Peut être qu’il pourrait reprendre le flambeau ou s’en servir.
A500+ / A1200 / CD32 et... Jaguar
- Vous devez être connecté pour répondre à ce sujet.
› Forums › AmigaOS, MorphOS et AROS › Émulation et autres OS › Développer des émulateurs pour passer le temps