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.
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.
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é.
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.