Affichage des articles dont le libellé est Emulation. Afficher tous les articles
Affichage des articles dont le libellé est Emulation. Afficher tous les articles

lundi 11 septembre 2017

[AMIGA] Quand l'émulation porte la nuisette !



E-UAE en toute transparence ! 
Dommage que ce ne soit pas une belle blonde.


Les utilisateurs d'AmigaOS 4 ont la chance d'avoir RunInUAE, ce logiciel qui permet de lancer de manière complètement transparente les ADFs et autres ISOs CD32 dans UAE. Il suffit de double-cliquer sur les ADFs ou de les balancer nonchalamment sur l'icone RunInUAE de votre AmiDock pour voir vos jeux s'exécuter dans UAE. Quant aux jeux CD32, on choisit dans le menu de RunInUAE de booter la CD32 sur une ISO (que vous avez préalablement montée) ou sur un CD. Simple comme un enfant qui vient de mettre sa main dans le feu, ou quelque chose du genre !
Mais voilà, sous MorphOS, on n'a pas RunInUAE... mais on a Fab1, Serge et Daff mais aussi Jambalah et un tout petit peu moi ^^


Les ADFs, WHDLoad et autres exécutables 68k

Dans les archives d'E-UAE MorphOS, dans les versions que l'on doit à Fabien "Fab1" Coeurjoly, l'on retrouve à chaque fois des applications dans le tiroir "Amiga" ainsi que des scripts dans le répertoire "Bonus" et ce, depuis 2006 soit quelques années avant la sortie de RunInUAE. Ce que je vais vous dire n'est par conséquent pas nouveau et un très bon tutoriel est disponible sur Obligement, complété par celui de Paolo "Jambalah" Russo (uniquement disponible au format PDF et seulement en anglais pour le moment).

Pour résumer ces tutoriels, mais surtout pour ne pas réinventer l'eau froide qui coupe le beurre, il s'agit d'indiquer à Ambient via les préférences de ses types mimes que les applications 68k et autres ADFs pourront se lancer via E-UAE tout en permettant à ce dernier de faire le lien entre Ambient et le Workbench émulé via des petites applis que vous devrez copier dans votre Workbench émulé. Mais pour tout cela, je vous invite à aller lire le tutoriel d'Obligement. De son côté, Jambalah a quant à lui poussé cette intégration à son paroxysme. Ainsi, il vous explique comment faire un Workbench vraiment minimaliste pour pouvoir lancer de manière quasi-instantanée les jeux WHDLoad. Et il ajoute une petite cerise sur ce cheese-cake et vous détaille comment le faire de manière encore plus intégrée et automatique en utilisant iGame ! De cette façon, vous vous retrouvez avec un logiciel vous affichant l'ensemble de vos jeux WHDLoad, mais pas uniquement, que vous pourrez lancer d'un simple double-clic sur le nom du jeu. Royal !

Je ne voulais pas l'écrire pour ne pas avoir l'obligation de le faire mais je vais quand même le faire... Je vais voir pour compléter les deux articles disponibles sur Obligement ("Intégrer E-UAE dans Ambient", pour y mettre toutes les astuces de Jambalah plus celle que je vais vous décrire ci-dessous, et "Installation et configuration de E-UAE", pour y ajouter une partie sur le JIT). Voilà, c'est dit, il ne me reste plus qu'à m'y mettre.


Quid de la CD32 ?

Pour ce qui est de la CD32 sous MorphOS, la situation est moins glorieuse. Autant RunInUAE apporte une solution tout-en-un, all-in-one comme disent nos amis anglophones, autant sur MorphOS la console CD de Commodore est délaissée. J'ai alors fait le pari, un peu à cause de Daff d'ailleurs, d'essayer d'intégrer dans Ambient une solution permettant le lancement quasi-transparent des jeux CD32, qu'ils soient au format ISO ou CD et, devinez quoi ?.... J'ai réussi ! J'ai pour cela été aidé par les amis du forum AmigaImpact dont Ball000 que je remercie encore. Pour que cela fonctionne, il va vous falloir les deux roms de la CD32 (la ROM et l'extended ROM, disponibles légalement dans la version Plus d'Amiga Forever). Il vous faudra aussi récupérer trois petits logiciels sur Aminet à savoir GetVolumeName, Sed 68k et IsInserted. Le premier permet d'obtenir le nom de volume de vos ISO, le deuxième permet d'ajouter le nom de volume ainsi récupéré dans votre fichier de configuration CD32, quant au dernier il vérifie s'il y a une ISO montée ou non et suivant le résultat lancera tel ou tel script.
Pour lancer tout ça, on ira modifier les types mimes des ISO (à savoir "x-iso-9660", pour pouvoir monter les ISO facilement) et celui des volumes d'Ambient ("xmorphos-globalaction-device", pour lancer E-UAE en mode CD32 et pour démonter les ISO préalablement montées).


Passons au vif du sujet !

Après vous avoir expliqué rapidement comment on allait procéder, je vais maintenant vous détailler l'ensemble du processus.

Nous allons partir du principe que votre installation E-UAE est d'ores et déjà fonctionnelle, se trouve dans Volume:Répertoire/E-UAE/ et que votre fichier de configuration dédié à la CD32 se nomme cd32.conf et se trouve dans le dossier conf/ de votre tiroir E-UAE. Il vous faudra par conséquent adapter ce que vous allez lire pour que cela corresponde à votre environnement.

Tout d'abord, il va falloir copier les exécutables de GetVolumeName, Sed et IsInserted dans MorphOS:C/. Ensuite, nous allons créer un script que nous allons nommer sobrement "ScriptCD32" et que nous allons glisser directement dans le répertoire d'E-UAE.


