Nous avons besoin de meilleurs émulateurs pour les Macintosh

Pierre Dandumont |

Si vous avez déjà tenté d’émuler un Macintosh, et même en se limitant aux versions « classiques » des systèmes d’exploitation d’Apple (avant Mac OS X), vous avez probablement remarqué le souci : pour émuler un des premiers Macintosh, il faut passer par Mini vMac. Pour un modèle à base de processeurs 68K ? Plutôt Basilisk II. Un Power Macintosh ? Peut-être SheepShaver. Un système Apple qui n’est pas Mac OS, comme A/UX ? Shoebill. Une des dernières variantes de Mac OS 9 ? Peut-être QEMU.

Mais si vous avez envie de découvrir la seule mouture du System 7 qui affiche « Welcome to Power Macintosh » à la place de « Welcome to Macintosh », c’est plus compliqué. En effet, les émulateurs n’apprécient pas les premières versions optimisées pour les PowerPC des systèmes d’Apple. Dans la même veine, vous vouliez tester les jeux de la Pippin, la console d’Apple et Bandai ? Ce n’est pas réellement possible. Constater ce que le DSP des quelques Macintosh AV a dans le ventre ? Il faut un vrai Mac. Et c’est ce que nous souhaitons montrer du doigt avec cet article : si l’émulation existe, elle est singulièrement limitée et peu fidèle.

Ceci n’est pas un Macintosh.

ROM et Open Firmware, l’accès au matériel en question

Avant d’aller vers les émulateurs, il faut évoquer les ROM et autres Open Firmware, un concept nécessaire. Dans le cas des Macintosh basés sur les processeurs de la famille 68000 (nous parlerons de Macintosh 68K dans la suite), le code indispensable au démarrage ainsi qu’une partie des fonctions du système (certains pilotes, par exemple) sont stockés dans ce qu’on appelle une ROM (Read Only Memory). Il s’agit d’une mémoire intégrée sur la carte mère qui ne peut normalement pas être modifiée (elle est amovible dans certains cas) et elle définit en partie le type de Mac. Cette ROM contient du code qui appartient à Apple et qui ne peut pas être copié librement.

Dans les émulateurs, vous aurez dans la majorité des cas1 besoin de la ROM d’un Macintosh (idéalement celle du modèle que vous voulez émuler) pour démarrer. D’un point de vue légal, la copie numérique de la ROM doit venir de votre propre matériel, et doit avoir été faite par vos soins (c’est le droit à la copie privée), mais en pratique vous devriez trouver le nécessaire sur Internet en cherchant un peu (nous ne vous avons rien dit). Nous le verrons, le type de ROM est important : s’il n’en existe pas autant qu’il y a eu de Macintosh (quelques modèles partagent une même ROM), certaines sont inutilisables dans les émulateurs.

Cette ROM rouge est modifiable.

La ROM est essentielle pour les émulateurs, car une bonne partie des applications et des systèmes d’exploitation d’Apple passe par cette dernière, et elle fait ensuite le lien avec le hardware. C’est une voie royale pour réaliser un émulateur facilement : il « suffit » de développer le nécessaire pour que les appels à la ROM marchent pour obtenir une compatibilité correcte. Mais toutes les applications qui font un accès direct au matériel, elles, ne fonctionneront pas.

Quand Apple a intégré les CPU PowerPC à la place des 68K, la marque a ajouté une étape entre le processeur et la ROM : l’Open Firwmare. Cette brique logicielle (dont l’EFI est le descendant indirect) prend en charge l’initialisation du Mac et passe ensuite la main à la ROM pour le démarrage de Mac OS (un point qui a évolué au fil des années). Dans la pratique, la majorité des émulateurs exclut totalement cette étape, ce qui peut poser quelques soucis de compatibilité.

L’Open Firmware permet de démarrer Mac OS X en USB sur des Mac qui ne le permettent pas officiellement.

