1 pontos por GN⁺ 2025-12-01 | 1 comentários | Compartilhar no WhatsApp
  • Mac mini G4 teve sucesso ao inicializar o System 7 e o Mac OS 8 de forma nativa, superando o limite anterior que só permitia até o Mac OS 9.2.2
  • A combinação de builds de Mac OS 7.6~8.0 baseadas em CHRP (Common Hardware Reference Platform), patches de System Enabler e da ferramenta de edição de ROM do Mac OS (tbxi) tornou possível a inicialização de sistemas antigos
  • O desenvolvedor Rairii (Wack0) analisou e integrou diversas versões de ROM para criar e divulgar no GitHub um ‘Super ROM’ contendo recursos antigos e novos
  • Nos testes, constatou-se inicialização estável de System 7.5~8.1, embora recursos como som, vídeo e rede ainda estejam incompletos
  • Esse feito expande a possibilidade de execução de sistemas Mac OS clássicos em PowerPC Macs com New World ROM, tendo grande importância para as comunidades de retrocomputação e preservação

Contexto da arquitetura CHRP e da inicialização do System 7

  • O Mac mini G4 não conseguia inicializar diretamente os sistemas da linha System 7 porque utiliza a estrutura New World ROM
    • A New World ROM depende de um arquivo Mac OS ROM em vez de uma ROM física
    • As versões anteriores ao System 7.6 não reconheciam essa estrutura e, por isso, não inicializavam
  • CHRP (Common Hardware Reference Platform) é uma arquitetura comum baseada em PowerPC, para a qual foram desenvolvidas builds internas de Mac OS 7.6~8.0 que não foram oficialmente lançadas
    • Em outubro de 2025, esses builds de Mac OS para CHRP foram preservados e tornaram-se públicos, abrindo espaço para novos experimentos
  • Ao modificar o System Enabler para CHRP e remover a limitação de versão do sistema operacional, tornou-se possível usar o arquivo Mac OS ROM também em versões antigas como o System 7.5.x

Processo de patch de ROM e concretização da inicialização

  • Rairii (Wack0) usou a ferramenta de patch de ROM do ELN (tbxi) para analisar e integrar várias versões de ROM
    • Produziu-se uma ROM integrada que restaura recursos antigos sem perder recursos de versões recentes
    • Isso permitiu inicializar até System 7.5~8.1
  • A ROM e o System Enabler patchado podem ser baixados no repositório do GitHub universal-tbxi-patchset
  • As versões de ROM compatíveis são três: 10.2.1, 2.5.1 e 1.7.1; no Mac mini G4, é necessário ROM 9.1 ou superior para suporte ao driver ATA-6

Resultados de inicialização no Mac mini G4

  • System 6.0.8~7.1.2: falha ao inicializar
  • System 7.5 / 7.5.3 / 7.6 / 8.1: inicialização e execução estáveis
    • Alguns painéis de controle (por exemplo, Mouse Control Panel) precisam ficar desativados
  • System 7.5.2: inicializa, mas é instável
  • Mac OS 8.5~9.1: falha ao inicializar, bloqueado pelo procedimento de verificação do ID do dispositivo
  • Mac OS 9.2~9.2.2: funcionamento totalmente normal
  • Alguns recursos (como som, rede e Apple System Profiler) ainda ficam instáveis

Como aplicar a ROM exclusiva do Mac mini G4

  • Com as ferramentas tbxi e tbxi-patches do ELN, aplica-se o patch específico para Mac mini G4 ao ROM do Rairii (versão 10.2.1) usando o script macmini.py
  • Foi verificado que funciona corretamente no ambiente Python 3.8.10
  • A ROM final com patch também funciona da mesma forma no Mac OS 9.2.2 e dá suporte à inicialização do System 7.5
  • A ROM original do Mac mini G4 (v9.6.1) fazia spoof do model ID para G4 Cube, e a nova ROM também mantém esse mesmo método

Valor de executar OSs antigos

  • Alguns softwares são exclusivos do Mac OS 9.0.4 ou anterior, ou de System 7, e não funcionam em sistemas modernos
  • System 7.5 é muito mais leve que o Mac OS 9, oferecendo desempenho extremamente rápido
  • Desenvolvedores e pesquisadores podem experimentar diretamente APIs e comportamento de sistemas antigos
  • Este projeto amplia o alcance de execução de OSes retro em PowerPC Macs e contribui para as atividades de preservação da comunidade

Encerramento e agradecimentos

  • Esse resultado foi viabilizado com a colaboração de membros da comunidade como Rairii, ELN e Mac84
  • O resultado final combina diversas contribuições, incluindo preservação de discos CHRP, desenvolvimento de ferramentas de ROM e compartilhamento de patches
  • No futuro, abre-se a possibilidade de usuários de Macs G3/G4 criarem suas próprias imagens de inicialização customizadas de System 7~8.5 para cada modelo

