3 puntos por GN⁺ 2025-06-28 | 1 comentarios | Compartir por WhatsApp
  • 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

 
GN⁺ 2025-06-28
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.

    • Si es un emulador preciso y además tiene una base de código limpia, parece fácil agregar encima este tipo de parches o funciones. Cuando revisé directamente el código de parches de Basilisk, en realidad no me pareció complejo, y también hay ejemplos de reimplementaciones parciales de Toolbox como Executor —cuyo autor aparece en este hilo— y MACE. Portarlo llevaría bastante trabajo, pero parece suficiente con trasladar casi tal cual el código original y añadir infraestructura de pruebas.
  • 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?

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

    • Los primeros Mac usaban el IWM, un chip que concentraba el controlador Disk II, y al igual que en Apple II aprovechaban código ajustado al ciclo exacto. Que el cursor dejara de moverse repentinamente se debía a que el temporizador de interrupciones de 60 Hz tenía que desactivarse mientras se escribía en disco. Andy Hertzfeld comentó una anécdota sobre este tema en Folklore.org https://www.folklore.org/Nybbles.html. Las curiosas técnicas de protección anticopia de discos que existían en Apple II —pistas en espiral, sectores de distintos tamaños y varios métodos de nibbilization— en teoría también serían posibles en Mac, y da curiosidad saber si alguna vez se usaron de verdad.
  • Mi impresión personal es que la implementación se siente muy auténtica. ¿Hay esperanzas de que también pueda emular Atari ST?

    • Ya existe el proyecto Hatari, un emulador de Atari ST de altísimo nivel: https://github.com/hatari/hatari Además, un emulador orientado a baja latencia llamado Clock Signal (CLK) cubre una amplia variedad de equipos clásicos, incluidos Acorn, Amstrad, Apple II/II+/IIe, Atari ST y 2600: https://github.com/TomHarte/CLK