O que é um Mario 64 Browser e como ele funciona
O mario 64 browser é basicamente uma versão do Super Mario 64 rodando diretamente no navegador, sem precisar instalar nada. Isso funciona através de tecnologia chamada WebAssembly, que permite que código compilado de C e C++ rode no navegador com performance próxima do nativo. O projeto mais famoso é o projeto SM64js, que converteu o código original do jogo para WebAssembly. Quando você acessa uma dessas páginas, o navegador faz download de um arquivo .wasm que contém o core do emulador, carrega os dados do jogo (que na maioria dos casos vêm de um dump ROM legítimo ou são embutidos), e processa tudo via CPU do seu dispositivo. O áudio é gerado via WebAudio API. Os inputs são mapeados para teclado e, em alguns casos, touch.
mario 64 browser
Se você está procurando rodar o jogo agora, a forma mais direta é acessar sites como o sm64.mariokart64.org ou projetos similares no GitHub Pages. Basta abrir a URL, esperar o carregamento do WebAssembly (leva cerca de 5-10 segundos em conexão boa), e clicar para iniciar. O controle é por teclado: setas para mover, Z para crouch, A para pular, e os botões C para câmera. Tem alguns sites que oferecem controle por touch também, mas a experiência é bem inferior. Eu montei minha própria instância local desses emuladores porque queria controlar exatamente quais arquivos .wasm estavam sendo carregados e evitar a possibilidade de algum site injetar algo malicioso no código. O processo de deixar rodando no meu servidor caseiro foi mais ou menos 20 minutos: baixar o repositório do SM64js, fazer build do WebAssembly com Emscripten (dependendo da máquina, leva de 10 a 30 minutos), e servir via um servidor HTTP simples como o nginx ou até mesmo o Python http.server se for só para testar localmente.
👉 Clique no botão abaixo para saber mais sobre o assunto!
O problema que eu encontrei na prática foi com o mapeamento de áudio. Em alguns navegadores, especialmente Firefox mais antigo, o WebAudio API tinha um delay de cerca de 200ms entre o input e o som, o que tornava o jogo praticamente injogável em momentos que exigiam timing preciso, como wall kicks e backflips. A solução foi migrar para o Chromium/Chrome, onde o pipeline de áudio tem latência significativamente menor. Isso não é um problema do emulador em si — é uma limitação da forma como cada navegador implementa o WebAudio. Outro detalhe que pouca gente menciona: o mario 64 browser depende de ter uma ROM válida do jogo se o projeto não vier com os assets embutidos. Projetos mais recentes embutem tudo, mas versões antigas do SM64js exigiam que você fornecesse o arquivo .z64. Legalmente, você precisa ter uma cópia legítima do jogo para fazer o dump. Sites que oferecem o jogo pronto para rodar sem ROM são uma área cinzenta, e muitos foram derrubados por de remoção da Nintendo.
Limitações que ninguém conta
Performance varia muito dependendo do dispositivo. Em um desktop com CPU moderna, roda liso em 60fps. Em um tablet mais velho ou celular de entrada, você pode cair para 30fps ou menos, especialmente em áreas com muitos atores na tela como o Bowser's in the Dark. O navegador também tende a consumir mais memória RAM do que um emulador desktop dedicado — eu vi instâncias do Chrome usando cerca de 400-600MB só pra rodar o jogo, o que em dispositivos com 2GB de RAM total pode causar stutters. A compatibilidade com saves também é diferente. Emuladores desktop como o Mupen64Plus permitem saves em qualquer momento. Versões browser geralmente usam localStorage para persistir saves, o que significa que se você limpar os dados do navegador, perde tudo. Alguns projetos oferecem exportação/importação de saves via arquivo, mas isso é funcionalidade opcional, não padrão.
Se o objetivo é realmente jogar Super Mario 64 com estabilidade e controle completo, um emulador desktop como o Project 64 ou ParaLLEl RSP com VNC para streaming ainda oferece muito mais controle. O browser é prático para testar rapidamente ou jogar em dispositivos onde você não pode instalar software, mas não substitui a experiência completa. Acesse o repositório oficial do SM64js no GitHub se quiser construir sua própria versão ou contribuir com o projeto. É um exemplo interessante de como emulação de consoles antigos evoluiu para web, mas tenha expectativas realistas sobre o que funciona bem e o que é apenas curiosidade técnica.