- O Dolphin, que começou em 2003 como um emulador de GameCube, expande-se para uma nova área de plataformas ao adicionar suporte ao sistema de arcade Triforce em 2026
- A otimização MMU Fastmem acelera o acesso à memória baseado em tabela de páginas e, em especial, permite que Rogue Squadron III rode em velocidade total pela primeira vez
- O bug de sincronização online de Mario Strikers Charged foi corrigido após 5 anos, fazendo com que o jogo em rede com um Wii real funcione corretamente
- Na emulação do Triforce, está em andamento a restauração do protocolo de touchscreen e das funções de cartão IC de The Key of Avalon, e melhorias relacionadas a F-Zero AX e Virtua Striker 4 também estão previstas
- Foram adicionados vários recursos que melhoram a experiência do usuário e o desempenho, como armazenar o jogo em cache na RAM, configuração de dicas de controle SDL e ajuste do timing do menu do Wii
Adição de suporte ao Triforce
- O Dolphin agora oferece suporte oficial ao Triforce, sistema de arcade conjunto da Sega, Namco e Nintendo
- Inclui melhorias iniciais como inserção automática de Magnetic Card, configuração de região e correções de bugs na emulação de múltiplos cabinets
- Foi confirmado que o protocolo de touchscreen de The Key of Avalon é semelhante ao Elo SmartSet; o jogo chegou a iniciar, mas parou devido a um problema na inicialização do cartão IC
- Com a restauração das funções do cartão IC, os modos de montagem de time e criação de personagens em Virtua Striker 4, Gekitou Pro Yakyuu e outros devem voltar a funcionar
MMU Fastmem e otimização de Rogue Squadron
- Com a implementação do mapeamento Fastmem por tabela de páginas, o desempenho de Rogue Squadron II e III melhorou em até duas vezes
- As alterações na tabela de páginas são refletidas em tempo real por meio do rastreamento da instrução
tlbie
- A desativação de Branch Following, a otimização da invalidação de código e a ativação de CPU Vertex Culling reduziram quedas de frames e stuttering
- Rogue Squadron III agora pode rodar em velocidade total pela primeira vez em hardware de alto desempenho
Correção do bug de Mario Strikers Charged
- Foi identificado que a causa do erro de sincronização de física entre o Dolphin e um Wii real era a imprecisão nos cálculos de ponto flutuante da instrução
fmadds
- O problema foi resolvido com uma correção precisa de arredondamento usando o algoritmo
2Sum, deixando as partidas online totalmente sincronizadas
- Essa correção evoluiu a partir da experiência de resolver um problema semelhante em Inazuma Eleven GO: Strikers 2013
Outras melhorias importantes
- O timing do gerenciamento de dados do menu do Wii foi ajustado para ficar mais próximo do hardware real, reduzindo a carga excessiva de CPU durante acessos à NAND
- Foi adicionada a função Load Whole Game into Memory, eliminando a latência de espera de disco ao executar jogos a partir de armazenamento em rede, como NAS
- A introdução de configurações de dicas SDL na GUI melhorou a compatibilidade com controles, incluindo separação de Joy-Con e problemas de hotplug do DualSense
- Alguns jogos, como Need for Speed: Hot Pursuit 2 e Rabbids Go Home, receberam patches de sincronização VBI para normalizar o limite de frames
Desempenho e contribuições da comunidade
- Nesta versão, foram mesclados 465 commits, refletindo vários testes da comunidade e pesquisas de hardware
- Foram incluídos casos de resolução de problemas de longa data envolvendo a série Rogue Squadron, Mario Strikers Charged e Triforce, melhorando significativamente a precisão e o desempenho do Dolphin
1 comentários
Comentários do Hacker News
É impressionante que o Dolphin consiga se conectar online com consoles Wii reais, substituindo os servidores oficiais que foram encerrados há muito tempo
Fico realmente feliz em saber que existem pessoas com esse nível de dedicação apaixonada
Mas, no curto prazo, esse tipo de avanço tecnológico também pode aprofundar ainda mais a desigualdade
Se, por causa de bugs no emulador, um jogo não puder ser executado total ou parcialmente, as gerações futuras perdem a chance de vivenciá-lo
É muito legal ver gente se importando tanto assim
O que acho mais interessante é que o desenvolvimento de emuladores frequentemente revela que os jogos originais já tinham comportamentos estranhos, mas intencionais
Fiquei surpreso ao descobrir que o GCC de meados dos anos 90 já fazia automaticamente coisas que eu tentei otimizar manualmente no começo dos anos 2000
O emulador não estava salvando a SRAM, o que causava inconsistências nos saves, mas isso foi corrigido rapidamente
Como o código era um C simples baseado em Plan9, foi fácil corrigir
Eu sempre gosto de ler os relatórios de desenvolvimento do Dolphin
Eles explicam bem os assuntos técnicos de um jeito fácil de entender
Sobre os relatórios do Dolphin, um dos autores publicou um texto interessante sobre os problemas da comunidade de emuladores open source
Rethinking Open Source
Em resumo, se você lança como open source um projeto cercado de hype antes de formar uma base comunitária e uma identidade bem definidas, podem surgir problemas por causa de usuários com exigências irreais
Também acontece de outras pessoas pegarem branches inacabadas e distribuírem como se fossem criações próprias
A equipe do Dolphin vem tocando o projeto com um alto nível de profissionalismo apesar dessas dificuldades
Isso já seria difícil mesmo sendo remunerado, então imagino que seja ainda pior em um projeto gratuito
Os forks antigos não eram muito completos
É legal ver como o autor está sinceramente empolgado com aquilo que escreveu
Quando relatei um bug de netplay do Melee no passado, ele me pareceu alguém profundamente curioso e disposto a investigar tudo a fundo
O Dolphin é realmente um exemplo de desenvolvimento inteligente
Antigamente, meu computador velho precisava usar os 4 núcleos para rodar Metroid Prime, mas alguns anos depois o mesmo jogo usava apenas 25% de um núcleo
Graças ao JIT e à eficiência da emulação, o desempenho melhorou absurdamente
Esse tipo de otimização foi uma conquista impressionante
Durante a discussão sobre compatibilidade com os arcades Triforce, mencionaram o “suporte a cartões IC”, e disseram que, se isso for implementado, muitas funções poderão ser desbloqueadas
Parece um cartão de transporte japonês, mas nas placas Triforce ele é usado para armazenar dados de progresso do jogo
É um recurso interessante que nunca vi em arcades nos EUA
O magcard é barato, mas menos durável, e pode ser impresso
O cartão IC é mais espesso e resistente, mas não pode ser impresso
Fonte com fotos e explicação: Rise of the Triforce
Quase todos os jogos Triforce usam cartões para salvar progresso
Provavelmente você já viu alguma versão de Mario Kart Arcade GP nos EUA
É um conceito parecido com os cartões AIME usados em maimai, chunithm, DDR etc.
Mas, no caso do cartão IC do Triforce, ele não serve só para autenticação, como também para armazenamento de dados
Achei interessante o caso em que a instrução de CPU fnmsubs estava implementada incorretamente no JIT, mas funcionava corretamente no interpretador
Parece uma ótima oportunidade para aplicar differential fuzzing
O ponto principal deste texto é que o Dolphin restaurou o suporte aos gabinetes de arcade Triforce
O Triforce era um hardware desenvolvido em conjunto por Nintendo, Sega e Namco, e o Dolphin havia abandonado o suporte em 2016
Agora jogos como F-Zero AX e Mario Kart Arcade GP 1·2 voltaram a funcionar
Mais detalhes: The Return of the Triforce
Link para a discussão anterior
O primeiro parágrafo do artigo já tratava disso, então é difícil chamar de “assunto enterrado”
Fiquei curioso se eles aceitam doações, mas não encontrei isso no site oficial
Post no fórum relacionado: Dolphin Donations