PaperBoy รัน Game Boy ที่ 60 FPS บนจอ E Ink ด้วย ESP32-S3

เล่นเกมที่ 60 FPS บนหน้าจอ E Ink? ฟังดูไม่น่าเป็นไปได้… แต่โปรเจกต์ PaperBoy Game Boy Emulator ของ Wenting Zhang ทำได้จริง โดยโปรเจกต์นี้ใช้ชุดพัฒนา M5Stack PaperS3 ซึ่งประกอบด้วยไมโครคอนโทรลเลอร์ ESP32-S3 ที่รองรับการเชื่อมต่อไร้สาย จับคู่กับหน้าจอ E Ink ขนาด 4.7 นิ้ว ความละเอียด 960 × 540 พิกเซล

เคล็ดลับสำคัญอย่างหนึ่งคือ บริเวณด้านล่างของหน้าจอ ePaper แบบสัมผัสถูกใช้เป็นปุ่มควบคุม จึงไม่จำเป็นต้องรีเฟรชหน้าจอส่วนนั้นตลอดเวลา ขณะที่พื้นที่แสดงผลของเกมจริง ๆ ต้องการเพียงความละเอียด 160 × 144 พิกเซล ซึ่งถูกขยาย (สเกล) ขึ้น 3 เท่า และใช้เพื่อแสดงเฉดสีเทาหลายระดับ

PaperBoy E Ink ESP32 S3 Gameboy emulator

แตกต่างจากบอร์ดพัฒนา E Ink ขนาดเล็กส่วนใหญ่ PaperS3 มาพร้อมหน้าจอที่ใช้อินเทอร์เฟซไดรเวอร์แบบแถว/คอลัมน์ ซึ่งทำให้ Wenting สามารถควบคุมหน้าจอได้โดย ข้ามวิธีการขับหน้าจอด้วย waveform แบบปกติ ส่งผลให้สามารถเพิ่มอัตราการรีเฟรชของหน้าจอได้สูงสุดถึง 60 FPS สำหรับส่วนของการจำลองเครื่อง Game Boy นั้น Wenting ไม่ได้พัฒนาอีมูเลเตอร์ขึ้นใหม่ทั้งหมด แต่ได้ทดลองใช้อีมูเลเตอร์ 3 ตัว ก่อนจะเลือกใช้โปรเจกต์ CrankBoy เนื่องจากให้ประสิทธิภาพที่ดีกว่า โดยเกมส่วนใหญ่สามารถทำงานได้ที่ 30–60 FPS จากการทดสอบ Tetris เป็นเกมที่ใช้ทรัพยากรมากที่สุด ขณะที่ Super Mario Land สามารถทำอัตราเฟรมเรตได้สูงที่สุด

Super Mario Land ESP32 S3 E Ink devkit

การทำระบบเสียงก็เป็นอีกหนึ่งความท้าทาย เนื่องจากชุดพัฒนา PaperS3 มีเพียง บัซเซอร์ (Buzzer) ที่สามารถส่งเสียงได้ครั้งละเพียง โทนเสียงเดียว เท่านั้น Wenting แก้ปัญหานี้ด้วยการใช้ คลื่นสี่เหลี่ยม (Square Wave) เพื่อสร้างเสียง ซึ่งเป็นวิธีเดียวกับที่เคยใช้กับ ลำโพงบัซเซอร์ของเครื่องพีซี (PC Speaker) ในอดีต ส่วนการรับคำสั่งจากผู้ใช้นั้นทำได้ง่ายกว่า เพราะสามารถใช้หน้าจอสัมผัสเป็นตัวควบคุมได้โดยตรง นอกจากนี้ยังได้เพิ่มการรองรับ Bluetooth LE Joypad เข้าไปในโปรเจกต์อีกด้วย

PaperBoy S3 Bluetooth controller
PaperBoy S3 พร้อมคอนโทรลเลอร์ Bluetooth

สามารถอ่านรายละเอียดทางเทคนิคเพิ่มเติมได้จากบทความบน Hackster.io หรือดูวิดีโอที่แนบไว้ท้ายบทความ นอกจากนี้ซอร์สโค้ดที่พัฒนาด้วย ESP-IDF ยังเปิดให้ดาวน์โหลดบน GitHub และสามารถติดตั้งเฟิร์มแวร์ที่คอมไพล์ไว้แล้ว ผ่านโปรแกรม M5Burner ได้อีกด้วย

แต่ข้อเสียอย่างหนึ่งคือ ชุดพัฒนา PaperS3 ได้ยุติการผลิตแล้ว (EOL: End-of-Life) ทำให้หาซื้อได้ค่อนข้างยาก แม้ว่าจะยังพอพบได้บน eBay แต่ราคาสูงกว่าราคาเดิมประมาณ 2 เท่า อีกทั้งการหาบอร์ดมาทดแทนก็ไม่ใช่เรื่องง่าย เนื่องจากการทำงานในลักษณะนี้จำเป็นต้องใช้บอร์ดพัฒนา ePaper ที่มีอินเทอร์เฟซเชื่อมต่อหน้าจอแบบดิบ (raw display) จึงจะสามารถทำผลงานได้ในระดับเดียวกัน ตัวเลือกที่ใกล้เคียงที่สุดคือ M5Paper รุ่นเก่า ซึ่งใช้หน้าจอรุ่นเดียวกันและยังคงวางจำหน่ายในราคาประมาณ $85 (~2,800฿) แต่บอร์ดรุ่นนี้ใช้ ESP32 แทน ESP32-S3 จึงจำเป็นต้องมีการดัดแปลงเพิ่มเติมเพื่อให้ใช้งานได้ในลักษณะเดียวกัน

แปลจากบทความ : PaperBoy Game Boy Emulator works at 60 FPS on ESP32-S3 E Ink devkit

Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
โฆษณา