7 คะแนน โดย GN⁺ 2026-01-26 | 5 ความคิดเห็น | แชร์ทาง WhatsApp
  • โปรเจกต์นี้พอร์ตเกมคลาสสิกปี 1993 อย่าง DOOM ให้รันบน หูฟังไร้สาย PineBuds Pro และสามารถเล่นระยะไกลผ่านเว็บได้
  • ประกอบด้วย 4 องค์ประกอบ ได้แก่ serial server ที่เชื่อมต่อหูฟังกับเว็บเซิร์ฟเวอร์, เว็บเซิร์ฟเวอร์, หน้าเว็บแบบสแตติก, และ DOOM port
  • ใช้การเชื่อมต่อ UART เพื่อให้ได้แบนด์วิดท์ราว 2.4Mbps และส่งภาพด้วย MJPEG stream จนทำประสิทธิภาพเชิงทฤษฎีได้สูงสุด 27FPS
  • โอเวอร์คล็อก CPU จาก 100MHz เป็น 300MHz และด้วยข้อจำกัดของ JPEG encoding จึงทำประสิทธิภาพจริงได้ราว 18FPS
  • แก้ข้อจำกัดด้าน RAM·FLASH ด้วยการปรับแต่งและใช้ไฟล์ Squashware WAD แบบลดขนาด แสดงให้เห็นศักยภาพของการทดลองฮาร์ดแวร์บนพื้นฐานเฟิร์มแวร์โอเพนซอร์ส

ภาพรวมของโปรเจกต์

  • พอร์ต DOOM ที่ออกในปี 1993 ให้รันบนหูฟัง PineBuds Pro
    • PineBuds Pro ถูกกล่าวถึงว่าเป็นหูฟังไร้สายเพียงรุ่นเดียวที่รองรับ เฟิร์มแวร์โอเพนซอร์ส
    • ผู้ที่เข้าเว็บไซต์สามารถเข้าคิวเพื่อเล่นเกมจากระยะไกลได้
  • โปรเจกต์ประกอบด้วย 4 ส่วน
    • DOOM port ที่รันอยู่บนหูฟัง
    • serial server ที่เชื่อมต่อหูฟังกับเว็บเซิร์ฟเวอร์ และแปลง MJPEG stream ไปเป็น Twitch
    • เว็บเซิร์ฟเวอร์ ที่ทำหน้าที่ให้บริการแอสเซ็ต จัดการคิว ส่งต่อการกดปุ่ม และแสดงสตรีม
    • หน้าเว็บแบบสแตติก ที่ทำหน้าที่แสดงผลบนเบราว์เซอร์และสื่อสารกับเซิร์ฟเวอร์

ฮาร์ดแวร์และโครงสร้างการเชื่อมต่อ

  • หูฟังไม่มีจอแสดงผล จึงรับส่งข้อมูลผ่าน Bluetooth หรือ แผ่นสัมผัส UART
    • Bluetooth ช้ากว่าที่ราว 1Mbps จึงเหมาะน้อยกว่า UART(2.4Mbps)
  • เฟรมบัฟเฟอร์ของ DOOM มีความละเอียด 320×200 สี 8 บิต คิดเป็นประมาณ 96KB
    • หากอิงตามแบนด์วิดท์ของ UART จะส่งได้ราว 3FPS
    • เพื่อแก้ปัญหานี้จึงเลือกใช้ MJPEG stream
  • ใช้ bitbank2/JPEGENC เป็น JPEG encoder
    • ขนาดเฟรม JPEG โดยเฉลี่ยอยู่ที่ 11~13.5KB
    • ในทางทฤษฎี FPS สูงสุดอยู่ที่ราว 22~27FPS

การปรับประสิทธิภาพ CPU

  • คล็อก CPU ของเฟิร์มแวร์เดิมอยู่ที่ 100MHz แต่ถูก เพิ่มเป็น 300MHz และปิดการทำงานโหมดประหยัดพลังงาน
  • Cortex-M4F(300MHz) เพียงพอสำหรับการรัน DOOM แต่เกิดคอขวดที่ JPEG encoding
    • อัตราเฟรมจริงอยู่ที่ประมาณ 18FPS