Avant même de nous intéresser à un émulateur précis, ce mode de fonctionnement montre déjà ses limites dans quelques cas. En effet, outre les applications qui se passent de la ROM (elles sont rares), un système Apple est généralement incompatible avec les émulateurs de Macintosh : A/UX. Le premier UNIX d’Apple, prévu pour les Macintosh 68K, dispose en effet de ses propres pilotes et routines et accès directement au matériel (avec parfois des cartes spécifiquement pensées pour lui). Il nécessite donc des émulateurs particuliers.

Dans la suite, nous emploierons essentiellement le nom Mac OS pour le système d’exploitation d’Apple, même si avant 1997 et Mac OS 7.6, le nom officiel était « System » suivi d’un numéro.

Le cas Basilisk II

avatar Lukas Apple Fan | 

Très bon article je suis entrain de le lire. Mais je pense qu’il y a une coquille : LIEN VERS L’ARTICLE SUR LES DEFAUTS DE MAC OS. 😅

avatar Pierre Dandumont | 
Merci ! (c'est enlevé)
avatar yod75 | 

Pas certain que ça ait la moindre utilité en termes de productivité, et c'est cela qui est beau.
C'est rassurant de constater que la passion existe encore

avatar koko256 | 

Oui. C'est dommage qu'Apple ne laisse pas la distribution des ROM libre (voire ne les distribue elle-même). Il n'y a aucun intérêt à s'y opposer.

avatar 421 | 

Fut un temps je me suis lancé dans l’émulation et finalement, il est est presque plus simple d’avoir en stock : un 603(e ou pas) un 604, un g3, un g4, un g5, un core2 duo ou i5 en 32 bits avec des kvm, va se passe bien 🤩

avatar melaure | 

ShapeShifter était le nom de l'émulateur Mac sur Amiga 4000. J'ai eu la chance de pouvoir utiliser MacOS sur 68060 du coup.

Pour le reste je n'aime pas beaucoup l'émulation. La seule que j'utilisais était celle des Amigas, mais le hardware est encore plus complexe que celui du Mac 68k, donc le résultat moyen.

Le mieux est de garder les machines, et c'est ce que je fais.

avatar raoolito | 

@melaure

des beaux souvenirs avec shapeshifter et amigas ...
mais conserver les machines me semble un peu énorme parce que comment empêcher le temps de faire son travail comment garantir que le jour on rallume elle va pas nous exploser à la face ?
et je ne parle même pas des lieux espace et conditions pour bien les conserver ça me semble une passion que je n'ai pas 😺

avatar melaure | 

Je ne garde que des machines compactes ou des portables. Rien à voir avec les tours PC ;)

avatar guibrush | 

