7 điểm bởi GN⁺ 2026-01-26 | 4 bình luận | Chia sẻ qua WhatsApp
  • Đây là dự án port trò chơi kinh điển năm 1993 DOOM để chạy trên tai nghe không dây PineBuds Pro, và có thể chơi từ xa qua web
  • Dự án gồm bốn thành phần: serial server, web server, trang web tĩnh, và bản port DOOM, dùng để kết nối tai nghe với máy chủ web
  • Thông qua kết nối UART, dự án đạt băng thông khoảng 2.4Mbps, và truyền hình ảnh bằng luồng MJPEG để đạt hiệu năng lý thuyết tối đa 27FPS
  • CPU được ép xung từ 100MHz lên 300MHz, và do giới hạn của mã hóa JPEG, hiệu năng thực tế đạt khoảng 18FPS
  • Các ràng buộc về RAM·FLASH được giải quyết bằng tối ưu hóa và tệp Squashware WAD đã được tinh gọn, cho thấy tiềm năng của các thử nghiệm phần cứng dựa trên firmware mã nguồn mở

Tổng quan dự án

  • DOOM phát hành năm 1993 đã được port để chạy trên tai nghe PineBuds Pro
    • PineBuds Pro được nhắc đến là tai nghe không dây duy nhất hỗ trợ firmware mã nguồn mở
    • Khách truy cập trang web có thể vào hàng chờ để chơi game từ xa
  • Dự án được cấu thành từ bốn phần
    • Bản port DOOM chạy trên tai nghe
    • Serial server kết nối tai nghe với máy chủ web và chuyển đổi luồng MJPEG sang Twitch
    • Web server phụ trách cung cấp tài nguyên, quản lý hàng chờ, chuyển phím bấm và hiển thị luồng
    • Trang web tĩnh phụ trách hiển thị trên trình duyệt và giao tiếp với máy chủ

Phần cứng và cấu trúc kết nối

  • Tai nghe không có màn hình, nên việc truyền dữ liệu được thực hiện qua Bluetooth hoặc miếng pad tiếp điểm UART
    • Bluetooth chậm, khoảng 1Mbps, nên UART (2.4Mbps) phù hợp hơn
  • Framebuffer của DOOM có độ phân giải 320×200, màu 8-bit, tương đương khoảng 96KB
    • Với băng thông UART, chỉ có thể truyền khoảng 3FPS
    • Để cải thiện điều này, dự án áp dụng phương thức luồng MJPEG
  • Bộ mã hóa JPEG sử dụng bitbank2/JPEGENC
    • Kích thước khung hình JPEG trung bình là 11~13.5KB
    • Về lý thuyết, FPS tối đa đạt khoảng 22~27FPS

Điều chỉnh hiệu năng CPU

  • Xung CPU của firmware mặc định là 100MHz, nhưng đã được nâng lên 300MHz và tắt chế độ tiết kiệm điện
  • Cortex-M4F (300MHz) đủ để chạy DOOM, nhưng bị nghẽn ở khâu mã hóa JPEG
    • Tốc độ khung hình thực tế vào khoảng 18FPS

Tối ưu bộ nhớ (RAM)

  • RAM có thể truy cập mặc định là 768KB, và khi tắt bộ xử lý phụ thì có thể đạt 992KB
  • DOOM cần 4MB RAM, nên dự án đã thực hiện nhiều tối ưu hóa
    • Tiết kiệm bộ nhớ bằng các cách như tạo trước bảng tra cứu, lưu biến const vào flash, tắt hệ thống cache, loại bỏ biến không cần thiết

Vấn đề dung lượng flash (FLASH)

  • Tệp WAD mặc định của DOOM 1 có dung lượng 4.2MB, vượt quá giới hạn lưu trữ 4MB của tai nghe
  • Vấn đề được giải quyết bằng cách dùng phiên bản rút gọn Squashware WAD (1.7MB) của fragglet
    • Toàn bộ tài nguyên đều có thể chứa trong flash

