Tecnologia Avança
Esta página incluirá capturas de tela em desenvolvimento e outras coisas divertidas para MAME, M1 e tudo o mais que estou trabalhando. Em 16 de junho de 2026, eu precisei dos seus trajes, botas e motocicleta. Uma das razões pelas quais pouco progresso foi feito na emulação do Power Macintosh no MAME por um longo tempo é que é muito tedioso depurar. Há muita superfície de código, é escrita em três linguagens (PowerPC, 680×0 emulado e FORTH compilado), e não estou tão familiarizado com as entranhas das coisas mais novas, como o Gerenciador de Fragmentos de Código, quanto estou com o comportamento da base de código 680×0. Então, sendo 2026, perguntei ao Claude Code se ele poderia controlar e depurar o MAME. Ele respondeu “sim, com limitações” e, após algumas tentativas, se estabeleceu usando uma combinação de scripts de inicialização Lua personalizados e modificando o MAME para registrar o que está acontecendo em um arquivo.
Então, eu apontei para o Pippin e disse “Isso não inicializa e me deixa triste”. (Na verdade, o prompt real não era sobre meus sentimentos, mas sim informado por minhas tentativas anteriores de depurar sozinho). Em um curto período de tempo, ele encontrou que a comunicação com o Cuda 68HC05 estava falhando devido a um problema na emulação do VIA 6522 do MAME. Corrigir isso não nos levou muito mais longe, mas, após cerca de uma semana, ele havia encontrado meia dúzia de coisas erradas na emulação do PowerPC do MAME e várias outras coisas erradas no suporte do MAME para hardware Macintosh da era PCI. Então, o Pippin agora tocava seu som de inicialização (um pouco assustador) e mostrava o logotipo inicial “P!P P!N”, além de você poder mover o ponteiro do mouse pela tela como se fosse um Macintosh não muito secreto. O Vas notou um anti-padrão no DRC do PowerPC, onde os valores de quando o código foi gerado e armazenado em cache eram usados durante a execução, em vez do estado real da máquina (algo que é surpreendentemente fácil de cair quando se escreve um DRC). Eu não posso apontar para algo específico que tenha sido corrigido, mas é 100% uma melhoria de correção e provavelmente será silenciosamente útil no futuro.
Continuando a partir disso, eu queria adicionar suporte para um PowerMac com hardware próximo ao do Pippin para rastrear o resultado mais amplo da depuração. O Power Macintosh 7200 se encaixava bem nesse papel (e usa uma variante do vídeo DAFB familiar, usado nos Quadras). No início, parecia estar indo bem, graças a todos os consertos para o Pippin – ele tocava o sino e chegava à rotina de polling do disco de inicialização. Mas ele nunca inicializava o vídeo integrado. Eu disse ao Claude que era o que agora me deixava triste, e ele encontrou dois bugs na emulação do PowerPC 601. Com esses resolvidos, a tela principal agora se acende e mostra o familiar disquete de 3,5 polegadas da rotina de busca de inicialização. No entanto, o ponto de interrogação piscante que indica que um disco não foi encontrado não estava funcionando. Ainda assim, foi um grande progresso, e eu o coloquei de lado.
A próxima coisa que a máquina ouviu sobre o que me deixava triste foi que o Power Macintosh 6100 congelava ao tentar inicializar qualquer versão do Sistema mais nova do que a 7.5.0. O Claude rapidamente descobriu que a diferença era um Gerenciador de SCSI nativo do PowerPC versus o código emulado 680×0 nas versões anteriores do Sistema, e rastreou sua falha à emulação inadequada do MAME das instruções de carregamento e armazenamento atômicas do PowerPC. Essas são frequentemente usadas por manipuladores de interrupção para garantir operação segura, mesmo se outro dispositivo no sistema, como um segundo processador ou um controlador de DMA, tocou a memória e informou o processador sobre isso. Tínhamos um pedido de pull do gm-matthew, MVP do Sega Model 2, que abordava isso porque também quebrava algumas coisas nos jogos de arcade do Sega Model 3. Eu peguei as alterações e as apliquei, e o Sistema 7.5.3 e 7.5.5 inicializaram diretamente para o Finder e funcionaram felizmente (e mais eficientemente, graças ao driver de SCSI nativo do PowerPC). Enquanto testava a regressão das alterações, eu descobri que a mesma correção também fez com que o Pippin avançasse para sua animação mostrando que você precisa inserir um CD, e o PowerMac 7200 ganhou o ponto de interrogação piscante que faltava. Não foi ruim!
Depois disso, eu fiquei triste porque o famoso Calculadora Gráfica que veio com os Power Macs para mostrar algum do poder matemático aumentado dos novos processadores não funcionava no MAME. O Claude rapidamente apontou que nenhuma das opcodes FPU atualizava as flags de status, que não são frequentemente usadas em jogos de arcade altamente otimizados como o núcleo do PowerPC do MAME foi originalmente escrito para suportar. Mas elas são muito importantes para sistemas operacionais de computador e especificamente para a biblioteca de ponto flutuante SANE da Apple. Eu tenho uma correção em andamento que permite que a Calculadora Gráfica execute a porção 2D de sua autodemonstração corretamente agora, mas a porção 3D da demonstração não está funcionando. Então, alguma tristeza foi aliviada e, enquanto digito isso, mais coisas estão sendo trabalhadas. (ATUALIZAÇÃO: 3D funciona agora. Exceções de alinhamento no 601 não estavam funcionando corretamente, algo que eu esperaria ter um impacto maior do que posso provar