- Snow est un émulateur open source qui reproduit le fonctionnement matériel des Macintosh basés sur Motorola 680x0 avec une fidélité maximale au matériel réel
- Il propose une interface utilisateur graphique (GUI) ainsi que de puissantes fonctionnalités de débogage
- Contrairement aux émulateurs existants, il adopte une approche qui minimise les patchs de ROM et l’interception des appels système
- Il prend en charge les modèles Macintosh 128K/512K/Plus/SE/Classic/II
- Développé en Rust, il peut être compilé et téléchargé sur différents systèmes d’exploitation
Vue d’ensemble du projet
- Snow est un émulateur qui reproduit par logiciel les ordinateurs Macintosh classiques (famille 680x0)
- Les utilisateurs peuvent s’en servir via une interface graphique, comme s’ils manipulaient un véritable Mac
- Ses fonctionnalités de débogage riches le rendent particulièrement adapté au développement et à l’analyse
Fonctionnement et caractéristiques
- Snow vise une émulation complète au niveau matériel (bas niveau), autant que possible
- Au lieu des méthodes habituelles consistant à patcher la ROM ou contourner les appels système, cela permet un fonctionnement proche du matériel réel
- Modèles officiellement pris en charge :
- Macintosh 128K
- Macintosh 512K
- Macintosh Plus
- Macintosh SE
- Macintosh Classic
- Macintosh II
- Il est implémenté en langage Rust, avec un accent sur l’efficacité et la sûreté
- Il est publié en open source sous licence MIT
Démo et documentation
- Une version de démonstration limitée exécutable dans le navigateur web est proposée
- Toutefois, elle ne fournit pas l’ensemble des fonctionnalités du logiciel complet, en particulier le GUI
- Les instructions détaillées d’installation et d’utilisation sont disponibles dans la documentation en ligne
Téléchargement
- Pour le moment, seule la dernière version de développement (bleeding edge build) est fournie automatiquement
- Windows 10 ou version ultérieure (x86 64 bits)
- macOS 11.7 (Big Sur) ou version ultérieure (universel)
- Linux (Ubuntu 24.04, x86 64 bits et ARM64)
- Des builds téléchargeables immédiatement sont distribués pour chaque système d’exploitation
Questions et participation
- Il est possible de signaler des problèmes et de contribuer via le dépôt GitHub
1 commentaires
Avis Hacker News
À propos du contexte qui donne une réelle importance à un émulateur portable et convivial, au niveau matériel, pour les systèmes Mac classiques, voir aussi ce billet de blog de 2020 : https://invisibleup.com/articles/30/ Alors que d’excellents émulateurs existent depuis longtemps pour les consoles de jeu, comme Nestopia, bsnes, Dolphin ou Duckstation, les PC ont surtout couvert les besoins du grand public via des systèmes de virtualisation comme VMWare et VirtualBox, avec plus récemment l’arrivée d’émulateurs haute fidélité comme 86Box et MartyPC. Pour le Commodore 64, il y a VICE, pour l’Amiga WinUAE, et pour l’Apple II des émulateurs de qualité comme KEGS et AppleWin, mais côté Mac, cela a surtout été dominé par des émulateurs comme Basilisk II, plus proches d’une abstraction de haut niveau, qui ne faisaient que reproduire le comportement de manière approximative
Il est mentionné qu’il existe aussi une alternative, Executor, même si elle est très limitée en matière de compatibilité : https://en.wikipedia.org/wiki/Executor_(software) Démonstration où le navigateur émule MS-DOS, puis exécute un jeu de solitaire Macintosh via Executor/DOS : https://archive.org/details/executor En plus d’Executor/DOS, il a aussi existé une version non publique pour les stations de travail Sun 3 utilisant des processeurs 680x0, ainsi qu’Executor/NEXTSTEP pour l’environnement NEXTSTEP. Il est souligné qu’Executor est le moins compatible parce qu’il n’utilise absolument aucune propriété intellectuelle d’Apple : le ROM et les remplacements du logiciel système ont tous été réécrits en clean room. Les anciennes versions d’Executor utilisaient des extensions spécifiques à gcc, donc une compilation sous Linux aujourd’hui peut être difficile, voire impossible. L’auteur dit avoir lui-même développé les premières versions du projet Executor, tandis que l’émulateur 68k performant et le sous-système couleur ont été réalisés par des programmeurs bien plus talentueux
Accord avec l’idée que le billet dit vrai, mais donne trop l’impression de dénigrer les efforts de la communauté de contributeurs bénévoles
MAME émule aussi le Macintosh et l’Apple II au niveau matériel, ce qui est mis en avant ; c’est plus précis que KEGS et AppleWin et le support des périphériques est plus large, mais c’est moins convivial
Après avoir essayé de lancer l’émulateur Macintosh II FDHD, seul un message dans le menu indique qu’il faut charger uniquement des disquettes 400K/800K, alors que la documentation de Snow précise la prise en charge de deux SuperDrive https://docs.snowemu.com/manual/media/floppies C’est peut-être pour cela qu’il éjecte immédiatement toutes les images de disquette fournies jusqu’ici, y compris une disquette System 7.1.1 en 800K pour systèmes compatibles Mac II. Snow semble avoir beaucoup de potentiel et le travail accompli force le respect, mais la scène de l’émulation Mac reste dans un état où les différents émulateurs prennent en charge du matériel et des fonctions très disparates, avec toujours besoin de nombreuses astuces et de connaissances préalables sur l’architecture interne des anciens Mac ; cela donne encore l’impression d’un ensemble rempli de promesses tournées vers l’avenir
Partage d’information indiquant que MAME prend aussi en charge dans une certaine mesure les Macintosh à base de 68k : https://wiki.mamedev.org/index.php/Driver:Mac_68K
À cause de la précision de l’émulation, il manque probablement certaines fonctionnalités décisives dont dispose BasiliskII. BasiliskII propose diverses fonctions comme la prise en charge d’ultra-hautes résolutions via des patchs de l’OS et du ROM, ainsi qu’une intégration (globalement) fluide avec le système de fichiers et le réseau de l’hôte. Ce n’est peut-être pas très rigoureux ni très exact, mais du point de vue de l’expérience utilisateur, même si cela n’a pas une intégrité particulière, quand tout fonctionne, l’usage est vraiment très agréable
Besoin de conseils pour trouver des fichiers ROM pour Mac. Plusieurs ont été téléchargés depuis des sites trouvés via Google, mais l’émulateur affiche toujours l’erreur « fichier ROM inconnu ou non pris en charge ». Demande de méthode pour trouver un ROM utilisable
https://macintoshgarden.org/ est recommandé avec assurance comme la meilleure source fiable
Il paraît assez absurde qu’Apple poursuive encore aujourd’hui ceux qui mettent en ligne ce type de vieux ROM
Témoignage personnel selon lequel les ROM du dépôt ci-dessous fonctionnent : https://archive.org/details/mac_rom_archive_-_as_of_8-19-2011
Les premiers travaux réalisés après l’université sont stockés sur des disques Bernoulli au format Mac. Pour faire tourner ce logiciel, un dongle ADB est indispensable, donc du matériel physique serait peut-être nécessaire. La question est de savoir s’il existe un adaptateur ADB-USB pouvant être mappé de manière à se connecter à l’émulateur
Les adaptateurs ADB-USB connus jusqu’ici ne prennent en charge que la souris et le clavier, leur firmware interne ne pouvant faire qu’un mappage vers USB HID. Pour un vrai passthrough, il faudrait un firmware personnalisé ; il pourrait même être plus simple de casser la protection anticopie du logiciel
Si rien n’a encore été sauvegardé, il y a un risque de perte des données ; si elles sont précieuses, il est recommandé de vérifier cela au plus vite
Avis selon lequel ceux qui possèdent encore un lecteur Bernoulli fonctionnel ont généralement aussi le vieux matériel Mac correspondant
Le produit suivant pourrait peut-être aider : https://www.bigmessowires.com/usb-wombat/
Il est souligné qu’il s’agit d’un émulateur 68K réimplémenté en Rust, sans utiliser le moindre code CPU en C largement connu comme Musashi ou UAE
Tentative de démarrage avec une disquette d’installation Mac OS 7.1 facile à trouver et un fichier ROM de Mac Plus courant ; le lecteur 0 continue d’éjecter la disquette. Mini vMac fonctionne bien, donc cela donne l’impression qu’il y a encore des progrès à faire
Étonnement de voir l’indication « non applicable » pour le support du HD20 sur des modèles comme le Mac SE ou le II. Tous les modèles, sauf le II, prennent en charge le démarrage HD20 au niveau ROM. L’auteur utilise lui-même un émulateur HD20 sur un Mac SE et considère que c’est une très bonne méthode pour appliquer facilement divers formats d’images disque aussi bien au Mac qu’aux émulateurs de lecteur de disquette
Question sur la nécessité, pour le Mac comme pour le Lisa, d’une « cycle accuracy » du matériel. Il est mentionné que, dans le cas du Lisa, l’OS suppose certains timings matériels, ce que des émulateurs comme Qemu ne peuvent pas satisfaire
Impression personnelle qu’il s’agit d’une réalisation vraiment immersive. Question sur l’espoir de voir aussi une émulation Atari ST possible