Shapeshifter sur Amiga était bien plus évolué que cela (https://shapeshifter.cebix.net) il pouvait accéder à de vrai disques dur de Mac branchés sur un contrôleur SCSI. On pouvait aussi formater une partition du disque dur de l'amiga au format Mac. Le CPU était directement accessible, tout comme le MMU. On pouvait installer macOS 8.1, dernière version ne nécessitant pas de PPC. Avec les différents réglages de Shapeshifter, on pouvait arriver à une machine virtuelle (appelons-là comme ça, faut de mieux) très proche d'un Mac original, mais bien sur, on pouvait aussi totalement dévier et partir sur des configurations non existantes en vrai chez Apple. Fait amusant, il existe un autre émulateur sur Amiga réservé aux cartes power pc (il s'agissaient de cartes bi cpu, avec un 68k et un PPC pour Amiga 1200 et Amiga 4000), qui s'appelait ifusion et permettait de lancer MacOS 8 au-dela de 8.1, mais c'était un peut boiteux et n'a jamais vraiment atteint le niveau de qualité de shapeshifter :
https://forum.amiga.org/index.php?topic=59267.0

Petite précision concernant le 060 : ce n'est pas qu'il n'est pas compatible avec les 040 et précédents, c'est qu'il lui manque des instructions (64bitMUL, 64bit et selfmodify, ainsi que des fonctions du FPU). Motorola à retiré des instructions comme compromis pour faire tourner le CPU plus rapidement. Ces instructions sont interceptées par une librairie logicielle fournie par Motorola, qui exécutait ces instructions avec le CPU via émulation. elle à du être adaptée à toutes les machines utilisant ce CPU. Sur Amiga, il s'agit de la 68060.library. Comme c'est le système d'exploitation qui gère le trapping et que dans le cas de Shapshifter il tourne par-dessus le système de l'Amiga, pour le Mac émulé c'est transparent, il n'a pas besoin de libraire logicielle, il croit s'adresser à un vrai CPU, simplement il croit parler à un 6040.

C'est la même technique qui est utilisée par le 68080 fait par l'équipe Apollo : le 68080 incorpore toutes les instructions, et donc tous les softs n'y voient que du feu et croient s'adresser à un 68040. Seuls les nouveaux logiciels ayant connaissance de l'existence de ce CPU le détecte comme tel. On voit ça très bien sur le tableau suivant :

http://www.apollo-core.com/index.htm?page=features

Si vous voulez des infos sur l'émulation Mac sur d'autres plateformes, demandez-moi, c'est un de mes objectifs de ma collection : faire tourner MacOS en émulation sur tout ce qui est possible. Actuellement, je l'ai fais, et ai donc une version fonctionnelle sur :
- Amiga (Shapeshifter)
- Atari Falcon (Basilisk II)
- Atari STE (Spectre GCR)
- Lisa (MacOS XL)
- Nextstation Turbo (Daydream)
- Smaky 130 (Smack)

.

A faire encore :
- Bebox (Sheepshaver, je ne trouve pas l'exécutable)
- X68000 (XM6i, je ne trouve pas l'exécutable)
- Sparcstation 5 (MAE)
- PC / IBM PS/2 (fusion PC)
- SGI O2 IRIX (Basilisk II)
- HP 9000/712 HP Unix (Basilisk II)

avatar Pierre Dandumont | 
Il manque MAE sur les machines HP UX dans ta liste :o (je l'ai fait sur celles de Sun)
avatar guibrush | 

oui, on peut les rajouter, effectivement. Je voyais MAE plus sur la Sparc car c'est un produit conjoint entre Apple et Sun, mais rien n'empêche de le faire tourner aussi sur HP/UX. Par contre, sur IRIX; je ne crois pas que ça fonctionne.
Ceux-là, c'est par manque de temps que je ne les pas encore faites, pour la BeBox et le X68000 en revanche, je cherche les exécutables encore.

La version la plus exotique que j'ai est probablement la version sur le Smaky. Elle fonctionne en multitâche comme sur l'amiga, c'est vraiment bluffant à voir tourner.

avatar melaure | 

Oui je ne suis pas plus entré dans les détails. Le 4000 de mon ami d'étude avait une Cyberstorm avec un 68060/60 et un PPC 604e/200 (plus une cybervision), et le détail cocasse c'est que j'ai un acheté ensuite un Starmax 4000 604e/200 :P (un de mes meilleurs Macs d'ailleurs).

avatar mcai | 

J'ai cherché des informations sur M.A.C.E, je n'ai pas trouvé grand chose à part le site officiel.
Ça n'a pas l'air d'être open source malheureusement et aucune nouvelle depuis l'été 2023.
Ça ressemble à Wine dans le principe de fonctionnement, c'est ça ?

avatar dexter | 

Pour celles et ceux qui voudraient tester simplement Mac OS 9.2.1 émulé sur QEMU depuis un Mac Intel ou Silicon, le logiciel UTM propose dans sa Gallery un Mac OS 9.2.1 préinstallé dans une image disque à télécharger. Ça évite une installation et configuration de QEMU potentiellement compliquée. ;) UTM est une application macOS directement téléchargeable depuis leur site ou le Mac App Store. :)

Et dans quelques jours débute le #MARCHintosh ! L'occasion parfaite pour redécouvrir les anciens Mac OS en cette année des 40 ans du Mac !

CONNEXION UTILISATEUR