mardi 31 janvier 2017

[AMIGA] E-UAE is magJIT !


E-UAE is magJIT !
Et Álmos est le prestidigitateur !

Vous ne le savez peut-être pas, mais les “nouveaux” Amiga sont compatibles avec les logiciels qu’on trouvait sur les Amiga des années 80-90, mais de manière partielle puisque tous ceux utilisant les puces spécialisées des Amiga ne peuvent pas fonctionner, la faute à l’absence de ces dernières dans les AmigaOne, Sam, Pegasos ou autres Macintosh PPC (les trois premiers faisant fonctionner AmigaOS 4, les trois derniers faisant fonctionner MorphOS, oui, le Pegasos dans sa version II permet de faire fonctionner AmigaOS 4 et MorphOS, tout comme la Sam460, et bientôt l’AmigaOne X5000 devrait aussi réussir cet exploit). Pour pallier à cela, et permettre de jouer à tous les jeux de la ludothèque Amiga, puisque la très grande majorité des jeux utilisaient ces puces dédiées, il nous faut par conséquent utiliser un émulateur, à savoir E-UAE, un dérivé de WinUAE, performant mais qui avait quand même ses limites. Cependant, grâce à Álmos “Rachy” Rajnai, notre E-UAE PPC, à l’instar de son grand frère Windowsien, s’est lui aussi doté d’un JIT (qui signifie “Just In Time”). Ce JIT recompile en fait à la volée des parties du code émulé pour le transformer en code PPC dans le cas présent, ce qui accélère grandement les choses, et c’est peu de le dire.



Un peu d’Histoire !

L’émulation de l’Amiga par d’autres machines était une vaste plaisanterie, du fait des puces dédiées qui compliquaient largement la tâche, pas seulement des développeurs, mais surtout des machines qui essayaient de l’émuler puisqu’il fallait des machines surpuissantes, qui n’existaient pas alors, pour que cela fonctionne à peu près correctement. Je vous parle ici du début/milieu des années 90. Mais voilà, avec l’avènement des machines dépassant les centaines de MegaHertz, la mémoire qui continuait elle aussi d’enfler dans les configurations PC, ce qui devait arriver arriva et les émulateurs Amiga ont commencé à se creuser un trou (à l’époque, WinUAE était déjà là, mais Fellow était aussi de la partie). L’arrivée du JIT dans WinUAE a ensuite permis à toutes les configurations plus ou moins modestes de pouvoir faire fonctionner correctement la majorité des jeux Amiga… Ça y était, un PC du Carrouf’ du coin pouvait faire tourner les jeux Amiga… Pour concurrencer ces émulateurs, un autre émulateur proposait l’originalité de ne pouvoir lancer que les applications n’utilisant pas les puces dédiées et de pouvoir aussi exécuter du code Amiga compilé en x86 (qui est, rappelons le, le processeur de chez Intel et AMD que l’on retrouve dans les PC, alors que le processeur de l’Amiga était de la famille des 680x0, de chez Motorola) tout en possédant lui aussi un JIT : Amithlon. Celui-ci aurait pu devenir un environnement viable, même s’il était cantonné à AmigaOS 3.1 (du moins au départ), mais des mésententes et diverses engueulades en viendront à bout…

Finalement, l’Amiga connaîtra un renouveau avec la sortie du Pegasos et de son système MorphOS, puis avec la sortie de l’AmigaOne et d’AmigaOS 4. Ces deux systèmes, à l’instar d’Amithlon, ne pouvaient lancer que les applications “propres” (qui n’utilisent pas les puces) mais avaient aussi l’avantage d’évoluer et de proposer des nouveautés. Mais comme les machines n’étaient pas des super-calculateurs, même si elles étaient relativement véloces pour l’époque (600 MHz pour le G3 du Pegasos I par exemple, qui passera à 1 GHz pour le G4 du Pegasos II qui aura en plus l’Altivec), l’émulateur Amiga UAE permettait de faire tourner ces vieux jeux de manière honnête mais il ne fallait pas s’attendre à lancer des jeux pour Amiga 1200 un peu boosté, voire certains jeux Amiga 1200 de base.



Petit à petit, les machines accueillant AmigaOS 4 et MorphOS ont pris de la vitesse, mais l’émulation Amiga était toujours un peu juste, il manquait toujours un petit quelque chose… Et ce petit quelque chose, c’était le JIT. Disponible pour les possesseurs d’ordinateurs à base de x86, ce JIT x86 ne pouvait malheureusement pas être réutilisé puisqu’il était et est toujours spécifique à ce type de processeur, qui ne fonctionne pas du tout de la même façon que les PPC, qui eux font fonctionner les AmigaOne et autres… Et si MorphOS et AmigaOS 4 ont eux aussi un JIT (respectivement Trance et Petunia), ceux-ci ne pouvaient pas non plus être adaptés à UAE (et là, j’avoue que je ne sais pas trop pourquoi, sans doute que le JIT d’UAE ne traite pas uniquement que les données du processeur 68k…). Il fallait par conséquent se relancer dans un développement quasiment de zéro, ce qu’aucun n’a voulu faire même lorsqu’un bounty (une cagnotte faite par les utilisateurs qui revient au développeur qui aura rempli le cahier des charges écrit au préalable) a été créé en 2009. Avec pas loin de 3000 EUR à la clé, personne ne voulait s’y atteler. Il faudra attendre début 2011 pour que Álmos “Rachy” Rajnai se porte “volontaire”.
Initialement prévu pour être terminé fin février 2012, il lui aura finalement fallu près de 4 années pour venir à bout de ce projet titanesque. Álmos avait tout de même un petit avantage par rapport aux autres, il était l’auteur de Petunia, le JIT d’AmigaOS 4 !