Voici le contenu de ce doux script (pour pouvoir faire un copié-collé) :

C:IsInserted ISO0:
IF NOT WARN
     c:GetVolumeName ISO0: short >env:nomvolume
     c:sed68k -e "s/NOMDEVOLUME/$nomvolume/g" Volume:Répertoire/E-UAE/Conf/cd32.conf >ram:cd32.conf
    run >nil: Volume:Répertoire/E-UAE/e-uae -f ram:cd32.conf -0
ELSE
    run >nil: Volume:Répertoire/E-UAE/e-uae -f Volume:Répertoire/E-UAE/conf/cd32.conf -0
ENDIF

Maintenant, nous allons nous assurer que vous avez bien une ligne dédiée aux ISO dans votre fichier cd32.conf. Vous devez par conséquent avoir une ligne qui ressemble à ceci, si ce n'est pas le cas, ajoutez là : filesystem2=ro,CD0:NOMDEVOLUME:ISO0:,1

Il va falloir désormais modifier le type mime des ISO. Pour cela, rendez-vous dans les préférences d'Ambient, MIME, cliquez sur "chercher" et tapez "ISO". Là, vous éditez x-iso-9660 et vous ajoutez une ligne intitulée "Monter l'ISO..." configurée en mode AmigaDOS pour lancer "MOSSYS:S/MountISO %sp". On passe ensuite au type mime des volumes. Idem que précédemment, on cherche "global" dans MIME et on édite xmorphos-globalaction-device. Là, on va ajouter deux lignes : une "Boot CD32" configurée en mode AmigaDOS pour lancer "execute Volume:Répertoire/E-UAE/ScriptCD32" et l'autre, que l'on nomme "Démonter le volume" et que l'on configure en mode AmigaDOS pour lancer "mossys:c/UnMount >nil: %sp".

Maintenant, quand vous voudrez lancer une ISO CD32, il vous faudra au préalable la monter via le menu contextuel puis lancer "Boot CD32" via le menu contextuel sur l'icone de l'ISO montée. Quand vous aurez fini de jouer, pensez à démonter l'ISO pour pouvoir ensuite en monter une nouvelle. Si vous voulez lancer un jeu CD, insérez simplement le CD et lancer "Boot CD32" via le menu contextuel sur le CD. Et voilà !


RunInUAE or MorphOS Bidouilles ? Telle est la question !

Ayant les deux désormais, je peux faire une petite comparaison rapide. Alors même si RunInUAE est très pratique, je n'ai pas réussi à faire fonctionner le lancement des jeux CD32 sans mettre les mains dans le camboui. Par contre, la configuration reste tout de même minimaliste. De plus, Hyperion fournit même les ROMs et des jeux avec AmigaOS 4.1. A l'utilisation, RunInUAE OS4 s'avère aussi simple que nos multiples bidouilles MorphOS. Il permet lui aussi d'utiliser iGame, comme sous MorphOS et pour cela, je vous invite à aller voir le fil de discussion nommé "E-UAE/RunInUAE/iGame" disponible sur le site Amigans.net, même si apparemment vous avez le risque de vous confrontez à un Grim Reaper de temps à autre avec iGame.

Pour ce qui est de nos bidouilles MorphOSiennes, ça prend du temps, c'est long et aussi fastidieux à installer/configuer. Mais, c'est aussi gratifiant une fois que cela fonctionne. J'ai pour ma part hurlé à la lune et couru nu sous cette même lune quand j'ai enfin finalisé mon installation ! Plus sérieusement, on peut regretter l'absence d'un outil identique à RunInUAE sous MorphOS. Toutefois, cela nous apporte la possibilité de faire aussi bien, ce qui est déjà pas mal. On pourrait d'ailleurs imaginer un script d'installation qui irait chercher tous les bons exécutables, les bons chemins et automatiserait la configuration de tout cela pour simplifier la tâche du simple quidam. Sans vouloir vendre la mèche ni faire de la délation, un certain Serge "Sergius" Alves s'était proposé de le faire, il y a de cela quelques années maintenant... ^^

Enfin, niveau compatibilité d'E-UAE avec la CD32, Christopher Handley, le développeur de RunInUAE, annonce 2 jeux CD32 sur 3 fonctionnels. Pour ma part, j'ai un taux de réussite sous MorphOS un peu supérieur mais je n'ai pas non plus testé l'ensemble des jeux CD32.

Il ne me reste plus qu'à vous souhaiter bon courage et surtout bons jeux par la suite ! ^^


Liste des liens :

Site de Fab1 : http://fabportnawak.free.fr
Tutoriel sur Obligement : http://obligement.free.fr/articles/integrer_euae_ambient.php
Tutoriel de Jambalah : http://www.meta-morphos.fr/download/Tutoriel/E-UAE%20installation%20on%20MorphOS.pdf
GetVolumeName : http://aminet.net/util/cli/GetVolumeName.lha
Sed 68k : http://aminet.net/dev/gg/sed-4.1.4-bin-m68k.lha
IsInserted : http://aminet.net/util/boot/IsInserted.lha
Fil de discussion concernant iGame et RunInUAE : http://www.amigans.net/modules/xforum/viewtopic.php?post_id=73263



--
/me s'est bien amusé à créer ces petits scripts et autres pour automatiser le tout !




Billet posté le 11 septembre 2017 (écrit le 23 novembre 2016)
(paru initialement dans le n°58 d'Amiga=Power)

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)