1 comentários

 
GN⁺ 2025-12-01
Opiniões no Hacker News
  • Tenho um pequeno negócio por hobby vendendo Mac mini G4 restaurados
    Faço uma limpeza completa por dentro, atualizo para SSD de 128 GB, expando a RAM para 1 GB e troco a bateria do relógio
    E também pré-instalo uma versão hackeada do Mac OS 9 feita pela comunidade Mac OS 9 Lives
    Dá para comprar no meu site os9.shop
    A maioria dos clientes são usuários de negócios reais que precisam rodar software legado — dentistas, clínicas veterinárias, museus, oficinas mecânicas e outros
    É surpreendente que, mesmo em 2025, ainda haja tanta gente usando software Classic Mac

    • Fico curioso se você precisou fazer algo especial para o SSD funcionar bem no OS9
      Coloquei um SSD num iMac G3 de 300 MHz há muito tempo, mas ele demorava para inicializar na partida e travava com frequência
    • Isso parece mais um projeto por curiosidade do que algo prático
      Se você roda o System 7 “nativamente” num Mac mini G4, faltam muitos drivers
      A maior parte do software roda melhor no OS 9.2.2, e em casos realmente excepcionais um emulador como o vMac já basta
    • É tão legal que com certeza vou colocar um na minha lista de pedidos
  • Eu também acho que o Mac OS 9.2.2 foi o melhor sistema operacional
    Antigamente, eu fazia protótipos rápidos no trabalho com HyperCard
    Funcionava bem no Cube e, em hardware mais recente, também com emulação de OS 9
    Os scriptwriters de HyperCard faziam coisas incríveis que a maioria dos usuários de hoje não faz — sem precisar de enormes datacenters

    • Na época em que Java estava surgindo como a linguagem da próxima geração, a KL Group/Sitraka fazia ferramentas de desenvolvimento em Java
      No fim de semana antes do lançamento, criei um assistente de configuração com Runtime Revolution baseado em HyperCard e levei o produto pronto na segunda-feira
      A empresa ficou irritada por causa da filosofia de “fazemos ferramentas Java em Java”, mas no fim aquela versão foi distribuída com sucesso
      Até hoje acho que fazer ferramentas simples com Electron e React é uma espécie de Turing Tarpit
      Link relacionado: LiveCode (company)
    • Naquela época, tudo era rápido e ágil. Não havia animações desnecessárias
    • HyperCard é uma das minhas lembranças favoritas do Mac OS
    • Pessoalmente, eu gosto do System 6 — ele tem a sensação completa do Mac OS clássico anterior ao System 7
      É simples e quase não tem abstrações desnecessárias
    • Você talvez também goste deste projeto: Decker
  • O script não funcionava com o Python 3.13.9 mais recente, então tentei de novo com o Python 3.8.10 e funcionou perfeitamente
    Hoje em dia o Python às vezes remove recursos antigos e quebra código existente
    Issue relacionada: tbxi issue #1

    • Isso é realmente frustrante. Se eu fosse refazer hoje, provavelmente escreveria em Go
    • Isso parece uma forma dura demais de colocar a questão
      O MacOS 9 perdeu suporte oficial depois de 2002, e remover essa funcionalidade da biblioteca padrão é razoável
      A maioria dos usuários nunca usaria isso
      Discussão relacionada: cpython issue #83534
  • No começo, li errado como “Mac mini M4” e tomei um susto

    • Mesmo assim, este projeto ainda passa uma impressão de algo impressionante demais
  • A série StarMax, especialmente o 4400, era o modelo mais próximo de CHRP
    Meu clone PowerCity tinha portas PS/2 e ISA, e também rodava BeOS muito bem
    Também tinha a característica curiosa de fazer som pelo alto-falante quando loops estavam rodando

    • A maioria dos sistemas StarMax era baseada no design Tanzania / LPX-40
      Eles suportavam drives de disquete estilo PC, e o PS/2 era convertido em dispositivo ADB pelo microcontrolador CudaLite
      Nunca vi uma versão com slots ISA, mas parece algo que poderia ser implementado com um chip bridge PCI-ISA
      Documento de referência: LPX-40 Dev Note
    • Sistemas MacOS baseados em CHRP tinham uma árvore de dispositivos estranha com periféricos de PC e Mac misturados
      A placa Motorola Yellowknife e os sistemas IBM Long Trail eram parecidos
      Ambos usavam a southbridge W83C553 e o controlador Super I/O PC87307
      Se você olhar os esquemas da NXP, dá para entender melhor a estrutura
  • Eu queria perguntar a quem quiser aprender a estrutura complexa dos Macs PowerPC — onde exatamente fica implementado o suporte de hardware para um modelo específico?

    • Fica dentro de camadas sobre camadas, como círculos concêntricos
  • Na verdade, isso não é “boot nativo” do System 7
    Todos os Macs PowerPC rodam o System 7 por meio de um emulador
    Ainda assim, a tentativa em si é impressionante

  • Eu uso um iMac G4 de 1,25 GHz
    Originalmente era o modelo de 1 GHz, mas depois troquei a placa
    Seria muito mais eficiente poder inicializar diretamente no OS 9 em vez de usar o modo clássico do OS X,
    mas os modelos de 1 a 1,25 GHz não têm suporte oficial para isso
    Sonho que um dia seja possível fazer dual boot

    • Na verdade, é possível inicializar no OS 9 nessa placa também
      Os alto-falantes internos não funcionam, mas a saída de fone funciona
  • Esse tipo de conteúdo é muito legal. É um ótimo tema para ver no Hacker News

  • É impressionante, mas a UX do macOS inicial era bem incômoda
    Isso porque a thread de UI cuidava de tudo
    Clicar e esperar era rotina

    • Mesmo assim, a interface em si parecia mais rápida do que a de um M1 Max Studio atual
      Havia poucas animações e a entrada não era bloqueada
      Os apps usados com frequência respondiam na hora, do jeito que a memória muscular esperava
    • O que mais ficou na minha memória foram as reinicializações frequentes por causa de travamentos de programas
      Bastava um ponteiro nulo para derrubar o sistema inteiro
    • Na verdade, a lentidão vinha mais da quantidade de RAM e da velocidade do HDD do que da UX
    • Concordo com a ideia de que “a thread de UI era tudo”, mas então fico pensando: que outra forma de implementar isso teria sido possível?