- Snow es un emulador de código abierto que reproduce el comportamiento del hardware de los Macintosh basados en Motorola 680x0 lo más fielmente posible a la máquina real
- Ofrece una interfaz gráfica de usuario (GUI) y potentes funciones de depuración
- A diferencia de los emuladores existentes, busca minimizar el uso de parches de ROM o la intercepción de llamadas al sistema
- Es compatible con los modelos Macintosh 128K/512K/Plus/SE/Classic/II
- Está desarrollado en Rust y se puede compilar y descargar en varios sistemas operativos
Descripción general del proyecto
- Snow es un emulador que recrea por software computadoras Macintosh clásicas (familia 680x0)
- El usuario puede manejarlo mediante una interfaz gráfica como si estuviera usando una Mac real
- Sus funciones de depuración son amplias, por lo que resulta útil para desarrollo o análisis
Funcionamiento y características
- Snow apunta a una emulación completa al nivel de hardware (low-level) siempre que sea posible
- Esto hace que funcione como hardware real, en lugar de usar los métodos habituales de parchear la ROM o desviar llamadas al sistema
- Modelos compatibles oficialmente:
- Macintosh 128K
- Macintosh 512K
- Macintosh Plus
- Macintosh SE
- Macintosh Classic
- Macintosh II
- Está implementado en Rust, con énfasis en la eficiencia y la seguridad
- Es de código abierto y se publica bajo la licencia MIT
Prueba y documentación
- Ofrece una versión de demostración limitada que puede ejecutarse en el navegador web
- Sin embargo, no incluye todas las funciones del software completo, especialmente la GUI
- Se puede consultar la documentación en línea para ver instrucciones detalladas de instalación y uso
Información de descarga
- Por ahora solo se ofrece automáticamente la versión de desarrollo más reciente (bleeding edge build)
- Windows 10 o superior (x86 de 64 bits)
- macOS 11.7 (Big Sur) o superior (universal)
- Linux (Ubuntu 24.04, x86 de 64 bits y ARM64)
- Ya se están distribuyendo archivos de compilación listos para descarga inmediata según el sistema operativo
Consultas y participación
- Se pueden reportar issues y enviar contribuciones a través del repositorio de GitHub
1 comentarios
Comentarios de Hacker News
Para entender por qué resulta tan importante un emulador portátil, amigable y a nivel de hardware para los sistemas Mac clásicos, vale la pena revisar esta entrada de blog de 2020: https://invisibleup.com/articles/30/ Mientras que para consolas de videojuegos existen desde hace mucho grandes emuladores como Nestopia, bsnes, Dolphin y Duckstation, en PC los sistemas de virtualización como VMWare y VirtualBox han cubierto las necesidades del público general, y más recientemente aparecieron emuladores de alta precisión como 86Box y MartyPC. Para Commodore 64 está VICE, para Amiga WinUAE, y para Apple II emuladores de gran calidad como KEGS y AppleWin, pero del lado de Mac siempre he sentido que predominaban emuladores como Basilisk II, más cercanos a una abstracción de alto nivel y que solo recreaban el comportamiento de forma aproximada.
En compatibilidad se queda bastante corto, pero también existió una alternativa llamada Executor https://en.wikipedia.org/wiki/Executor_(software). Hay incluso una demo donde un navegador emula MS-DOS y sobre eso ejecuta el juego de solitario para Macintosh con Executor/DOS: https://archive.org/details/executor Además de Executor/DOS, también hubo una versión no pública para estaciones de trabajo Sun 3, que usaban procesadores 680x0, y Executor/NEXTSTEP para el entorno NEXTSTEP. Se señala que Executor es el menos compatible porque no usa en absoluto propiedad intelectual de Apple: tanto el ROM como los reemplazos del software de sistema fueron reescritos desde cero con enfoque clean room. Las versiones antiguas de Executor usaban extensiones propias de gcc, así que hoy en día compilarlo en Linux podría ser difícil o imposible. Yo mismo desarrollé una primera versión del proyecto Executor, aunque el emulador 68k rápido y el subsistema de color fueron obra de programadores mucho mejores.
Lo que dice ese artículo es cierto, pero coincido en que transmite una sensación de desprecio excesivo hacia el esfuerzo de la comunidad de contribuciones gratuitas.
También hay que destacar que MAME emula Macintosh y Apple II a nivel de hardware. Es más preciso que KEGS y AppleWin y tiene mejor soporte de periféricos, aunque es menos amigable para el usuario.
Probé el emulador de Macintosh II FDHD, pero en el menú solo aparece un mensaje diciendo que cargue disquetes de 400K/800K. Sin embargo, el manual de Snow indica claramente que soporta dos SuperDrive https://docs.snowemu.com/manual/media/floppies. Por eso, hasta ahora ha expulsado inmediatamente todas las imágenes de disquete que le he dado, incluso un disco System 7.1.1 de 800K para sistemas compatibles con Mac II. Creo que Snow tiene mucho potencial y respeto el trabajo invertido, pero la escena de emulación de Mac sigue siendo un panorama donde cada emulador soporta hardware y funciones distintas de forma muy dispareja, y todavía hacen falta toda clase de trucos y conocimientos previos sobre la arquitectura interna de los Macs viejos. Da la impresión de estar lleno de promesas orientadas al futuro.
Comparto este enlace con información de que MAME también tiene cierto soporte para Macintosh basados en 68k: https://wiki.mamedev.org/index.php/Driver:Mac_68K
Por la precisión del emulador, supongo que probablemente le falten algunas funciones decisivas que sí tiene BasiliskII. BasiliskII ofrece varias cosas mediante parches del OS y del ROM, como soporte para resoluciones altísimas e integración en general bastante fluida con el sistema de archivos y la red del host. Pero quizá por lo poco riguroso o inexacto de todo eso, la experiencia de uso no tiene esa sensación particular de pureza; aun así, cuando funciona bien, la usabilidad es realmente excelente.
Necesito consejo sobre cómo conseguir archivos ROM para Mac. Bajé varios de sitios que encontré por Google, pero el emulador no deja de mostrar el error "archivo ROM desconocido o no compatible". ¿Alguna recomendación para encontrar ROMs utilizables?
https://macintoshgarden.org/ siempre me ha parecido la mejor fuente y la más confiable.
Me sigue pareciendo bastante absurdo que Apple todavía demande a la gente por subir estos ROMs tan antiguos.
En mi experiencia, los ROM de este repositorio sí funcionan: https://archive.org/details/mac_rom_archive_-_as_of_8-19-2011
Parte de mi trabajo de los primeros años después de graduarme de la universidad está guardado en discos Bernoulli con formato Mac. Para ejecutar ese software necesito forzosamente un dongle ADB, así que me pregunto si el hardware físico sigue siendo imprescindible. Mi duda es si existe algún adaptador ADB-USB que pueda mapearse para conectarlo a un emulador.
Los adaptadores ADB-USB que conozco hasta ahora solo soportan mouse y teclado; el firmware interno solo puede mapearse como USB HID. Para un passthrough completo haría falta firmware personalizado; de hecho, quizá sería más fácil vulnerar la protección anticopia de ese software.
Si todavía no has hecho respaldo, corres riesgo de perder los datos; si realmente son valiosos, te conviene revisarlos cuanto antes.
Quien tiene una unidad Bernoulli funcional normalmente también suele tener el hardware Mac antiguo adecuado para usarla.
Tal vez este producto te sirva: https://www.bigmessowires.com/usb-wombat/
Se destaca que es un emulador 68K reimplementado en Rust, sin usar nada del código de CPU en C ampliamente conocido como Musashi o UAE.
Probé arrancar con un disco de instalación común de Mac OS 7.1 y un archivo ROM de Mac Plus, pero la unidad 0 sigue expulsando el disco una y otra vez. Mini vMac funciona bien; por ahora da la sensación de que todavía necesita mejoras.
Me llama la atención que el soporte para HD20 aparezca como "no aplica" en modelos como Mac SE o II. Todos los modelos, excepto el II, tienen soporte de arranque HD20 a nivel de ROM. Yo mismo uso un emulador HD20 en un Mac SE y me parece una muy buena forma de cargar fácilmente varios tipos de imágenes de disco, tanto en Macs como en emuladores de disquete.
Me pregunto si, igual que Lisa, el Mac también necesita "cycle accuracy" del hardware. En el caso de Lisa, se menciona que el OS asume ciertos timings del hardware, algo que un emulador como Qemu no puede satisfacer.
Mi impresión personal es que la implementación se siente muy auténtica. ¿Hay esperanzas de que también pueda emular Atari ST?