- Proyek ini mem-porting game klasik 1993 DOOM agar dapat berjalan di earbud nirkabel PineBuds Pro, dengan permainan jarak jauh yang dimungkinkan melalui web
- Terdiri dari empat komponen: serial server, web server, halaman web statis, dan port DOOM yang menghubungkan earbud dengan server web
- Melalui koneksi UART, proyek ini memperoleh bandwidth sekitar 2.4Mbps dan mengirim video dengan stream MJPEG, mencapai performa teoretis hingga 27FPS
- CPU di-overclock dari 100MHz ke 300MHz, dan dengan keterbatasan encoding JPEG, performa nyata yang dicapai berada di kisaran 18FPS
- Kendala RAM·FLASH diatasi lewat optimisasi dan file WAD Squashware yang lebih ringan, menunjukkan potensi eksperimen perangkat keras berbasis firmware open source
Gambaran Proyek
- DOOM yang dirilis pada 1993 dipindahkan agar bisa berjalan di earbud PineBuds Pro
- PineBuds Pro disebut sebagai satu-satunya earbud nirkabel yang mendukung firmware open source
- Pengunjung situs dapat mendaftar ke antrean untuk memainkan game ini dari jarak jauh
- Proyek ini terdiri dari empat bagian
- Port DOOM yang berjalan di earbud
- Serial server yang menghubungkan earbud dengan web server dan mengubah stream MJPEG menjadi Twitch
- Web server yang menangani penyediaan aset, pengelolaan antrean, pengiriman input tombol, dan penayangan stream
- Halaman web statis yang menangani tampilan di browser dan komunikasi dengan server
Perangkat Keras dan Struktur Koneksi
- Earbud tidak memiliki layar, sehingga pengiriman dan penerimaan data dilakukan melalui Bluetooth atau pad kontak UART
- Bluetooth lebih lambat di sekitar 1Mbps, sehingga UART(2.4Mbps) lebih cocok
- Framebuffer DOOM memiliki resolusi 320×200 dengan warna 8-bit, berukuran sekitar 96KB
- Berdasarkan bandwidth UART, hanya sekitar 3FPS yang dapat dikirim
- Untuk memperbaikinya, dipakai metode stream MJPEG
- Menggunakan bitbank2/JPEGENC sebagai encoder JPEG
- Ukuran rata-rata frame JPEG adalah 11~13.5KB
- Secara teoretis, FPS maksimum berada di kisaran 22~27FPS
Penyesuaian Performa CPU
- Clock CPU pada firmware bawaan adalah 100MHz, lalu ditingkatkan ke 300MHz dan mode hemat daya dinonaktifkan
- Cortex-M4F(300MHz) cukup untuk menjalankan DOOM, tetapi terjadi bottleneck pada encoding JPEG
- Kecepatan frame aktual berada di kisaran 18FPS
Optimisasi Memori (RAM)
- RAM dasar yang dapat diakses adalah 768KB, dan saat prosesor bantu dinonaktifkan tersedia 992KB
- Karena DOOM membutuhkan 4MB RAM, berbagai optimisasi dilakukan
- Penghematan memori dilakukan melalui pra-pembuatan lookup table, penyimpanan variabel const di flash, penonaktifan sistem cache, dan penghapusan variabel yang tidak diperlukan
Masalah Kapasitas Flash
- File WAD dasar DOOM 1 berukuran 4.2MB, melebihi batas penyimpanan earbud yang hanya 4MB
- Masalah ini diatasi dengan memakai Squashware WAD(1.7MB) versi ringan dari fragglet
- Semua aset dapat dimuat sepenuhnya di dalam flash
Open Source dan Aksesibilitas
- Kode proyek dibuka melalui dua repositori GitHub
- Situs web beroperasi berbasis antrean, dan mulai dari posisi ke-5, stream Twitch dialihkan ke stream MJPEG berlatensi rendah
5 komentar
"DOOM Berjalan di earbud nirkabel"
Para penguasa DOOM benar-benar... luar biasa.
Wah, ini agak... gila sih wkwkwkwk
Ya ampun.
Opini Hacker News
Setiap kali melihat DOOM berjalan di perangkat yang sangat sederhana, saya jadi bertanya-tanya apakah ini kemenangan perangkat lunak atau justru kegagalan ekonomi karena kita tidak bisa membuat perangkat keras khusus yang lebih murah
Earbud Bluetooth ANC bukan produk sederhana, dan noise cancelling harus terus-menerus menjalankan komputasi yang sangat kompleks
MCU yang cepat bukan sekadar pemborosan, tetapi memberi keuntungan berupa latensi rendah dan pengelolaan daya yang efisien
Dibanding membuat ASIC yang sempurna, jauh lebih realistis memiliki arsitektur yang bisa diperbarui dengan MCU serbaguna
Pada akhirnya, membeli MCU yang sudah terbukti dalam jumlah besar jauh lebih ekonomis daripada membuat chip kustom
Biaya tenaga kerja, pengujian, pelatihan, dan produksi skala kecil untuk merancang serta memproduksi chip kustom justru lebih mahal
Biaya proses bisnis mengambil porsi yang jauh lebih besar daripada biaya material
Kita hidup di dunia di mana DOOM bisa berjalan di earbud, tidak ada alasan untuk melihatnya secara negatif
Spesifikasinya memang berlebihan, tetapi menakjubkan bahwa semua itu muat di dalam telinga
Saya mem-porting DOOM ke PineBuds Pro
Jika diakses lewat internet, Anda bisa memainkan DOOM di earbud saya
Detail lebih lanjut dan tautan GitHub ada di situs saya
Sedikit disayangkan bahwa yang selalu di-porting hanya DOOM
Dulu ada banyak game sederhana tapi adiktif, tetapi game modern terlalu besar dan rumit sehingga sulit dipindahkan ke platform kecil
Rasanya industri ini kehilangan arah, kecuali di ranah indie
Game seperti Master of Orion 1 dulu sederhana, tetapi tetap asyik dimainkan berulang kali
Game zaman sekarang terasa seperti video, interaksinya minim dan berfokus pada grind XP, jadi kurang menarik
Ini sudah berlanjut seperti sebuah tradisi
Sekarang sebagian besar pengguna tidak terlalu peduli pada ukuran atau performa
Ketika konsumen punya sikap “asal berjalan dengan baik”, nilai optimisasi pun menurun
Meski begitu, di ranah indie masih banyak game bergaya menarik yang singkat
Hanya saja, game pendek seperti film sulit memberi kesan besar, jadi tidak terlalu dikenal
Daftar port DOOM bisa dilihat di halaman Wikipedia
Menurut saya ini efek promosi yang keren untuk PineBuds Pro
Saya jadi penasaran apakah Fairbuds juga bisa melakukan hal seperti ini
Tetapi jika DOOM bisa berjalan di begitu banyak perangkat, kenapa sampai sekarang masih belum berjalan mulus di 386
Saya teringat John Carmack pernah berkata dalam wawancara setelah DOOM 3 bahwa ketika engine menjadi lebih kompleks, ia tidak lagi bisa menulis seluruh kode sendirian
Saya penasaran apa yang ia pikirkan di era AI sekarang
Secara pribadi saya rasa dia akan cukup positif terhadap AI
Dan “Masters of Doom” adalah buku yang sangat bagus, saya merekomendasikannya
Saya penasaran apakah ada yang pernah memakai PineBuds Pro
Tidak ada kanal terkait di IRC Pine64, jadi sulit bertanya
Saya tidak tahu soal kenyamanan atau kualitas suara, tetapi di kanal Discord Pine64 ada ruang khusus Pinebuds
Saya sengaja memasang firmware tanpa ANC, tetapi sebagai earbud Bluetooth perangkat ini tetap menjalankan fungsinya dengan baik
Beberapa tahun lagi, kalau RAM di earbud bertambah sedikit, rasanya kita juga bisa menjalankan cluster Kubernetes lokal
Saya menunggu postingan “DOOM di-porting ke chip rokok elektrik sekali pakai” 😄
Jika hukum Moore terus berlanjut, mungkin sekitar 10 tahun lagi hal itu bisa terjadi
Viewer mandiri yang terhubung langsung ke earbud juga berfungsi di mobile
Lihat video demo
Tidak ada kontrol sentuh, dan hanya memutar loop intro