O iCube roda GameCube e Wii sem JIT em iPhone e iPad com um avanço de desempenho que chamou atenção na emulação para dispositivos Apple. Em 19 de setembro de 2026, o desenvolvedor do projeto demonstrou jogos alcançando até 60 FPS no modo JIT-less e afirmou obter esse desempenho em vários títulos mesmo com resolução interna elevada para 2×.
A novidade ganhou ainda mais relevância porque não ficou restrita a uma demonstração privada. O iCube mantém uma página pública de TestFlight, oferece builds para sideload e continua recebendo versões experimentais pelo GitHub. Além disso, usuários começaram a publicar resultados próprios com a nova implementação.
Um relato publicado em 25 de setembro no r/EmulationOniOS, por exemplo, registra Need for Speed: Most Wanted a 60 FPS e resolução interna 4× em um iPhone 17 Pro sem JIT. Esse número representa somente aquela combinação de aparelho, jogo e configurações; portanto, não deve ser tratado como desempenho garantido em todos os dispositivos.
O iCube possui interface própria para iPhone e pode executar seu Cached Interpreter sem depender de JIT. Esta captura oficial demonstra a interface de emulação e não representa um benchmark dos jogos citados na matéria. Imagem: iCube/Provenance.
iCube chega a 60 FPS sem JIT em jogos de GameCube e Wii
O salto ganhou exposição pública depois que a equipe do Provenance apresentou a nova implementação em 19 de setembro.
A demonstração mostrou títulos como Super Smash Bros. Melee, The Legend of Zelda: The Wind Waker e F-Zero GX. Segundo a declaração do desenvolvedor reproduzida pelo Nintendo Wire, o iCube passou a executar GameCube e Wii sem JIT a 60 FPS em muitos jogos, inclusive com upscaling de 2× em vários casos.
Esse resultado não significa que todo o catálogo de GameCube e Wii agora funcione a 60 FPS.
Alguns jogos possuem taxa original de 30 FPS. Outros exigem muito mais processamento, enquanto determinados recursos do Wii continuam particularmente pesados para o modo sem recompilação dinâmica.
Além disso, o próprio guia do iCube reconhece que títulos exigentes podem continuar abaixo da velocidade nativa usando somente o interpretador.
Portanto, a afirmação correta é que o novo caminho JIT-less já consegue atingir velocidade completa em uma quantidade significativa de software, inclusive chegando a 60 FPS em casos demonstrados.
Usuário registra Need for Speed: Most Wanted a 60 FPS em 4× no iPhone 17 Pro
Os testes da comunidade começaram a fornecer exemplos fora da demonstração do desenvolvedor.
Em uma discussão recente no r/EmulationOniOS, um usuário afirmou ter testado Need for Speed: Most Wanted no iPhone 17 Pro.
Segundo o relato, o jogo atingiu 60 FPS com resolução interna configurada em 4×, sem JIT.
Esse resultado é especialmente interessante porque aumenta consideravelmente a carga gráfica em relação à resolução nativa do GameCube.
Entretanto, trata-se de um teste de usuário. Não existe, nessa publicação, uma metodologia controlada com frametimes, consumo de energia, temperatura, duração da sessão ou comparação entre diferentes aparelhos.
Por isso, o resultado serve como evidência complementar de que o novo modo JIT-less pode entregar desempenho alto em hardware recente, mas não substitui benchmarks reproduzíveis.
Por que rodar GameCube sem JIT no iPhone é tão difícil?
GameCube e Wii utilizam código de máquina PowerPC. Já os iPhones e iPads atuais utilizam processadores ARM.
O emulador precisa traduzir as instruções do console antes que o dispositivo Apple consiga executá-las.
Um recompilador JIT normalmente traduz blocos inteiros de código PowerPC para instruções ARM e guarda o resultado para reutilização. Essa abordagem reduz bastante o custo de CPU.
Por outro lado, o interpretador precisa analisar e executar as instruções convidadas de outra maneira, com um custo maior.
O problema no iOS está justamente na memória executável. O sistema impõe restrições rígidas a aplicativos que escrevem código em memória e depois tentam executá-lo.
Consequentemente, emuladores distribuídos pelo caminho normal da App Store não podem simplesmente utilizar o mesmo JIT disponível no Dolphin para outras plataformas.
O iCube ataca esse problema por dois caminhos diferentes.
TestFlight usa JIT-less, enquanto sideload pode ativar JIT
A distinção entre essas duas formas de execução é essencial.
| Característica | TestFlight / JIT-less | Sideload + JIT |
|---|---|---|
| Execução da CPU | Cached Interpreter | Recompilador JIT |
| Debugger | Não precisa | Necessário na ativação |
| StikDebug | Não | Pode ser usado |
| Desempenho | Varia conforme jogo e hardware | Várias vezes mais rápido em CPU, segundo o projeto |
A versão TestFlight não possui JIT. A documentação oficial afirma que essa compilação sempre utiliza o Cached Interpreter.
O mesmo se aplicaria a uma versão distribuída pela App Store nas condições atuais, já que a Apple não permite o entitlement necessário para o debugger nesse modelo de distribuição.
Já as builds instaladas por sideload podem utilizar o JIT quando o usuário fornece o ambiente necessário.
Assim, os 60 FPS demonstrados no modo JIT-less são interessantes justamente porque não dependem desse processo adicional.
Cached Interpreter recebeu otimizações específicas para hardware Apple
O site oficial afirma que a equipe dedicou bastante trabalho ao caminho sem JIT.
O iCube não depende apenas do código do Dolphin em sua forma padrão. O projeto acrescenta otimizações voltadas às plataformas Apple e mantém uma interface própria para iPhone, iPad e Apple TV.
Entre os recursos documentados está o Auto VBI Skip.
Esse modo pula automaticamente determinados intervalos verticais para melhorar o frame pacing e elevar a taxa de quadros em alguns jogos.
Além disso, o projeto mantém uma biblioteca com mais de mil shaders Metal nativos voltados a desempenho e qualidade visual nas GPUs da Apple.
Essas otimizações não transformam o interpretador em JIT. Porém, elas ajudam a reduzir parte do custo que tradicionalmente tornava a execução sem recompilação dinâmica pouco prática para consoles dessa geração.
A interface do iCube foi construída especificamente para dispositivos Apple e organiza jogos de GameCube, Wii e WiiWare em uma biblioteca própria. Imagem oficial: iCube/Provenance.
iCube também recuperou o JIT no iOS 26
Paralelamente ao avanço JIT-less, a equipe resolveu outro problema importante.
O iOS 26 introduziu o Trusted Execution Monitor, ou TXM. Com essa proteção, métodos antigos de ativação de JIT deixaram de funcionar da mesma maneira.
Segundo a documentação do iCube, o aplicativo ainda conseguia reservar memória executável, mas o sistema encerrava o processo quando ele tentava executar código recém-escrito.
A equipe encontrou um caminho através do próprio mecanismo de depuração.
Quando o StikDebug ou outro debugger compatível está conectado, o iCube pede que ele toque cada página da região destinada ao código JIT.
O projeto reserva aproximadamente 288 MB para essa área.
Depois que o debugger autoriza as páginas, ele pode se desconectar. A região permanece utilizável enquanto aquela instância do aplicativo continuar aberta.
Ao fechar completamente o iCube e iniciá-lo novamente, o usuário precisa repetir a autorização.
StikDebug permite ativar o recompilador sem computador a cada sessão
Para iPhone e iPad, o projeto recomenda o StikDebug.
O processo começa dentro das configurações do próprio iCube. Quando o aplicativo detecta o StikDebug, ele pode apresentar a opção para ativar JIT.
Depois disso, o debugger anexa ao processo, autoriza a região necessária e relança o iCube.
O usuário então inicia o jogo normalmente.
A documentação também mostra indicadores para confirmar o funcionamento, incluindo o estado do JIT, do debugger e da região TXM.
Quando tudo funciona corretamente, a região aparece como autorizada mesmo depois que o debugger se desconecta.
Por outro lado, se a autorização falhar, o iCube não precisa travar. Ele pode voltar automaticamente ao Cached Interpreter.
O iCube possui áreas próprias para Performance Tuning, gráficos e depuração. O JIT nas builds sideloaded utiliza ferramentas de debug, enquanto o TestFlight permanece JIT-less. Imagem oficial: iCube/Provenance.
TestFlight público permite testar o avanço sem ativar JIT
O projeto mantém uma página pública para a beta do TestFlight.
Além disso, a discussão atual no r/EmulationOniOS mostra usuários tentando entrar na beta e pelo menos um participante confirmou ter conseguido uma vaga durante o período acompanhado.
A disponibilidade de slots pode mudar, já que o TestFlight possui limites e a equipe pode alterar o número de testadores.
Mesmo assim, o ponto técnico permanece: a versão TestFlight permite experimentar o novo caminho sem JIT.
O usuário não precisa configurar StikDebug para esse modo, porque a build simplesmente não utiliza o recompilador.
Isso torna o TestFlight uma forma especialmente interessante de avaliar até onde o Cached Interpreter consegue chegar em cada aparelho.
Builds Alpha também estão disponíveis pelo GitHub
Quem prefere sideload também pode utilizar as builds publicadas pelo projeto.
A página oficial oferece versões estáveis e acesso à linha Alpha/CI no GitHub.
Essas versões de desenvolvimento podem incluir mudanças mais recentes, mas também carregam maior risco de regressões e bugs.
O repositório continuou recebendo atividade depois da demonstração de 19 de setembro. Uma das builds Alpha publicadas em 22 de setembro já inclui novos trabalhos relacionados a medição e otimização do caminho JIT-less.
Portanto, os resultados ainda podem mudar rapidamente de uma compilação para outra.
Apple TV também utiliza o caminho sem JIT
O iCube também possui suporte ao tvOS.
Entretanto, o método com StikDebug não está disponível no Apple TV. Segundo o guia oficial, o sistema não possui o mesmo caminho de debugger local utilizado no iPhone e no iPad.
Assim, o Apple TV executa o Cached Interpreter.
Isso torna as melhorias do modo JIT-less especialmente importantes nessa plataforma, porque elas beneficiam diretamente um ambiente no qual o recompilador não representa a rota normal de utilização.
iCube ainda não está disponível na App Store
O avanço sem JIT pode gerar uma dúvida natural: se o emulador funciona sem recompilação dinâmica, ele já pode ser baixado normalmente pela App Store?
A resposta atual é não.
O próprio site oficial informa que o iCube não está disponível na App Store.
Atualmente, os caminhos oferecidos incluem TestFlight, SideStore, AltStore, builds do GitHub e outras formas de sideload.
A execução sem JIT remove uma barreira técnica importante para uma distribuição convencional. Entretanto, isso não equivale a uma aprovação da Apple ou a uma confirmação de lançamento na loja.
Uma eventual versão da App Store ainda depende do processo de distribuição, revisão e decisões da própria equipe.
JIT não funcionaria em uma eventual versão da App Store
Mesmo que o iCube chegue à loja, a documentação atual deixa clara uma limitação.
As builds distribuídas pela App Store não podem utilizar o caminho de JIT que depende do debugger e dos entitlements associados.
O TestFlight segue a mesma regra porque faz parte da infraestrutura de distribuição da App Store.
Portanto, o desempenho sem JIT não é apenas uma curiosidade.
Ele representa justamente o caminho necessário para que GameCube e Wii continuem executáveis em uma build que não pode contar com recompilação dinâmica.
iCube não é um novo emulador escrito do zero
A arquitetura do projeto também merece esclarecimento.
O iCube é baseado no Dolphin, o emulador de GameCube e Wii utilizado há anos em Windows, Linux, macOS e Android.
O repositório do projeto deriva do ecossistema DolphiniOS, que adaptou o Dolphin para dispositivos móveis da Apple.
A equipe do Provenance mantém essa base e acrescenta seu próprio trabalho para iOS, iPadOS e tvOS.
Entre as diferenças estão a interface SwiftUI, otimizações de desempenho, shaders Metal, sistemas de controles, gerenciamento de biblioteca e adaptações específicas às limitações de execução da Apple.
Assim, o mérito técnico do projeto está na adaptação e otimização do núcleo Dolphin para essas plataformas, e não na criação de um emulador completamente independente.
Quais aparelhos são recomendados?
O site oficial destaca que aparelhos mais recentes oferecem uma margem consideravelmente maior no modo JIT-less.
A documentação recomenda hardware como iPhone 16 ou posterior para uma experiência mais favorável sem JIT.
O guia de desempenho também observa que um iPhone 15 Pro ou mais recente possui mais folga que aparelhos antigos.
No entanto, isso não cria uma linha rígida de compatibilidade jogo a jogo.
Um título leve pode funcionar bem em hardware mais antigo, enquanto outro pode continuar exigindo JIT até mesmo em um aparelho recente.
Além disso, resolução interna, anti-aliasing, temperatura do dispositivo e recursos gráficos influenciam bastante os resultados.
60 FPS sem JIT não significa que o JIT deixou de ser útil
O próprio projeto faz essa distinção.
A equipe descreve o recompilador como várias vezes mais rápido que o interpretador no trabalho de CPU.
Por isso, jogos exigentes — especialmente alguns títulos de Wii — ainda podem precisar do JIT para alcançar velocidade completa.
O avanço recente não torna as duas rotas equivalentes.
Em vez disso, ele eleva bastante o piso de desempenho do modo que funciona sem debugger.
Isso significa que jogos antes pouco práticos no Cached Interpreter podem se tornar jogáveis, enquanto o JIT continua oferecendo mais margem quando o usuário aceita realizar o sideload e a ativação necessária.
Por que esse avanço é importante para a emulação no iOS?
Durante anos, a discussão sobre GameCube e Wii no iPhone esteve diretamente ligada à disponibilidade de JIT.
Os processadores da Apple possuem bastante desempenho bruto, mas as restrições de memória executável impediam que uma build convencional utilizasse livremente a mesma estratégia do Dolphin em outras plataformas.
O iCube não eliminou essas restrições.
Em vez disso, a equipe melhorou o caminho que funciona dentro delas.
A demonstração do desenvolvedor, os testes atuais da comunidade e a disponibilidade pelo TestFlight mostram que o Cached Interpreter já alcança resultados que anteriormente pareciam pouco realistas para esse tipo de emulação no iOS.
Ao mesmo tempo, o projeto conseguiu recuperar o JIT no iOS 26 através do Trusted Execution Monitor para usuários que preferem a rota sideloaded.
Portanto, o iCube agora possui duas estratégias complementares: um caminho JIT-less muito mais rápido para utilização simples e um recompilador JIT para quem busca o máximo desempenho e aceita configurar o debugger.
Os próximos testes precisarão mostrar até onde o modo sem JIT consegue manter velocidade completa em jogos pesados, quais aparelhos oferecem resultados consistentes e quanto o aumento de resolução afeta consumo, temperatura e autonomia.
Fontes: iCube — site oficial, downloads e recursos | iCube — documentação oficial sobre JIT e desempenho | iCube — código-fonte no GitHub | Nintendo Wire — demonstração JIT-less publicada em setembro | r/EmulationOniOS — testes e discussão atuais da comunidade.