11 คะแนน โดย GN⁺ 2025-03-22 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • อีมูเลเตอร์ Game Boy แบบ cycle-accurate ด้วยการจำลอง CPU/เสียงอย่างแม่นยำ
  • ใช้ wasm-pack แปลงโค้ด Rust เป็น WebAssembly → จึงรันบนเว็บได้
  • ใช้ Web Audio API และ HTML Canvas สำหรับประมวลผลเสียงและกราฟิก
  • ใช้ local storage → จึงเก็บข้อมูล RAM ของตลับ MBC ที่รองรับแบตเตอรี่ได้

คุณสมบัติหลัก

  • การจำลอง CPU อย่างแม่นยำ → ผ่าน การทดสอบ CPU แบบ JSON
  • การจำลองเสียงอย่างแม่นยำ
  • การจำลองกราฟิก → ใช้เรนเดอเรอร์แบบสแกนไลน์
  • รองรับ MBC1, MBC3, MBC5, HuC1 → ใช้งานร่วมกับตลับได้หลากหลาย
  • รองรับ RTC (Real Time Clock) → ทำให้เกมที่อิงเวลาบนตลับ MBC3 ทำงานได้
  • รองรับโค้ดโกง GameShark และ GameGenie
  • ตลับที่มีแบตเตอรี่สำรองสามารถบันทึกข้อมูล RAM ลงใน local storage ได้
  • เว็บฟรอนต์เอนด์
    • React/TypeScript + Material UI
    • รองรับโหมดเต็มหน้าจอ
    • หยุดเกมชั่วคราวและเล่นต่อได้
    • เลือกโหมดขาวดำและสีได้
    • รองรับการกำหนดปุ่มเอง
    • เปิดใช้งานและจัดการโค้ดโกงได้
    • ดีไซน์แบบ responsive ที่เหมาะกับอุปกรณ์มือถือ

1 ความคิดเห็น

 
GN⁺ 2025-03-22
ความคิดเห็นบน Hacker News
  • โปรเจ็กต์นี้เจ๋งมาก แม้จะมีปัญหาเรื่องการจำลองเสียงอยู่บ้าง แต่ก็ทำให้นึกถึงการทำ Game Boy emulation อีกครั้งหลังจากไม่ได้คิดถึงมานาน Rust และ WASM มีบทบาทสำคัญมากในการทำให้แอปพลิเคชันที่เคยถูกจำกัดอยู่บนเดสก์ท็อปสามารถถูกนำมาแสดงได้บนเว็บ

    • ฉันเคยทำ NES emulator ในลักษณะคล้ายกันโดยใช้ wasm-bindgen
    • ถ้ากำลังทำ homebrew อยู่แล้วแชร์ลิงก์ให้เปิดใช้งานได้ทันทีในเบราว์เซอร์ มันเจ๋งมากจริงๆ
  • เมื่อไม่นานมานี้ฉันซื้อเครื่องเล่นเกมพกพาแนวเรโทรจาก Aliexpress มาในราคา £50 เล่นได้ตั้งแต่ Gameboy ไปจนถึง SNES และ PlayStation 1 และพอเล่น N64 กับ Dreamcast ได้บ้างเล็กน้อย

    • มีตัวเลือกหลายแบบ คุณภาพอาจไม่ถึงกับดีอย่างที่หวัง แต่สำหรับการเดินทางที่ไม่สามารถซื้อ Steam Deck ได้ก็ถือว่าน่าพอใจมาก
    • สามารถติดตั้ง custom firmware และแอปต่างๆ ได้มากมาย
    • ควรระวังปัญหาเรื่องการชาร์จผ่าน USB C และแนะนำให้ซื้อที่ชาร์จขนาดเล็กที่จ่ายไฟไม่แรงมาก
  • รายการลิงก์และเอกสารอ้างอิงสำหรับคนที่สนใจพัฒนา Gameboy

  • GB/GBC/GBA ก็เหมือนกับที่ VT102 เป็นสำหรับซอฟต์แวร์แบบ grid cell เดโมซีนยังคงพัฒนาต่อไป และชิปจูนก็ยังคงรักฮาร์ดแวร์นี้อยู่

    • การเขียนซอฟต์แวร์สำหรับ GBA คล้ายกับการพัฒนาให้กับ ARM microcontroller สมัยใหม่ขนาดเล็ก
    • มี emulator หลายตัว แต่ละตัวก็โฟกัสกันคนละด้าน
    • มีความสามารถหลากหลาย เช่น emulation ที่สมบูรณ์แบบ การปรับแต่งประสิทธิภาพ การตรวจสอบหน่วยความจำ และการให้ cheat code
  • ในฐานะผู้สร้าง emulator นี้เอง ฉันรู้สึกประหลาดใจที่โปรเจ็กต์งานอดิเรกเล็กๆ นี้ได้รับความสนใจมากขนาดนี้ ขอบคุณสำหรับการสนับสนุน

  • ฉันยังจำได้ว่าตอนอายุ 7 ขวบเคยเรียนรู้วิธีแตกไฟล์ no$gbemulator เพื่อจะได้เล่น Kirby และ Final Fantasy Adventure บนโน้ตบุ๊ก Windows 95 ของพ่อ

  • ดีใจมากที่ได้เห็น Game Boy emulator ที่เขียนด้วย Rust มากขึ้น โดยเฉพาะโปรเจ็กต์ที่รองรับเบราว์เซอร์นี่เจ๋งมาก

    • ฉันกำลังพัฒนาแพลตฟอร์มเกมเรโทรบนเบราว์เซอร์ชื่อ afterplay.io
    • รองรับหลายระบบ ทำงานทั้งหมดในเบราว์เซอร์ และมี save state, cloud sync และรองรับมือถือผ่าน Capacitor
    • ยังมีฟีเจอร์สนุกๆ อย่าง netplay, รองรับ link cable, การปรับแต่ง RTC และระบบควบคุมแบบสัมผัสที่ตั้งค่าเองได้
  • นี่เป็นครั้งแรกที่ฉันเจอเว็บไซต์ที่สามารถเพิ่มหน้าเว็บเป็นแอป Android ได้ อยากรู้ว่าสิ่งนี้เรียกว่าอะไร และอยากรู้วิธีทำให้เว็บแอปกลายเป็นแอปที่ติดตั้งได้

  • ฉันเคยพัฒนา GB emulator ที่คล้ายกันด้วย Rust

  • ทำให้นึกถึงโปรเจ็กต์คล้ายกันที่เพื่อนเคยทำไว้เมื่อ 10 ปีก่อน: ลิงก์