1 points par GN⁺ 21 일 전 | 1 commentaires | Partager sur WhatsApp
  • 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

 
GN⁺ 21 일 전
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

    • Dès que j’ai vu l’icône du Mac souriant et la barre de progression vide, j’ai immédiatement autorisé le domaine dans NoScript. C’était vraiment irrésistible
      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

    • Mac Classic était, sur le plan architectural, un système d’une pureté presque parfaite
      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
    • Bien sûr, il y avait aussi beaucoup d’apps qui dépendaient de particularités d’implémentation (quirks)
  • 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

    • Je connaissais Executor, mais je ne l’avais jamais vu en vrai
      À 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

    • Il y a eu récemment sur HN un projet de matériel rétro qui incluait l’émulation sonore. C’est ce son qui m’a le plus marqué
    • J’ai essayé un émulateur Apple II appelé Virtual II, et il donnait une sensation similaire grâce au son des disquettes et au réglage de la vitesse
    • Je me souviens avoir joué à King’s Quest IV sur un Apple IIe quand j’étais enfant. Il fallait changer de disquette à chaque changement d’écran. C’était vraiment la souffrance du changement de disque
  • 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

    • Advanced Mac Substitute enregistre les documents et les fichiers de configuration dans un répertoire hôte sandboxé
      Par exemple, dans la démo MacPaint, un double-clic sur le document Hello l’ouvre avec MacPaint.app dans le Finder de macOS
    • J’ai l’impression qu’un projet comme celui-ci pourrait justement devenir la base d’un tel système
  • 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

    • Je me demande toujours pourquoi le héros ressemble à Shaggy de Scooby Doo
      Et si l’on regarde ce commit, il semble que ça fonctionne réellement
    • Moi, je passerais directement à Beyond Dark Castle. Le niveau d’aboutissement est clairement différent dans cet épisode
  • 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.

    • J’imagine que, comme la plupart des appels MacOS de l’époque passaient par des instructions TRAP 68K, la ROM a probablement été réimplémentée directement au lieu d’émuler le matériel
      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
    • La toute première motivation qui m’a poussé à démarrer ce projet, c’était l’envie de redonner vie à The Fool’s Errand. Ironiquement, c’est de là que tout est parti