Apple MAE sur Sun Solaris

Aujourd’hui, nous allons un peu jouer avec l’Ultra 30 sous Solaris 2.6.
En informatique, les années 80 et 90, ont produit des choses assez exceptionnelles qui seraient difficiles à concevoir aujourd’hui. Car nous allons parler de Macintosh Application Environment, ou MAE. Un émulateur édité par Apple entre 1994 et 1997 pour faire fonctionner les programmes développés pour Mac OS Classic (pour processeur Motorola 68K) sur les stations UNIX Sun sous Solaris (processeur SPARC) et HP sous HP-UX (processeur PA-RISC).
Rien que ça !
Première étape, récupérer MAE.
Téléchargez la dernière version, la 3.0.4, qui contient tout le nécessaire :
https://www.macintoshrepository.org/32453-macintosh-application-environment-3-0-4
Une fois l’environnement MAE installé (je n’ai pas installé le module kernel AppleTalk), quelques ajustements sont nécessaires.
Remarque concernant la licence :
MAE nécessite une licence, impossible à trouver aujourd’hui car évidemment Apple n’en fourni plus depuis des décennies.
Mais heureusement, l’archive contient un hack pour contourner la licence, dans le fichier MAE_lic_engine.tar. Il contient les scripts, une licence temporaire, et la librairie à charger pour réinitialiser la date à chaque lancement. Intégrez le contenu de l’archive au répertoire d’installation de MAE, en général /opt/apple.
Maintenant configurons l’environnement :
$ cat /opt/apple/bin/mae.sh :
#!/bin/csh
setenv MAEHOME /opt/apple
setenv TIMEFAKE /opt/src/mae-time
setenv LD_PRELOAD ${TIMEFAKE}/libtimefake.so
${MAEHOME}/bin/mae -display :0.0 -macdir /opt/apple/MainVolume
-sysfol /opt/apple/SystemFolder -memory 128 $*
$ cat /opt/apple/bin/mae_generic.sh
#!/bin/csh
setenv MAEHOME /opt/apple
setenv TIMEFAKE /opt/src/mae-time
setenv LD_PRELOAD ${TIMEFAKE}/libtimefake.so
${MAEHOME}/bin/mae -display :0.0 $*
$ cat /etc/system
[...]
set shmsys:shminfo_shmmax=67108864
set shmsys:shminfo_shmseg=10
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmmin=1
# mkdir /opt/apple/MainVolume
# mkdir /opt/apple/SystemFolder
# chown mattieu /opt/apple/MainVolume
# chown mattieu /opt/apple/SystemFolder
A ce moment, rebootez la machine, puis lancez MAE avec le script mae.sh :

