7 puan yazan GN⁺ 2026-01-26 | 5 yorum | WhatsApp'ta paylaş
  • 1993 tarihli klasik oyun DOOM'u PineBuds Pro kablosuz kulaklıklarda çalışacak şekilde portlayan bir proje; web üzerinden uzaktan oynanabiliyor
  • Seri sunucu (serial server), web sunucusu, statik web sayfası ve DOOM portu olmak üzere dört bileşenden oluşuyor
  • UART bağlantısı ile yaklaşık 2.4Mbps bant genişliği sağlanıyor ve görüntü MJPEG akışı olarak iletilerek teoride 27FPS'e kadar performans elde ediliyor
  • CPU 100MHz'den 300MHz'e overclock edilerek, JPEG kodlama sınırları nedeniyle pratikte yaklaşık 18FPS düzeyinde performans sağlanıyor
  • RAM·FLASH kısıtları, optimizasyonlar ve hafifletilmiş Squashware WAD dosyası ile aşılıyor; bu da açık kaynak firmware tabanlı donanım deneylerinin potansiyelini gösteriyor

Projeye genel bakış

  • 1993'te çıkan DOOM, PineBuds Pro kulaklıklarda çalışacak şekilde portlandı
    • PineBuds Pro, açık kaynak firmware desteği sunan tek kablosuz kulaklık olarak anılıyor
    • Site ziyaretçileri sıraya girerek oyunu uzaktan oynayabiliyor
  • Proje dört parçadan oluşuyor
    • Kulaklık üzerinde çalışan DOOM portu
    • Kulaklık ile web sunucusunu bağlayan ve MJPEG akışını Twitch'e dönüştüren seri sunucu
    • Varlıkları sunma, sıra yönetimi, tuş girişini iletme ve akışı gösterme görevlerini üstlenen web sunucusu
    • Tarayıcı görüntüleme ve sunucu iletişimini sağlayan statik web sayfası

Donanım ve bağlantı yapısı

  • Kulaklıklarda ekran olmadığından veri alışverişi Bluetooth veya UART temas pedleri üzerinden yapılıyor
    • Bluetooth yaklaşık 1Mbps ile daha yavaş olduğundan UART(2.4Mbps) daha uygun
  • DOOM'un framebuffer'ı 320×200 çözünürlükte, 8 bit renk derinliğinde ve yaklaşık 96KB boyutunda
    • UART bant genişliğiyle yaklaşık 3FPS aktarım mümkün
    • Bunu iyileştirmek için MJPEG akışı yöntemi benimsenmiş
  • JPEG kodlayıcı olarak bitbank2/JPEGENC kullanılmış
    • Ortalama JPEG kare boyutu 11~13.5KB
    • Teorik azami FPS yaklaşık 22~27FPS

CPU performans ayarı

  • Varsayılan firmware'deki CPU saat hızı 100MHz iken, bu değer 300MHz'e çıkarıldı ve düşük güç modu devre dışı bırakıldı
  • Cortex-M4F(300MHz), DOOM'u çalıştırmak için yeterli olsa da darboğaz JPEG kodlamada oluşuyor
    • Gerçek kare hızı yaklaşık 18FPS seviyesinde

Bellek (RAM) optimizasyonu

  • Varsayılan erişilebilir RAM 768KB, yardımcı işlemci devre dışı bırakıldığında ise 992KB
  • DOOM 4MB RAM gerektirdiği için çeşitli optimizasyonlar yapıldı
    • Lookup table'ların önceden oluşturulması, const değişkenlerin flash'ta saklanması, cache sisteminin devre dışı bırakılması, gereksiz değişkenlerin kaldırılması gibi yöntemlerle bellek tasarrufu sağlandı

Flash (FLASH) kapasite sorunu

  • DOOM 1'in varsayılan WAD dosyası 4.2MB boyutunda ve kulaklığın 4MB depolama sınırını aşıyor
  • Sorun, fragglet'in hafifletilmiş sürümü Squashware WAD(1.7MB) kullanılarak çözüldü
    • Tüm varlıklar flash içine sığdırılabildi

