Advanced Mac Substitute
(v68k.org)- Peut réimplémenter Mac OS des années 1980 au niveau des API et exécuter directement des applications Mac 68K sans ROM Apple ni logiciel système
- Avec une architecture qui remplace le système d’exploitation lui-même au lieu d’émuler tout le matériel, il permet un lancement instantané des applications sans processus de démarrage
- Composé d’un émulateur 68K en backend et d’un frontend basé sur SDL2, il offre le même environnement sur diverses plateformes comme macOS, X11 et le framebuffer Linux
- Peut exécuter des logiciels Macintosh classiques comme MacPaint, Lode Runner et The Fool’s Errand dans un environnement graphique 1 bit
- Distribué comme source ouverte sur GitHub, c’est un projet de réimplémentation open source pouvant aussi fonctionner sur des systèmes de type POSIX et des clients VNC
Présentation d’Advanced Mac Substitute
- Advanced Mac Substitute (AMS) est un projet qui réimplémente Mac OS des années 1980 au niveau des API, permettant d’exécuter des applications Mac 68K sans ROM Apple ni logiciel système
- Contrairement aux émulateurs traditionnels, il n’émule pas l’ensemble du matériel : il reproduit uniquement le processeur 680x0 et remplace le système d’exploitation lui-même
- Cette architecture permet de lancer directement les applications sans passer par une phase de démarrage
Architecture et composants
- AMS est structuré comme une application factorisée (factored)
- Le backend est un émulateur 68K, qui peut être compilé et exécuté sur n’importe quel système de type POSIX
- Le frontend est une couche d’abstraction de terminal bitmap, basée sur SDL2, avec des implémentations pour macOS, X11 et le framebuffer Linux (fbdev)
- Cette architecture permet d’offrir le même environnement d’exécution pour les applications Mac 68K sur différentes plateformes
Applications exécutables et démonstrations
- AMS peut exécuter plusieurs applications conçues pour le Macintosh original
- Parmi les exemples figurent les jeux Amazing, Solitaire, Missile et IAGO, sortis en 1984
- Il peut également exécuter MacPaint, System’s Twilight, Lode Runner et The Fool’s Errand
- Chaque application fonctionne dans AMS dans un environnement graphique 1 bit, et des vidéos de démonstration sont disponibles
Fonctionnalités prises en charge
- AMS prend en charge les éléments graphiques et d’interface utilisateur de Mac OS suivants
- Graphismes en profondeur 1 bit, régions (regions), cercles et rectangles arrondis, lignes (line), curseurs, GrafPorts, texte, fenêtres, contrôles, menus, boîtes de dialogue, etc.
- Cela permet de reproduire fidèlement les caractéristiques visuelles et fonctionnelles des logiciels Macintosh des années 1980
Code source et environnement d’exécution
- Le code source d’AMS est publié sur GitHub dans le dépôt metamage_1
- Il peut être exécuté directement sur macOS / OS X, X Window System, la console framebuffer Linux ou un client VNC
- L’ancienne documentation (legacy documentation) du projet a été déplacée vers une page distincte, et une révision est en cours
Exemples de démonstration
- Le site officiel propose plusieurs vidéos de démonstration, permettant de voir MacPaint, Amazing et Nyanochrome Cat en fonctionnement
- L’écran « Welcome to Advanced Mac Substitute » n’est pas un véritable écran de démarrage, mais une interface sous forme d’application
Autres informations
- Le projet est géré sur v68k.org, et la dernière mise à jour date du 29 novembre 2025
- Le développeur est également actif via ses comptes GitHub et Twitter
1 commentaires
Avis sur Hacker News
C’est vraiment un projet formidable. L’esthétique « ligne temporelle alternative » dégagée par le MacOS classique en noir et blanc inspire une impression de confiance et de stabilité
Ça me rappelle les Macintosh SE ou Plus alignés dans la salle informatique de l’école primaire
Je présente mon UI de bureau web MacOS System 7. C’est une réinterprétation qui permet une vraie navigation web
L’économiseur d’écran m’a fait éclater de rire. C’était à la fois familier et étrange, comme regarder un univers parallèle
J’ai moi aussi déjà créé un simulateur Mac basé sur le web. Mon but était d’apprendre le CSS et le JS, mais j’ai réalisé que le web n’était pas adapté à l’empilement de structures complexes, et cette expérience m’a conduit à créer Advanced Mac Substitute
Ces derniers mois, j’ajoutais un JIT ARM64 à Basilisk II
En ce moment, je suis en train de patcher une ROM Quadra pour contourner la détection du matériel NuBus
J’ai vraiment envie d’essayer ce projet. Si des fonctions modernes comme le partage de fichiers étaient intégrées à un environnement Mac classique, ce serait parfait même sur de petits appareils
Il est étonnant qu’un logiciel des années 1980 fonctionne uniquement grâce à la compatibilité API
C’est remarquable qu’il ne dépende pas de détails d’implémentation comme le timing ou l’alignement mémoire
Il suffit pourtant de dépendre d’un seul détail d’implémentation pour qu’il ne fonctionne pas sur un autre OS
Il assurait la plupart de ses fonctions avec seulement un framebuffer 1 bit et le CPU
Les bidouillages sur les machines 8 bits consistaient le plus souvent à contourner des limitations fonctionnelles
Je ne sais pas si Apple a pris ces décisions en pensant aux générations futures, mais cette structure simple a sans doute facilité les extensions ultérieures
C’est vraiment un superbe projet. Ça me rappelle ARDI Executor, un logiciel commercial sorti en 1990
À l’époque, il offrait des performances étonnantes sur du matériel PC grâce à une réimplémentation au niveau API
Je me souviens avoir été émerveillé, enfant, de pouvoir lancer des jeux Mac sur un PC Windows et de me dire : « donc c’est possible »
L’article Wikipédia sur Executor et le code sur GitHub valent aussi le détour
Un ingénieur d’ARDI apparaissait aussi brièvement dans le documentaire Triumph of the Nerds en 1996
À l’époque, les performances d’émulation étaient cruciales, mais aujourd’hui le matériel est assez rapide pour que ce ne soit plus vraiment un problème
Ce qui compte maintenant, c’est la portabilité et la maintenabilité, ainsi que le patch de programmes conçus pour monopoliser le CPU afin de les adapter à des environnements modernes
Je n’arrive pas à imaginer à quel point ce sera rapide par rapport au matériel original du Mac 512k
Ça me rappelle l’expérience très physique de l’époque où l’on faisait tourner le système avec une seule disquette et où il fallait sans cesse en changer
Ce serait vraiment amusant s’il y avait un mode « ralentir » qui reproduise même le son de lecture/écriture des disquettes
Je me demande comment ça se compare à Executor
J’aimerais qu’il existe une couche de compatibilité façon Carbon où de vieilles apps pourraient tourner dans des fenêtres modernes et où l’on pourrait aussi enregistrer des fichiers
Par exemple, dans la démo MacPaint, un double-clic sur le document Hello l’ouvre avec MacPaint.app dans le Finder de macOS
Je me demande si cela a été achevé avant MACE, ou si l’objectif est différent
Est-ce que « Dark Castle » tournerait ? J’ai passé énormément de temps sur ce jeu
Et si l’on regarde ce commit, il semble que ça fonctionne réellement
C’est un accomplissement vraiment impressionnant. Je suis curieux de connaître le processus de création, la motivation, le temps que cela a pris, etc.
Un ami à moi avait lui aussi réécrit la Toolbox en bibliothèque C pour porter des apps Mac sur PC
Il avait tout réimplémenté ou presque : QuickDraw, Event Manager, Memory Manager, etc. L’interface utilisait OpenLook UI, ce qui lui donnait un rendu totalement différent