Mã nguồn mở và khả năng tiếp cận

  • Mã nguồn dự án được công khai trong hai kho GitHub
    • DOOMBuds: bản port DOOM cho tai nghe
    • DOOMBUDS-JS: hỗ trợ tương tác giữa trình duyệt và tai nghe
  • Trang web vận hành theo cơ chế hàng chờ, và từ vị trí thứ 5 trở đi, luồng Twitch sẽ chuyển sang luồng MJPEG độ trễ thấp

4 bình luận

 
cybecho 2026-01-27

"DOOM chạy được trên tai nghe earbud không dây"

 
pjh2568 2026-01-26

Đúng là các cao thủ port DOOM... quá đỉnh.

 
kimjoin2 2026-01-26

Trời ơi.

 
GN⁺ 2026-01-26
Ý kiến trên Hacker News
  • Mỗi khi thấy DOOM chạy được trên một thiết bị đơn giản nào đó, tôi lại tự hỏi đây là chiến thắng của phần mềm hay là một thất bại kinh tế vì chúng ta không thể tạo ra phần cứng chuyên dụng rẻ hơn

    • PineBuds vốn được thiết kế ngay từ đầu như một nền tảng firmware mở, nên được trang bị MCU mạnh để phục vụ thử nghiệm
      Tai nghe Bluetooth ANC không phải là sản phẩm đơn giản, và khử tiếng ồn đòi hỏi phải liên tục thực hiện các phép tính rất phức tạp
      MCU nhanh không chỉ là sự lãng phí mà còn mang lại lợi ích về độ trễ thấp và quản lý điện năng hiệu quả
      Thực tế hơn nhiều khi có một kiến trúc có thể cập nhật bằng MCU đa dụng thay vì làm một ASIC hoàn hảo
      Cuối cùng, mua số lượng lớn MCU đã được kiểm chứng vẫn kinh tế hơn nhiều so với việc tạo chip tùy biến
    • Nhìn từ góc độ khác, đây là một ví dụ về thành công kinh tế khi nhờ lợi thế quy mô, phần cứng hiệu năng cao lại trở thành lựa chọn rẻ nhất
    • Tôi xem đây là chiến thắng của ngành sản xuất bán dẫn
      Chi phí nhân công, kiểm thử, đào tạo và sản xuất số lượng nhỏ để thiết kế, chế tạo chip tùy biến còn đắt hơn
      Chi phí quy trình kinh doanh chiếm tỷ trọng lớn hơn nhiều so với giá vật liệu
    • Thật ngạc nhiên khi có người cố diễn giải thành công khổng lồ của kinh tế thị trường thành thất bại kinh tế
      Chúng ta đang sống trong một thế giới nơi DOOM chạy trên tai nghe, chẳng có lý do gì để nhìn nhận điều đó theo hướng tiêu cực
    • CPU là ARM Cortex-M4F lõi kép 300MHz, nên tôi thấy mức mở rộng phần cứng kể từ khi DOOM ra mắt thật sự quá điên rồ
      Cấu hình là quá mức cần thiết, nhưng việc tất cả những thứ đó nằm gọn trong tai bạn thật đáng kinh ngạc
  • Tôi đã port DOOM lên PineBuds Pro
    Nếu truy cập qua Internet thì bạn có thể chơi DOOM trên tai nghe của tôi
    Thông tin chi tiết và link GitHub có trên trang web của tôi

    • Tôi tò mò không biết tỷ lệ nén của mã hóa JPEG là bao nhiêu
  • Hơi tiếc là lúc nào cũng chỉ thấy DOOM được port
    Ngày xưa có nhiều game đơn giản nhưng gây nghiện, còn game ngày nay quá lớn và phức tạp nên khó chuyển sang các nền tảng nhỏ
    Có cảm giác ngành này, ngoài indie ra, đã lạc hướng
    Những game như Master of Orion 1 ngày trước tuy đơn giản nhưng có thể chơi đi chơi lại rất nhiều lần
    Game bây giờ giống như video hơn, ít tính tương tác và thiên về cày XP, nên kém hấp dẫn hơn

    • Lý do DOOM thường được chọn là vì nó mã nguồn mở, yêu cầu tài nguyên vừa phải, có engine thú vị và nhà phát triển được kính trọng
      Nó đã gần như trở thành một truyền thống
    • Game ngày xưa nhỏ là do các giới hạn kỹ thuật
      Bây giờ đa số người dùng không quá quan tâm đến dung lượng hay hiệu năng
      Khi người tiêu dùng có thái độ kiểu “chỉ cần chạy được là ổn” thì giá trị của tối ưu hóa giảm đi
      Dù vậy, trong giới indie vẫn còn nhiều game ngắn nhưng có phong cách
      Chỉ là những game ngắn như phim khó tạo được ấn tượng lớn nên không nổi tiếng mà thôi
    • Tôi cũng đồng cảm, tôi muốn thử chạy Freespace 2 trên tai nghe
  • Danh sách các bản port DOOM có thể xem trên trang Wikipedia

  • Tôi nghĩ đây là một hiệu ứng quảng bá rất tốt cho PineBuds Pro
    Không biết Fairbuds có làm được kiểu này không
    Nhưng khi DOOM chạy được trên nhiều thiết bị như vậy, tại sao đến giờ nó vẫn chưa chạy mượt trên 386?

  • Tôi nhớ có lần John Carmack nói trong một cuộc phỏng vấn sau DOOM 3 rằng, khi engine trở nên phức tạp hơn thì ông không còn có thể một mình viết toàn bộ mã nguồn nữa
    Tôi tò mò không biết trong thời đại AI hiện nay ông sẽ nghĩ gì

    • Hiện ông đang tập trung vào việc hiện thực hóa AGI
      Cá nhân tôi nghĩ ông có lẽ sẽ tích cực về AI
      Và “Masters of Doom” là một cuốn sách thực sự hay, rất đáng đọc
    • Ngay từ thời phát triển DOOM, Carmack cũng đã dùng cách tiếp cận mang tính AI như Approximate Interpolation
  • Không biết ở đây có ai từng dùng PineBuds Pro chưa
    Trên IRC của Pine64 không có kênh liên quan nên khó hỏi

    • Nói thật là tôi chưa từng dùng nó đúng với mục đích ban đầu
      Tôi không rõ độ đeo hay chất lượng âm thanh ra sao, nhưng trên kênh Discord của Pine64 có phòng riêng cho Pinebuds
    • Tôi đã dùng liên tục từ sau khi phát hành, và thời lượng pin ngắn — bật ANC thì tối đa khoảng 2 giờ
    • Trước đây tôi thích Pine64, nhưng sau các vấn đề với tablet e-ink và điện thoại, mức độ tin tưởng của tôi đã giảm
    • Tôi đang dùng khá hài lòng
      Tôi cố ý cài firmware không có ANC, nhưng với vai trò là tai nghe Bluetooth, nó vẫn làm tốt việc của mình
  • Vài năm nữa, nếu tai nghe có thêm chút RAM, có lẽ chúng ta còn chạy được cả cụm Kubernetes cục bộ trên đó

  • Tôi đang chờ bài viết kiểu “đã port DOOM lên chip của thuốc lá điện tử dùng một lần” 😄

    • MCU Puya PY32 có trong hầu hết thuốc lá điện tử chỉ có 3KB RAM, 24KB ROM, còn rất xa mới đủ để chạy DOOM
      Nếu định luật Moore tiếp tục đúng, có lẽ phải khoảng 10 năm nữa mới làm được
    • Có thể xem video liên quan tại link YouTube
  • Trình xem độc lập kết nối trực tiếp với tai nghe cũng chạy được trên di động
    Xem video demo
    Không có điều khiển cảm ứng, chỉ phát vòng lặp phần intro mà thôi