Résultats des courses ?

Tout d’abord, sachez que SysInfo, qui permet d’avoir quelques informations sur son Amiga, et qui fait aussi un petit calcul du nombre d’opération à la seconde, donne un processeur 68020 à 10 Mips sans JIT contre un processeur 68020 à 88 Mips avec le JIT ! La différence entre les deux est, par conséquent, déjà plus qu’évidente sur mon PowerBook G4 à 1,67 GHz. Pour ce qui d’un Mac Mini G4 à 1,33 GHz, celui de ACE pour ne pas le citer, il tourne à près de 66 MIPS, ce qui est plus qu’honorable et ce qui rend le tout enfin utilisable.




Autre sentiment, le boot d’un système complet semble nettement plus rapide et surtout l’utilisation du Workbench émulé est d’une fluidité quasi parfaite (j’utilise un Workbench en AGA en 640x480) et surtout bien meilleure qu’avant.

Pour être totalement sûr de mon coup, je lance AlienBreed 3D avec E-UAE sans le JIT… Outch, que c’est lent, je ne sais même pas si j’atteins les 5 FPS… Comparons avec la version JIT… Nom de Zeus ! C’est fluide, probablement pas très loin de 30 FPS ! Et le résultat est encore plus saisissant avec AlienBreed 3D II qui est enfin jouable ! Ce qui est étrange, puisque la DEL (oui Diode Électro Luminescente en bon françois, ou bien LED si vous préférez…) dédiée au JIT reste rouge, ce qui signifie que celui-ci n’est pas activé… Étrange, et surtout tout bonnement incroyable. Le constat se répète avec d’autres FPS comme Breathless. Bien évidemment, le JIT ne permet pas de faire des miracles puisqu’il ne fonctionne qu’avec un processeur 68020 et plus.

De ce fait, les jeux n’utilisant pas ces processeurs ne tirent pas parti du JIT. Malgrè cela, il faut avouer que le JIT apporte un souffle nouveau à l’émulation Amiga sur ordinateurs PowerPC, et notamment sur AmigaOne/Sam/Pegasos/Mac PPC !

Une petite astuce importante à noter : si vous utilisez MorphOS et que vous trouvez que votre E-UAE JIT se traîne, allez télécharger la version compilée par Fabien “Fab1” Coeurjoly qui est disponible sur http://fabportnawak.free.fr ! La différence entre sa version et celle disponible sur le Sourceforge officiel est d’un facteur de 2 ! D’autre part, si vous utilisez un portable sous MorphOS et que vous utilisez la version de Fab1 et que ça continue de se traîner, vérifiez que vous avez bien l’alimentation branchée. En effet, MorphOS gérant assez efficacement l’énergie, il réduit par défaut la puissance utilisable sur les portables qui sont sur batterie. Par conséquent, soit vous allez bidouiller dans les préférences de MorphOS soit vous remettez le fil à la patte de votre portable !


J'ai également testé UAE JIT sur mon Mac Mini, qui est tout de même légèrement overclocké et tourne à 1,75 GHz (il s'agit également de la version qui possède 64 Mo de mémoire vidéo) et les résultats sont identiques à ceux obtenus avec le PowerBook. La sensation de vitesse est là aussi bien présente mais il faut reconnaître que certains jeux n'aiment pas trop le JIT et se trouvent, aussi étrange que cela puisse paraître, plus lent ou avec des saccades sous UAE JIT et tournent parfaitement avec la version sans JIT (je pense notamment à SlamTilt). Pour ce qui est de SysInfo, le nombre de MIPS obtenu est proche de celui obtenu avec le PowerBook, à savoir 84,3 en mode fenêtré sans overlay (pour pouvoir faire les captures d'écran) contre 88 pour le PowerBook. Toutefois, le Mac Mini monte à 88 MIPS en plein écran avec l'overlay activé ! Je ne saurais expliqué cela mais c'est un fait intéressant à noter.


Le mot de la fin !

Comme écrit en titre, UAE est désormais magJIT, voire magique avec le JIT ! C’est désormais un vrai plaisir d’utiliser son Amiga émulé sous MorphOS. Personnellement, j’ai réinstallé un OS 3.1 de base qui se lance sans rien de plus pour pouvoir utiliser iGame et ainsi lancer de manière “transparente” les jeux WHDLoad notamment.
J’ai aussi installé les scripts Ambient disponibles dans l’archive d’E-UAE MorphOS afin de simplifier toujours plus le lancement d’ADF ou autres exécutables 680x0 !


En plus de ces scripts qui me permettent de lancer UAE de manière "invisible", j'ai aussi créé des icones qui me lancent les configurations souhaitées afin d'arriver sur le WB de mon choix (dont un clone de mon A600 et de son HD de 20 Mo ^^) ainsi que des raccourcis vers les répertoires qui font office de disque dur pour UAE afin d'avoir facilement accès à ceux-ci et de pouvoir y copier facilement mes exécutables et autres. Ce qui est pratique, c'est que la copie de fichiers dans un de ces répertoires/disque dur est immédiate et le fichier est disponible instantanément sous UAE. Royal !

Comme dirait l’autre : “C’est rien que du bonheur !”.


Sites internet :
http://euaejit.blogspot.fr/

Guide d’installation d’E-UAE sur MorphOS, très détaillé (en anglais) : E-UAE_installation_on_MorphOS.pdf (ce guide est aussi valable pour la version
JIT)

--

/me a trouvé l'astuce qui lui permet de se connecter à Blogger avec OWB MorphOs ! Youhou !



Billet posté le 31 janvier 2017
(paru initialement dans le n°56 d'Amiga=Power (septembre 2015)