Açık kaynak ve erişilebilirlik

  • Proje kodu iki GitHub deposunda açık olarak yayınlanıyor
    • DOOMBuds: kulaklık için DOOM portu
    • DOOMBUDS-JS: tarayıcı ile kulaklık arasındaki etkileşimi sağlıyor
  • Web sitesi sıra tabanlı çalışıyor; 5. sıradan itibaren Twitch akışı, düşük gecikmeli MJPEG akışına geçiyor

5 yorum

 
cybecho 2026-01-27

"DOOM'u Çalıştırıyor"

 
pjh2568 2026-01-26

DOOM ustaları gerçekten... inanılmazlar.

 
tsboard 2026-01-26

Vay canına, bu biraz... ürkütücü derecede çılgınca hahaha

 
kimjoin2 2026-01-26

Aman tanrım.

 
GN⁺ 2026-01-26
Hacker News görüşleri
  • DOOM'un herhangi bir basit cihazda çalıştığını her gördüğümde, bunun yazılımın bir zaferi mi yoksa daha ucuz özel donanım üretememiş olmamızın ekonomik bir başarısızlığı mı olduğunu düşünüyorum

    • PineBuds baştan itibaren deneyler için güçlü bir MCU taşıyan bir açık firmware platformu olarak tasarlanmıştı
      ANC Bluetooth kulaklıklar basit ürünler değildir ve gürültü engelleme, sürekli olarak çok karmaşık hesaplamalar yürütmek zorundadır
      Hızlı bir MCU sadece israf değildir; düşük gecikme ve verimli güç yönetimi gibi avantajlar sunar
      Mükemmel bir ASIC üretmeye çalışmaktansa, genel amaçlı bir MCU ile güncellenebilir bir yapı kurmak çok daha gerçektir
      Sonuçta, kanıtlanmış MCU'ları büyük miktarda satın almak, özel çip üretmekten çok daha ekonomiktir
    • Başka bir açıdan bakarsak bu, ölçek ekonomisi sayesinde yüksek performanslı donanımın aslında en ucuz seçenek haline geldiği bir ekonomik başarı örneği
    • Ben bunu yarı iletken üretiminin zaferi olarak görüyorum
      Özel çip tasarlayıp üretmenin iş gücü, test, eğitim ve düşük hacimli üretim maliyetleri daha pahalıya geliyor
      İş süreçleri maliyeti, malzeme maliyetinden çok daha büyük bir pay tutuyor
    • Piyasa ekonomisinin muazzam başarısını ekonomik başarısızlık olarak yorumlama çabası şaşırtıcı
      DOOM'un kulaklıklarda çalıştığı bir dünyada yaşıyoruz; buna olumsuz bakmak için bir neden yok
    • CPU'nun çift çekirdekli 300MHz ARM Cortex-M4F olması, DOOM'un çıkışından bu yana donanım ölçeklenmesinin ne kadar çılgınlaştığını düşündürüyor
      Aşırı güçlü bir özellik seti ama bütün bunların kulağınızın içine sığıyor olması şaşırtıcı
  • DOOM'u PineBuds Pro'ya ben port ettim
    İnternet üzerinden bağlanırsanız kulaklıklarımda DOOM oynayabilirsiniz
    Ayrıntılar ve GitHub bağlantısı sitemde var

    • JPEG kodlamasında sıkıştırma oranının ne kadar olduğunu merak ediyorum
  • Sürekli sadece DOOM'un port edilmesi biraz üzücü
    Eskiden basit ama bağımlılık yapan oyunlar çoktu, ama günümüz oyunları fazla büyük ve karmaşık olduğu için küçük platformlara taşınmaları zor
    Sektör, indie'ler dışında yönünü kaybetmiş gibi görünüyor
    Eski Master of Orion 1 gibi oyunlar basitti ama tekrar tekrar oynanabiliyordu
    Günümüz oyunları videolar gibi; etkileşim az ve XP kasma odaklı oldukları için ilgim azalıyor

    • DOOM'un sık seçilmesinin nedeni açık kaynak olması, makul kaynak gereksinimleri, ilginç motoru ve saygı duyulan geliştiricileri
      Artık neredeyse bir gelenek haline geldi
    • Eski oyunların küçük olmasının nedeni teknik kısıtlardı
      Artık çoğu kullanıcı depolama ya da performansı çok önemsemiyor
      Tüketicilerin “çalışsın yeter” yaklaşımını benimsemesiyle optimizasyonun değeri azaldı
      Yine de indie sahnesinde kısa ve stil sahibi oyunlar hâlâ çok
      Sadece, film gibi kısa oyunların büyük etki bırakması zor olduğundan fazla tanınmıyorlar
    • Katılıyorum, ben de kulaklıklarda Freespace 2 çalıştırıldığını görmek isterdim
  • DOOM portları listesine Wikipedia sayfasından bakabilirsiniz

  • Bence bu PineBuds Pro için harika bir tanıtım etkisi
    Acaba Fairbuds ile de böyle bir şey yapılabilir mi
    Ama DOOM bu kadar çok cihazda çalışıyorken neden hâlâ 386'da akıcı çalışmıyor

  • John Carmack'ın DOOM 3 sonrası bir röportajda, motor karmaşıklaştıkça tüm kodu tek başına yazmasının artık mümkün olmadığını söylediğini hatırladım
    Bugünün yapay zeka çağında bunun hakkında ne düşünürdü merak ediyorum

    • Şu anda AGI'yi gerçekleştirmeye odaklanmış durumda
      Kişisel olarak yapay zekaya olumlu baktığını düşünüyorum
      Ayrıca “Masters of Doom” gerçekten çok iyi bir kitap, tavsiye ederim
    • Carmack, DOOM'u geliştirirken de yaklaşık enterpolasyon (Approximate Interpolation) gibi biçimlerde AI benzeri yaklaşımlar kullanıyordu
  • PineBuds Pro'yu kullanmış biri var mı merak ediyorum
    Pine64 IRC'de bununla ilgili bir kanal yoktu, o yüzden sormak zordu

    • Dürüst olmak gerekirse, asıl kullanım amacı için hiç denemedim
      Konforu ya da ses kalitesi hakkında bir şey diyemem ama Pine64 Discord kanalında Pinebuds için özel bir oda var
    • Çıktığından beri kullanıyorum, ama pil ömrü kısa — ANC açıksa en fazla yaklaşık 2 saat gidiyor
    • Eskiden Pine64'ü severdim ama e-ink tablet ve telefon sorunlarından sonra güvenim azaldı
    • Ben memnun şekilde kullanıyorum
      Bilerek ANC'siz firmware kurdum ama bir Bluetooth kulaklık olarak görevini gayet iyi yapıyor
  • Birkaç yıl sonra, kulaklıklarda biraz daha fazla RAM olursa yerel bir Kubernetes kümesi bile çalıştırabiliriz gibi geliyor

  • DOOM'u tek kullanımlık elektronik sigara çipine port ettim” başlıklı yazıyı bekliyorum 😄

    • Çoğu elektronik sigarada kullanılan Puya PY32 MCU'nun sadece 3KB RAM, 24KB ROM'u var; DOOM çalıştırmak için çok yetersiz
      Moore yasası devam ederse, belki yaklaşık 10 yıl sonra mümkün olabilir
    • İlgili video: YouTube bağlantısı
  • Kulaklığa doğrudan bağlı bağımsız görüntüleyici mobilde de çalışıyor
    Demo videosuna bakın
    Dokunmatik kontroller yok, sadece intro döngüsü oynatılıyor