3 pontos por GN⁺ 2025-06-28 | 1 comentários | Compartilhar no WhatsApp
  • Snow é um emulador de código aberto que reproduz o comportamento de hardware do Macintosh baseado em Motorola 680x0 da forma mais fiel possível ao real
  • Oferece interface gráfica do usuário (GUI) e recursos avançados de depuração
  • Diferente de emuladores existentes, adota uma abordagem que minimiza patches de ROM e interceptação de chamadas de sistema
  • Suporta os modelos Macintosh 128K/512K/Plus/SE/Classic/II
  • Foi desenvolvido com base em Rust e pode ser compilado e baixado em vários sistemas operacionais

Visão geral do projeto

  • Snow é um emulador que recria por software computadores Macintosh clássicos (linha 680x0)
  • O usuário pode utilizá-lo por meio de uma interface gráfica, como se estivesse operando um Mac real
  • Seus recursos de depuração são abrangentes, o que o torna útil para desenvolvimento e análise

Como funciona e principais características

  • Snow busca uma emulação completa no nível de hardware (baixo nível), sempre que possível
    • Em vez de usar métodos comuns como aplicar patch na ROM ou contornar chamadas de sistema, ele procura se comportar como o hardware real
  • Modelos oficialmente suportados:
    • Macintosh 128K
    • Macintosh 512K
    • Macintosh Plus
    • Macintosh SE
    • Macintosh Classic
    • Macintosh II
  • Implementado em Rust, com ênfase em eficiência e segurança
  • É open source e distribuído sob a licença MIT

Demonstração e documentação

  • Há uma versão de demonstração limitada que pode ser executada no navegador
    • Porém, ela não oferece todos os recursos do software completo, especialmente a GUI
  • Instruções detalhadas de instalação e uso estão disponíveis na documentação online

Informações de download

  • Atualmente, apenas a versão de desenvolvimento mais recente (bleeding edge build) é fornecida automaticamente
    • Windows 10 ou superior (x86 64 bits)
    • macOS 11.7 (Big Sur) ou superior (universal)
    • Linux (Ubuntu 24.04, x86 64 bits e ARM64)
  • Builds prontos para download imediato estão sendo distribuídos para cada sistema operacional

Contato e participação

  • É possível abrir issues e contribuir por meio do repositório no GitHub