Récupérons ensuite quelques prérequis pour installer des applications.
Disk Copy 6.1.3
https://www.macintoshrepository.org/2416-diskcopy-4-2-5-0-5-5-6-0-6-2-6-3-3-6-4-6-5b13-7-0-8-0
Fichier : DiskCopy_6.1.3.sea_.hqx
FileTyper 5.3.1
https://www.macintoshrepository.org/2050-filetyper
Fichier : FileTyper_5.3.1.sit_.hqx
Stuffit Expander 5.5
https://archive.org/details/stuffit_expander_55_selfcontained
Fichier : StuffIt_Expander_v5-5.hqx
Pourquoi au format HQX ?
Ces versions de Mac OS utilisent un format de fichiers particulier : principalement AppleSingle, AppleDouble ou MacBinary. Chaque fichier possède plusieurs « fourches » (forks) : les données, les ressources et les métadonnées du Finder. AppleSingle et MacBinary n’utilisent qu’un seul fichier pour stocker ces trois fourches. AppleDouble deux fichiers. Il faut donc gérer ces problèmes de format de fichier lorsqu’on partage les fichiers entre Solaris et MAE.
L’avantage avec HQX est qu’il fusionne les fourches de données et de ressources dans un même bloc unifié, le tout encodé en texte pur ASCII 7-bits.
Première application à installer : Disk Copy, puis FileTyper et enfin Stuffit 5.5.
Stuffit est déjà installé en version 4 sur MAE 3.0. Seulement la plupart des applications récentes (c’est à dire d’il y a moins de 30 ans) sont au format Stuffit 5. Si vous essayez de les ouvrir avec Stuffit 4 vous aurez des erreurs comme quoi le fichier est corrompu.
Transférez le fichier HQX de Disk Copy sur la machine Solaris, dans un répertoire accessible à MAE.
Lancez le launcher via Pomme > Control Panels > Launcher. Dans Third Party, lancez Stuffit Expander (en version 4 donc, intégrée à MAE).
Disk Copy étant au format BinHex auto extractible, il est reconnu par MAE comme tel, et doit pouvoir être extrait par Stuffit.
Mais c’est là que le problème se corse. Les deux autres fichiers HQX, FileTyper et Stuffit Expander, sont toujours reconnus comme fichiers UNIX. Et Stuffit intégré à MAE ne les voit pas.
Alors, il faut passer par un outil tierse, qui force ces deux fichiers au format AppleSingle. Et le seul moyen que j’ai trouvé est de passer par mon Octane sous IRIX, qui intègre les outils AppleTalk, et notamment karc, ou KUNARC(1), qui permet de convertir ces deux fichiers au format AppleSingle :
$ /usr/etc/appletalk/karc -A -f FileTyper_5.3.1s.sit_.hqx FileTyper_5.3.1.sit_.hqx
Creating AppleSingle archive: /usr/people/mattieu/macos_mini/FileTyper_5.3.1s.sit_.hqx
$ /usr/etc/appletalk/karc -A -f StuffIt_Expander_v5-5s.hqx StuffIt_Expander_v5-5.hqx
Creating AppleSingle archive: /usr/people/mattieu/macos_mini/StuffIt_Expander_v5-5s.hqx
Remarque : j’ai la chance d’avoir une machine sous IRIX avec les outils nécessaires. Si ce n’est pas votre cas, la seule solution que je vois serait d’utiliser une VM avec un émulateur comme Basilisk II pour créer les fichiers dans le bon format avant de les transférer.
Maintenant, transférez les deux nouveaux fichiers sur la machine Solaris dans le répertoire accessible à MAE.
Les deux archives devraient maintenant pouvoir parfaitement être extraites avec Stuffit.
Nous avons alors la base pour utiliser des applications natives pour MacOS System 7.5.
Jouons un peu avec Flight Simulator 4 !
Il est disponible ici :
https://www.macintoshrepository.org/3367-microsoft-flight-simulator-4-0
Fichier : MSFlightSimulator4.img_.sit
Transférons le fichier sur la machine Solaris, toujours dans un répertoire accessible à MAE. Et là, vous allez me dire, le problème est le même, MAE reconnait toujours le fichier SIT comme fichier UNIX inexploitable. Et bien puisque nous avons maintenant FileTyper, utilisons le pour modifier les champs Type et Creator du fichier MSFlightSimulator4.img_.sit :
- Type : SIT!
- Creator : SIT!
Le fichier de Flight Simulator est maintenant reconnu comme archive SIT. Mais attention, il faut utiliser Stuffit Expander 5.5 installé plus haut, pour décompresser l’archive, sinon par défaut, MAE va utiliser le Stuffit du système qui ne reconnait pas le format Stuffit 5 !

Et voilà, vous pouvez maintenant jouer à Flight Simulator 4, prévu pour Mac OS Classic sur Motorola 68K, sur un Mac OS Système 7.5, émulé par Apple MAE, sur une machine UltraSPARC sous Solaris 2.6.
Je trouve cela assez exceptionnel : Flight Simulator 4 date de 1989, le Système 7.5 de 1994, et MAE 3 tout comme mon Ultra 30 de 1997.
La bibliothèque Mac OS Classic étant énorme, je crois que je vais passer un peu de temps à explorer cet univers 🙂
A bientôt pour de nouvelles aventures !
