11 pontos por GN⁺ 2025-03-22 | 1 comentários | Compartilhar no WhatsApp
  • Emulador de Game Boy com emulação precisa de CPU/áudio, com precisão de ciclos
  • Usa wasm-pack para converter código Rust em WebAssembly → pode ser executado na web
  • Usa Web Audio API e HTML Canvas para processar áudio e gráficos
  • Usa armazenamento local → permite manter os dados de RAM de cartuchos MBC com suporte a bateria

Principais recursos

  • Emulação precisa de CPU → passa nos testes de CPU em JSON
  • Emulação precisa de áudio
  • Emulação gráfica → usa renderizador baseado em scanlines
  • Suporte a MBC1, MBC3, MBC5 e HuC1 → compatível com vários cartuchos
  • Suporte a RTC (Real Time Clock) → permite rodar jogos baseados em tempo em cartuchos MBC3
  • Suporte a códigos de trapaça do GameShark e GameGenie
  • Cartuchos com backup por bateria podem salvar dados de RAM no armazenamento local
  • Front-end web
    • React/TypeScript + Material UI
    • Suporte a modo de tela cheia
    • Pausar e retomar o jogo
    • Permite escolher entre modo monocromático e colorido
    • Suporte a mapeamento de teclas personalizado
    • Permite ativar e gerenciar códigos de trapaça
    • Design responsivo amigável para dispositivos móveis

1 comentários

 
GN⁺ 2025-03-22
Comentários do Hacker News
  • Este projeto é realmente muito legal. Há alguns problemas na emulação de áudio, mas me fez pensar de novo em emulação de Game Boy depois de muito tempo. Rust e WASM estão tendo um papel enorme em mostrar aplicativos que antes ficavam limitados ao ambiente de desktop

    • Implementei um emulador de NES de forma parecida usando wasm-bindgen
    • É muito legal fazer homebrew, compartilhar o link e ele já funcionar direto no navegador
  • Recentemente comprei um portátil de jogos retrô no Aliexpress por £50. Ele roda de Game Boy até SNES e PlayStation 1, e consegue até um pouco de N64 e Dreamcast

    • Há várias opções, e a qualidade pode ficar abaixo do esperado, mas para viagens, quando não dá para comprar um Steam Deck, fiquei bem satisfeito
    • Dá para instalar vários firmwares personalizados e apps
    • Vale tomar cuidado com problemas de carregamento por USB C, e recomendo comprar um carregador pequeno e fraco
  • Lista de links e documentos de suporte para quem tem interesse em desenvolvimento para Game Boy

    • Gameboy Dev: link
    • PanDocs (referência técnica): link
    • Documento de referência técnica do Gameboy (gekkio): link
    • Reboot do Game Boy Development Kit 2020 (GBDK-2020): link
    • GBDK-2020 Github: link
    • Exemplos do GBDK-2020: link
    • Showcase do GBDK (software homebrew): link
    • Homebrew Hub: link
    • Imagem de capa do álbum de Neil Young (Silver & Gold) feita com uma câmera do Gameboy: link
  • GB/GBC/GBA estão para software de células em grade como o VT102 está para isso. A demoscene continua evoluindo, e o chiptune ainda ama o hardware

    • Escrever software para GBA é parecido com mirar em um microcontrolador ARM moderno e pequeno
    • Há vários emuladores, cada um focado em aspectos diferentes
    • Eles oferecem recursos variados, como emulação perfeita, otimização de desempenho, inspeção de memória e códigos de trapaça
  • Como autor original do emulador, fiquei surpreso com o quanto este pequeno projeto de hobby recebeu atenção. Obrigado pelo apoio

  • Ainda me lembro de aprender a descompactar o no$gbemulator aos 7 anos para jogar Kirby e Final Fantasy Adventure no notebook Windows 95 do meu pai

  • É muito bom ver mais emuladores de Game Boy escritos em Rust. Projetos com suporte a navegador são especialmente legais

    • Estou desenvolvendo uma plataforma de jogos retrô baseada em navegador chamada afterplay.io
    • Ela oferece suporte a vários sistemas, roda totalmente no navegador e traz save states, sincronização em nuvem e suporte mobile via Capacitor
    • Também tem recursos divertidos como netplay, suporte a cabo link, manipulação de RTC e controles de toque personalizáveis
  • Foi a primeira vez que encontrei um site que pode ser adicionado como app no Android. Como isso se chama, e quero saber como transformar uma aplicação web em um app instalável

  • Desenvolvi um emulador de GB parecido em Rust

    • Biblioteca: link
    • Backend web/wasm: link
  • Isso me lembrou de um projeto parecido que um amigo fez 10 anos atrás: link