การปรับแต่งหน่วยความจำ (RAM)

  • RAM ที่เข้าถึงได้ตามปกติมี 768KB และจะได้ 992KB เมื่อปิดใช้งานโปรเซสเซอร์เสริม
  • DOOM ต้องการ RAM 4MB จึงต้องมีการปรับแต่งหลายอย่าง
    • ประหยัดหน่วยความจำด้วยวิธีอย่าง สร้าง lookup table ล่วงหน้า, เก็บตัวแปร const ลงแฟลช, ปิดระบบแคช, และ ลบตัวแปรที่ไม่จำเป็น

ปัญหาความจุแฟลช (FLASH)

  • ไฟล์ WAD พื้นฐานของ DOOM 1 มีขนาด 4.2MB ซึ่งเกินขีดจำกัดพื้นที่เก็บข้อมูล 4MB ของหูฟัง
  • แก้ปัญหาด้วยการใช้ Squashware WAD(1.7MB) เวอร์ชันลดขนาดของ fragglet
    • ทำให้สามารถเก็บแอสเซ็ตทั้งหมดไว้ในแฟลชได้

โอเพนซอร์สและการเข้าถึง

  • โค้ดของโปรเจกต์ถูกเผยแพร่ใน GitHub 2 รีโพซิทอรี
    • DOOMBuds: DOOM port สำหรับหูฟัง
    • DOOMBUDS-JS: รองรับการโต้ตอบระหว่างเบราว์เซอร์กับหูฟัง
  • เว็บไซต์ให้บริการแบบเข้าคิว และตั้งแต่ลำดับที่ 5 เป็นต้นไป Twitch stream จะเปลี่ยนเป็น MJPEG stream แบบหน่วงต่ำ

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

 
cybecho 2026-01-27

"มันรัน DOOM ได้"

 
pjh2568 2026-01-26

เหล่ายอดฝีมือแห่ง DOOM นี่... สุดยอดกันจริง ๆ

 
tsboard 2026-01-26

ว้าว อันนี้มันแบบ... สุดจัดเลย 55555

 
kimjoin2 2026-01-26

