- อีมูเลเตอร์ 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 ความคิดเห็น
ความคิดเห็นบน Hacker News
โปรเจ็กต์นี้เจ๋งมาก แม้จะมีปัญหาเรื่องการจำลองเสียงอยู่บ้าง แต่ก็ทำให้นึกถึงการทำ Game Boy emulation อีกครั้งหลังจากไม่ได้คิดถึงมานาน Rust และ WASM มีบทบาทสำคัญมากในการทำให้แอปพลิเคชันที่เคยถูกจำกัดอยู่บนเดสก์ท็อปสามารถถูกนำมาแสดงได้บนเว็บ
เมื่อไม่นานมานี้ฉันซื้อเครื่องเล่นเกมพกพาแนวเรโทรจาก Aliexpress มาในราคา £50 เล่นได้ตั้งแต่ Gameboy ไปจนถึง SNES และ PlayStation 1 และพอเล่น N64 กับ Dreamcast ได้บ้างเล็กน้อย
รายการลิงก์และเอกสารอ้างอิงสำหรับคนที่สนใจพัฒนา Gameboy
GB/GBC/GBA ก็เหมือนกับที่ VT102 เป็นสำหรับซอฟต์แวร์แบบ grid cell เดโมซีนยังคงพัฒนาต่อไป และชิปจูนก็ยังคงรักฮาร์ดแวร์นี้อยู่
ในฐานะผู้สร้าง emulator นี้เอง ฉันรู้สึกประหลาดใจที่โปรเจ็กต์งานอดิเรกเล็กๆ นี้ได้รับความสนใจมากขนาดนี้ ขอบคุณสำหรับการสนับสนุน
ฉันยังจำได้ว่าตอนอายุ 7 ขวบเคยเรียนรู้วิธีแตกไฟล์ no$gbemulator เพื่อจะได้เล่น Kirby และ Final Fantasy Adventure บนโน้ตบุ๊ก Windows 95 ของพ่อ
ดีใจมากที่ได้เห็น Game Boy emulator ที่เขียนด้วย Rust มากขึ้น โดยเฉพาะโปรเจ็กต์ที่รองรับเบราว์เซอร์นี่เจ๋งมาก
นี่เป็นครั้งแรกที่ฉันเจอเว็บไซต์ที่สามารถเพิ่มหน้าเว็บเป็นแอป Android ได้ อยากรู้ว่าสิ่งนี้เรียกว่าอะไร และอยากรู้วิธีทำให้เว็บแอปกลายเป็นแอปที่ติดตั้งได้
ฉันเคยพัฒนา GB emulator ที่คล้ายกันด้วย Rust
ทำให้นึกถึงโปรเจ็กต์คล้ายกันที่เพื่อนเคยทำไว้เมื่อ 10 ปีก่อน: ลิงก์