11 puntos por GN⁺ 2025-03-22 | 1 comentarios | Compartir por WhatsApp
  • Emulador de Game Boy con emulación precisa de CPU y audio, con precisión por ciclo
  • Usa wasm-pack para convertir código Rust a WebAssembly → se puede ejecutar en la web
  • Usa Web Audio API y HTML Canvas para procesar audio y gráficos
  • Usa almacenamiento local → permite conservar los datos de RAM de cartuchos MBC con batería

Características principales

  • Emulación precisa de CPU → supera las pruebas JSON de CPU
  • Emulación precisa de audio
  • Emulación gráfica → usa un renderizador basado en scanlines
  • Soporta MBC1, MBC3, MBC5 y HuC1 → compatible con varios cartuchos
  • Soporte de RTC (Real Time Clock) → permite ejecutar juegos basados en tiempo en cartuchos MBC3
  • Soporte para códigos de trucos GameShark y GameGenie
  • Los cartuchos con respaldo por batería pueden guardar datos RAM en el almacenamiento local
  • Frontend web
    • React/TypeScript + Material UI
    • Soporte para modo de pantalla completa
    • Pausar y reanudar el juego
    • Permite elegir entre modo monocromático y color
    • Soporte para mapeo de teclas personalizado
    • Permite activar y administrar códigos de trucos
    • Diseño responsivo, amigable para móviles

1 comentarios

 
GN⁺ 2025-03-22
Opiniones en Hacker News
  • Este proyecto está realmente genial. Hay algunos problemas con la emulación de audio, pero me hizo pensar de nuevo en la emulación de Game Boy después de mucho tiempo. Rust y WASM están jugando un papel importante para mostrar aplicaciones que antes estaban limitadas a entornos de escritorio

    • Implementé un emulador de NES de forma similar usando wasm-bindgen
    • Es realmente genial hacer homebrew, compartir el enlace y que funcione de inmediato en el navegador
  • Hace poco compré una consola portátil de juegos retro en Aliexpress por £50. Puede correr desde Game Boy hasta SNES y PlayStation 1, y también un poco de N64 y Dreamcast

    • Hay varias opciones, y la calidad puede no estar a la altura de las expectativas, pero me tiene muy satisfecho para viajes cuando no puedo comprar un Steam Deck
    • Se le pueden instalar varios firmware personalizados y apps
    • Hay que tener cuidado con los problemas de carga por USB C, y recomiendo comprar un cargador pequeño y de baja potencia
  • Lista de enlaces y documentos de apoyo para quienes estén interesados en el desarrollo para Game Boy

    • Gameboy Dev: enlace
    • PanDocs (referencia técnica): enlace
    • Documento de referencia técnica de Gameboy (gekkio): enlace
    • Reinicio de Game Boy Development Kit 2020 (GBDK-2020): enlace
    • GBDK-2020 Github: enlace
    • Ejemplos de GBDK-2020: enlace
    • Showcase de GBDK (software homebrew): enlace
    • Homebrew Hub: enlace
    • Imagen de portada del álbum de Neil Young (Silver & Gold) hecha con una Gameboy Camera: enlace
  • GB/GBC/GBA son para el software basado en celdas de cuadrícula lo que VT102 es para eso mismo. La demoscene sigue avanzando, y el chiptune sigue amando este hardware

    • Escribir software para GBA es parecido a apuntar a un pequeño microcontrolador ARM moderno
    • Hay varios emuladores, y cada uno se enfoca en aspectos distintos
    • Ofrecen varias funciones, como emulación perfecta, optimización de rendimiento, inspección de memoria y códigos de trucos
  • Como autor original del emulador, me sorprendió que este pequeño proyecto de hobby recibiera tanta atención. Gracias por el apoyo

  • Recuerdo haber aprendido a descomprimir no$gbemulator a los 7 años para jugar Kirby y Final Fantasy Adventure en la laptop Windows 95 de mi papá

  • Da mucho gusto ver más emuladores de Game Boy escritos en Rust. En especial, los proyectos con soporte para navegador están muy buenos

    • Estoy desarrollando una plataforma de juegos retro basada en navegador llamada afterplay.io
    • Soporta varios sistemas, corre completamente en el navegador y ofrece save states, sincronización en la nube y soporte móvil mediante Capacitor
    • También tiene funciones interesantes como netplay, soporte para cable link, manipulación de RTC y controles táctiles personalizables
  • Esta es la primera vez que veo un sitio web que se puede agregar como app de Android. Quisiera saber cómo se llama eso y cómo hacer que una aplicación web se convierta en una app instalable

  • Desarrollé un emulador de GB similar en Rust

  • Me hizo pensar en un proyecto parecido que hizo un amigo hace 10 años: enlace