โอ้พระเจ้า

 
GN⁺ 2026-01-26
ความเห็นจาก Hacker News
  • ทุกครั้งที่เห็น DOOM รันได้บนอุปกรณ์เรียบง่ายอะไรก็ตาม ฉันก็อดคิดไม่ได้ว่านี่คือชัยชนะของซอฟต์แวร์ หรือเป็นความล้มเหลวทางเศรษฐกิจที่เราไม่สามารถสร้าง ฮาร์ดแวร์เฉพาะทาง ที่ถูกกว่านี้ได้กันแน่

    • เดิมที PineBuds ถูกออกแบบมาเป็น แพลตฟอร์มเฟิร์มแวร์แบบเปิด อยู่แล้ว จึงใส่ MCU ที่ทรงพลังเพื่อการทดลอง
      หูฟังบลูทูธ ANC ไม่ใช่ผลิตภัณฑ์ง่าย ๆ และ การตัดเสียงรบกวน ต้องคำนวณที่ซับซ้อนอย่างต่อเนื่อง
      MCU ที่เร็วไม่ใช่แค่ความสิ้นเปลือง แต่มีข้อดีด้าน latency ต่ำ และการจัดการพลังงานอย่างมีประสิทธิภาพ
      การมีโครงสร้างที่อัปเดตได้ด้วย MCU อเนกประสงค์นั้นเป็นจริงได้มากกว่าการสร้าง ASIC ที่สมบูรณ์แบบ
      ท้ายที่สุด การซื้อ MCU ที่ผ่านการพิสูจน์แล้วจำนวนมากก็คุ้มกว่าการสร้างชิปแบบสั่งทำมาก
    • มองอีกมุมหนึ่ง นี่คือตัวอย่างของ ความสำเร็จทางเศรษฐกิจ ที่ทำให้ฮาร์ดแวร์ประสิทธิภาพสูงกลายเป็นตัวเลือกที่ถูกที่สุดได้เพราะ economies of scale
    • ฉันมองว่านี่คือ ชัยชนะของการผลิตเซมิคอนดักเตอร์
      ค่าแรงในการออกแบบและผลิตชิปเฉพาะทาง รวมถึงการทดสอบ การอบรม และต้นทุนการผลิตจำนวนน้อย กลับแพงกว่าเสียอีก
      ต้นทุนกระบวนการทางธุรกิจ มีสัดส่วนใหญ่กว่าค่าวัสดุมาก
    • น่าทึ่งที่มีคนพยายามตีความ ความสำเร็จมหาศาล ของระบบเศรษฐกิจตลาดให้เป็นความล้มเหลวทางเศรษฐกิจ
      เราอยู่ในโลกที่ DOOM รันบนหูฟังเอียร์บัดได้แล้ว ไม่มีเหตุผลจะต้องมองเรื่องนี้ในแง่ลบ
    • CPU เป็นดูอัลคอร์ 300MHz ARM Cortex-M4F นี่ทำให้รู้สึกว่า การสเกลของฮาร์ดแวร์ หลังจาก DOOM ออกมานั้นบ้าคลั่งจริง ๆ
      สเปกอาจเกินความจำเป็น แต่การที่ทั้งหมดนี้เข้าไปอยู่ในหูได้ก็น่าทึ่งมาก
  • ฉันเป็นคน พอร์ต DOOM ลง PineBuds Pro เอง
    ถ้าเชื่อมต่อผ่านอินเทอร์เน็ต คุณก็เล่น DOOM บนเอียร์บัดของฉันได้
    รายละเอียดเพิ่มเติมกับลิงก์ GitHub อยู่บนเว็บไซต์ของฉัน

    • อยากรู้ว่า อัตราการบีบอัด ของการเข้ารหัส JPEG อยู่ประมาณไหน
  • แอบเสียดายนิดหน่อยที่มีแต่ DOOM ที่ถูกพอร์ตอยู่เรื่อย ๆ
    เมื่อก่อนมีเกมที่เรียบง่ายแต่ เล่นเพลินจนติด เยอะมาก แต่เกมสมัยนี้ใหญ่และซับซ้อนเกินไปจนย้ายไปแพลตฟอร์มเล็ก ๆ ได้ยาก
    รู้สึกว่าอุตสาหกรรมนี้หลงทิศไปแล้ว ยกเว้นฝั่งอินดี้
    เกมอย่าง Master of Orion 1 ในอดีตนั้นเรียบง่ายแต่หยิบมาเล่นซ้ำได้เรื่อย ๆ
    เกมสมัยนี้กลับคล้ายวิดีโอมากกว่า คือ ปฏิสัมพันธ์น้อยและเน้นฟาร์ม XP จนความน่าสนใจลดลง

    • เหตุผลที่ DOOM ถูกเลือกบ่อยก็เพราะมันเป็น โอเพนซอร์ส ใช้ทรัพยากรพอเหมาะ มีเอนจินที่น่าสนใจ และมีนักพัฒนาที่ผู้คนเคารพนับถือ
      มันกลายเป็นธรรมเนียมไปแล้ว
    • เกมสมัยก่อนมีขนาดเล็กเพราะข้อจำกัดทางเทคนิค
      ตอนนี้ผู้ใช้ส่วนใหญ่ไม่ได้กังวลเรื่องขนาดไฟล์หรือประสิทธิภาพมากนัก
      เมื่อผู้บริโภคมีท่าทีว่า “ขอแค่รันได้ก็พอ” คุณค่าของการปรับแต่งประสิทธิภาพ จึงลดลง
      ถึงอย่างนั้น ในวงการอินดี้ก็ยังมี เกมสั้นแต่มีสไตล์ อยู่มาก
      เพียงแต่เกมสั้นแบบภาพยนตร์มักสร้างอิมแพ็กต์ใหญ่ได้ยาก เลยไม่ค่อยเป็นที่รู้จัก
    • เห็นด้วยเลย ฉันก็อยากลองให้ Freespace 2 รันบนเอียร์บัดบ้าง
  • ดูรายชื่อการพอร์ต DOOM ได้ในหน้าวิกิพีเดีย

    • ซับเรดดิตที่เกี่ยวข้องคือ r/itrunsdoom
  • คิดว่านี่เป็น ผลด้านการประชาสัมพันธ์ ที่ยอดเยี่ยมสำหรับ PineBuds Pro
    สงสัยว่า Fairbuds จะทำแบบนี้ได้ไหม
    แต่ในเมื่อ DOOM รันได้บนอุปกรณ์มากมายขนาดนี้ ทำไมมันถึงยัง รันลื่นบน 386 ไม่ได้สักที

  • ทำให้นึกถึงบทสัมภาษณ์หลัง DOOM 3 ที่ John Carmack บอกว่า เมื่อเอนจินซับซ้อนขึ้น เขาก็ ไม่สามารถเขียนโค้ดทั้งหมดคนเดียวได้อีกต่อไป
    เลยสงสัยว่าใน ยุค AI ตอนนี้เขาจะคิดอย่างไร

    • ตอนนี้เขากำลังโฟกัสกับ การทำ AGI ให้เป็นจริง
      ส่วนตัวคิดว่าเขาน่าจะมอง AI ในแง่บวก
      แล้วก็ “Masters of Doom” เป็นหนังสือที่ดีมาก แนะนำเลย
    • แม้แต่ตอนพัฒนา DOOM นั้น Carmack ก็ใช้แนวทางคล้าย AI ในรูปแบบอย่าง Approximate Interpolation อยู่แล้ว
  • สงสัยว่ามีใครเคยใช้ PineBuds Pro บ้างไหม
    ใน IRC ของ Pine64 ไม่มีช่องที่เกี่ยวข้อง เลยไม่รู้จะไปถามที่ไหน

    • พูดตามตรง ฉันไม่เคยใช้มันตามจุดประสงค์เดิมเลย
      ไม่รู้เรื่องความสบายเวลาสวมหรือคุณภาพเสียง แต่ใน ช่อง Discord ของ Pine64 มีห้องสำหรับ Pinebuds โดยเฉพาะ
    • ฉันใช้มาตั้งแต่เปิดตัว และ อายุแบตเตอรี่ สั้น — ถ้าเปิด ANC จะอยู่ได้สูงสุดราว 2 ชั่วโมง
    • เมื่อก่อนฉันชอบ Pine64 มาก แต่หลังจาก ปัญหาแท็บเล็ต e-ink กับโทรศัพท์ ก็เชื่อถือน้อยลง
    • ฉันใช้งานอยู่และค่อนข้างพอใจ
      ฉันตั้งใจติดตั้งเฟิร์มแวร์ที่ไม่มี ANC แต่ในฐานะ หูฟังบลูทูธเอียร์บัด มันก็ทำหน้าที่ได้ดีพอ
  • อีกไม่กี่ปี ถ้าเอียร์บัดมีแรมเพิ่มขึ้นอีกหน่อย ก็คงรัน คลัสเตอร์ Kubernetes แบบโลคัล ได้แล้ว

  • ฉันกำลังรอโพสต์แนว “พอร์ต DOOM ลงชิปบุหรี่ไฟฟ้าใช้แล้วทิ้ง” อยู่ 😄

    • MCU Puya PY32 ที่อยู่ในบุหรี่ไฟฟ้าส่วนใหญ่นั้นมี RAM 3KB, ROM 24KB ซึ่งยังห่างไกลจากการรัน DOOM มาก
      ถ้ากฎของมัวร์ยังเดินหน้าต่อไป บางทีอาจเป็นไปได้ในอีกราว 10 ปี
    • ดูวิดีโอที่เกี่ยวข้องได้ที่ ลิงก์ YouTube
  • ตัวดูแบบแยกอิสระ ที่เชื่อมต่อกับเอียร์บัดโดยตรงก็ใช้งานบนมือถือได้เช่นกัน
    ดู วิดีโอเดโม ได้
    ไม่มีระบบควบคุมแบบสัมผัส และเล่นแค่วนลูปช่วงอินโทรเท่านั้น