แหกกฎจอ E-Ink! เล่น Game Boy ลื่นปรี๊ด 60 FPS บนบอร์ด ESP32-S3

PaperBoy Game Boy Emulator on E-Ink
โฉมหน้าโปรเจกต์ PaperBoy ที่ทำให้หน้าจอ E-Ink เล่นเกมเรโทรได้ลื่นไหลแบบสุดๆ!

Wassup ชาว Maker และสายเรโทรเกม! 👾 ปกติเวลาเราพูดถึงหน้าจอ E-Ink (อีอิงค์) ภาพในหัวคือหน้าจอที่เอาไว้อ่าน E-Book เพราะมันประหยัดแบตเตอรี่มากๆ ถนอมสายตา แต่แลกมากับข้อเสียคือ "รีเฟรชเรทโคตรอืด!" กระพริบทีหน้าจอมืดไปวิครึ่ง จะเอามาเล่นเกมคือฝันไปได้เลย!

แต่วันนี้มี Maker เทพที่ชื่อ Wenting Zhang ได้ทุบข้อจำกัดนั้นทิ้ง! ด้วยการสร้างโปรเจกต์ "PaperBoy" โปรแกรมอีมูเลเตอร์ (Emulator) ที่จับเกม Game Boy มารันบนจอ E-Ink ด้วยขุมพลังของ ESP32-S3 และที่สำคัญ... มันรันได้ลื่นถึง 60 FPS! (Frame per Second) เป็นไปได้ไงเนี่ยยย!

เคล็ดลับความลื่น: แฮกไดร์เวอร์จอ 🛠️

เพื่อให้จอ E-Ink กระพริบได้รัวๆ ระดับ 60 FPS ผู้พัฒนาเค้าใช้ทริคหลายอย่างเลยครับ:

  • ใช้บอร์ด M5Stack PaperS3: บอร์ดตัวนี้มีความพิเศษคือมันต่อกับหน้าจอโดยใช้ "Raw row/column driver interface" ซึ่งทำให้ผู้พัฒนาสามารถข้ามระบบการวาดจอแบบเก่า (Waveform method) ที่มันช้าๆ ไปได้เลย!
  • รีเฟรชแค่ส่วนที่จำเป็น: จอมีขนาด 4.7 นิ้ว (960 x 540) เค้าเลยแบ่งครึ่งจอด้านล่างเป็น "ปุ่มกด (Touch buttons)" ซึ่งไม่ต้องรีเฟรชบ่อย แล้วเอาแค่ส่วนบนมาขยายพิกเซลเป็น 160 x 144 เพื่อแสดงผลเกมเท่านั้น
  • ขุมพลังซอฟต์แวร์: เค้าใช้ CrankBoy Project เป็นแกนหลักในการทำอีมูเลเตอร์ ทำให้เกมส่วนใหญ่รันได้ที่ 30-60 FPS เลยทีเดียว (มาริโอ้นี่รันลื่นสุดๆ)

💡 ป้ายยาไอเทมเด็ด: โปรเจกต์เกมมิ่งสนุกๆ แบบนี้ การพิมพ์เคส 3D หุ้มบอร์ดทำเป็นเครื่องเกมพกพา (Handheld) ถือว่าตอบโจทย์มากครับ

หากเพื่อนๆ กำลังมองหา บอร์ดพัฒนา ESP32-S3 ตัวแรงๆ, หน้าจอแสดงผลต่างๆ หรือต้องการ บริการรับปริ้นท์ชิ้นงาน 3D พรีเมียม แวะมาจัดของที่ Globalbyte Shop ได้เลยครับ! ทัก LINE OA มาปรึกษาแอดมินหรือส่งไฟล์ 3D มาให้ประเมินราคาฟรีได้เลย!

เรื่องเสียงก็ไม่ธรรมดา 🔈

ความฮาคือบอร์ด PaperS3 มันมีแค่ Buzzer โง่ๆ (ลำโพงปิ๊บๆ) ที่เล่นได้ทีละโน้ต เค้าเลยแก้ปัญหาด้วยการสร้างคลื่นเสียงสี่เหลี่ยม (Square waves) แบบเดียวกับที่คอมพิวเตอร์ยุคเก่าใช้ ทำให้มีเสียงเกม 8-bit ออกมาได้ แถมยังรองรับการต่อ จอยสติ๊ก Bluetooth LE เพื่อเล่นแทนการกดจอบนหน้าจอได้อีกด้วย!

⚠️ คำเตือน: บอร์ดนี้หายากแล้วนะ!

ข่าวร้ายนิดนึงคือบอร์ด M5Stack PaperS3 ที่ใช้ทำโปรเจกต์นี้ เลิกผลิตไปแล้ว (End-of-Life)! ถ้าไปหาใน eBay ราคาจะพุ่งไป 2 เท่าเลย ใครอยากทำตามอาจจะต้องไปหาบอร์ดรุ่นใกล้เคียงอย่าง M5Paper รุ่นเก่า แล้วเอามาโมดิฟายโค้ดเอาเองครับ

🔗 ข้อมูลอ้างอิงและจุดวาร์ปโหลดโค้ด:

ใครสนใจแกะโค้ดการจัดการหน้าจอ E-Ink ว่าเค้าเขียน Driver ยังไงให้มันรีเฟรชได้ไวขนาดนี้ แอดมินรวบรวมลิงก์ทั้งหมดมาให้แล้วครับ:

*Disclaimer (ข้อจำกัดความรับผิดชอบ): เนื้อหาบทความนี้ถูกเรียบเรียงและสรุปมาจากโปรเจกต์ของต่างประเทศ การเขียนโค้ดและไลบรารีเพื่อเชื่อมต่อจอ E-Ink แบบข้ามข้อจำกัด มีความซับซ้อนและต้องใช้ความรู้ด้านเฟิร์มแวร์ ESP-IDF ระดับสูง ผู้ที่สนใจทำตามควรเข้าไปศึกษา Source Code ต้นฉบับ อย่างละเอียด เพื่อประสิทธิภาพสูงสุดของโปรเจกต์ครับ!

แท็ก


Blog posts

เข้าสู่ระบบ

ลืมรหัสผ่านใช่ไหม?

ยังไม่มีบัญชีใช่ไหม?
สร้างบัญชี