1 comentários

 
GN⁺ 2025-06-28
Comentários do Hacker News
  • Para entender o contexto em que um emulador em nível de hardware, portátil e amigável para sistemas Mac clássicos, passou a ter tanta importância, vale ver este post de blog de 2020: https://invisibleup.com/articles/30/ Enquanto consoles de videogame já contam há muito tempo com ótimos emuladores como Nestopia, bsnes, Dolphin e Duckstation, no mundo dos PCs sistemas de virtualização como VMWare e VirtualBox atenderam às necessidades mais populares, e mais recentemente surgiram emuladores de alta fidelidade como 86Box e MartyPC. Para o Commodore 64 existe o VICE, para o Amiga o WinUAE, e para o Apple II o KEGS e o AppleWin, todos de alta qualidade, mas do lado do Mac a impressão é que predominavam emuladores como o Basilisk II, mais próximos de abstrações de alto nível, que só recriavam algo mais ou menos parecido

    • Em termos de compatibilidade, era bem limitado, mas também existia a alternativa Executor: https://en.wikipedia.org/wiki/Executor_(software) Há uma demonstração em que o navegador emula MS-DOS e, sobre ele, roda o jogo Solitaire para Macintosh via Executor/DOS: https://archive.org/details/executor Além do Executor/DOS, havia também uma versão privada para estações de trabalho Sun 3 com processador 680x0 e o Executor/NEXTSTEP para o ambiente NEXTSTEP. O ponto é que o Executor não usava nenhuma propriedade intelectual da Apple, o que também o tornava o menos compatível; tanto a ROM quanto o substituto do software de sistema foram reescritos do zero em clean room. Versões antigas do Executor usavam extensões específicas do gcc, então compilar no Linux hoje pode ser difícil ou impossível. O autor comenta que desenvolveu pessoalmente uma versão inicial do projeto Executor, enquanto o emulador 68k de alto desempenho e o subsistema de cores foram feitos por programadores muito melhores

    • O conteúdo do texto está correto, mas concordo que passa uma sensação de menosprezar demais o esforço da comunidade de contribuições gratuitas ao longo dos anos

    • Vale destacar que o MAME também emula Macintosh e Apple II em nível de hardware. Ele é mais preciso e oferece mais suporte a periféricos do que KEGS e AppleWin, mas é menos amigável ao usuário

    • Testei o emulador Macintosh II FDHD, mas no menu só aparecia a mensagem para carregar disquetes de 400K/800K, embora o manual do Snow diga claramente que há suporte a dois SuperDrive: https://docs.snowemu.com/manual/media/floppies Talvez por isso ele tenha ejetado imediatamente todas as imagens de disquete que eu forneci até agora; nem mesmo reconheceu um disco System 7.1.1 de 800K para sistemas compatíveis com Mac II. Acho que o Snow tem muito potencial e respeito o esforço, mas a cena de emulação de Mac ainda continua desigual, com cada emulador suportando hardwares e recursos diferentes, ainda exigindo vários truques e conhecimento prévio sobre a arquitetura interna dos Macs antigos, como se estivesse cheia de promessas voltadas ao futuro

    • Compartilhando a informação de que o MAME também oferece certo suporte a Macintosh baseados em 68k: https://wiki.mamedev.org/index.php/Driver:Mac_68K

  • Por causa da precisão do emulador, provavelmente ele não terá alguns recursos decisivos que o BasiliskII possui. O BasiliskII oferece vários recursos por meio de patches no OS e na ROM, como suporte a resoluções altíssimas e integração (em geral) fluida com o sistema de arquivos e a rede do host. Mas justamente por isso ser meio improvisado ou impreciso, a experiência do usuário não tem aquela integridade característica; ainda assim, quando funciona direito, a usabilidade é realmente excelente

    • Se for um emulador preciso e com uma base de código limpa, parece fácil adicionar depois esse tipo de patch e funcionalidade. Quando olhei o código de patch do Basilisk, ele de fato não parecia tão complexo, e também há exemplos de reimplementações parciais do Toolbox, como o Executor (cujo autor aparece nesta thread) e o MACE. Para portar isso daria algum trabalho, mas parece suficiente trazer quase todo o código original e adicionar uma infraestrutura de testes
  • Preciso de conselho sobre como conseguir arquivos de ROM para Mac. Baixei vários de sites encontrados no Google, mas o emulador continua mostrando erro de "ROM desconhecida ou não suportada". Alguma dica de como achar uma ROM utilizável?

  • Trabalhos do começo da faculdade ainda estão armazenados em discos Bernoulli formatados para Mac. Para rodar o software correspondente, é obrigatório usar um dongle ADB, então talvez hardware físico seja indispensável. A dúvida é se existe algum adaptador ADB-USB que possa ser mapeado para conexão com o emulador

    • Os adaptadores ADB-USB que conheço até agora só suportam mouse e teclado; o firmware interno só consegue mapear para USB HID. Para fazer passthrough completo seria preciso firmware customizado, e talvez seja mais fácil hackear a proteção anticópia desse software

    • Se ainda não fez backup, há risco de perda de dados; se for importante, recomendam verificar isso o quanto antes

    • Na opinião de um comentário, quem tem um drive Bernoulli funcionando geralmente também acaba tendo o hardware Mac antigo correspondente

    • Talvez este produto ajude: https://www.bigmessowires.com/usb-wombat/

  • Destaca-se que este é um emulador 68K reimplementado em Rust, sem usar nenhum dos conhecidos códigos de CPU em C como Musashi ou UAE

  • Tentei inicializar usando um disco de instalação comum do Mac OS 7.1 e um arquivo de ROM do Mac Plus, mas a unidade 0 continua ejetando o disco. No Mini vMac funciona bem; parece que ainda precisa de melhorias

  • Achei estranho o suporte a HD20 aparecer como "não se aplica" em modelos como Mac SE ou II. Todos os modelos, exceto o II, têm suporte a boot por HD20 no nível da ROM. Eu mesmo uso um emulador de HD20 em um Mac SE, e considero isso uma ótima maneira de aplicar facilmente vários tipos de imagens de disco tanto no Mac quanto em emuladores de disquete

  • Fiquei curioso se, como no Lisa, o Mac também exige "cycle accuracy" no hardware. No caso do Lisa, o OS assume certos timings de hardware, o que não é atendido por emuladores como o Qemu

    • Os Macs iniciais usavam o IWM (um chip que consolidava o controlador Disk II) e, assim como no Apple II, utilizavam código sincronizado por ciclos. O fato de o movimento do cursor às vezes parar abruptamente ocorre porque o timer de interrupção de 60 Hz precisa ser desligado durante a gravação em disco. Andy Hertzfeld menciona esse episódio no Folklore.org: https://www.folklore.org/Nybbles.html Também surge a curiosidade se técnicas peculiares de proteção anticópia em disco vistas no Apple II, como trilhas em espiral, setores de tamanhos variados e diferentes formas de nibbilization, seriam teoricamente possíveis também no Mac e se isso chegou a ser usado na prática
  • Impressão pessoal de que a implementação é realmente muito convincente. Pergunta-se se há esperança de também emular o Atari ST

    • Já existe o projeto Hatari, um emulador de Atari ST de altíssimo nível: https://github.com/hatari/hatari E há também o Clock Signal (CLK), um emulador voltado para baixa latência que cobre desde Acorn, Amstrad, Apple II/II+/IIe, Atari ST e 2600 até vários outros sistemas clássicos: https://github.com/TomHarte/CLK