2 puan yazan GN⁺ 2023-12-28 | 1 yorum | WhatsApp'ta paylaş
  • Game Boy ailesi, düşük güç bütçesi içinde DMG-CPU SoC, PPU, APU, boot ROM ve Game Pak’i birleştirerek taşınabilir konsolun CPU, grafik, ses, uyumluluk ve kopya korumasını tek bir sistemde topladı
  • CPU, Sharp’ın SM83 çekirdeğini temel alır ve yaklaşık 4,19 MHz’de çalışır; Game Boy Color’ın CPU CGB’si aynı aileyi korurken çift hızlı modda yaklaşık 8,38 MHz’e kadar çıkar
  • Grafikler, 160×144 LCD ve VRAM tabanlı PPU’nun tile, arka plan, sprite ve pencereyi birleştirdiği bir yapıya sahiptir; Color modeli 16 KB VRAM, 32.768 renk paleti ve ek DMA ile ifade gücünü genişletti
  • Sesten 4 kanallı APU sorumludur; Game Pak, 32 KB’lik temel adres alanını aşmak için Memory Bank Controller kullanır ve Link kablosu ile Color’ın kızılötesi üzerinden dış iletişimi destekler
  • Boot ROM, Nintendo logosunu ve ROM başlığı checksum’ını denetledikten sonra oyunu çalıştırır; bu logo şartı, telif hakkı ve marka hakkını kullanan bir dağıtım kontrol mekanizması olarak işledi

Game Boy ailesinin kapsamı ve tasarım yönü

  • Game Boy serisi NES’in taşınabilir sürümü gibi görülebilir, ancak basit bir küçültülmüş kopya değil; kendi işlevleri ve genişleme yönü olan bir yapıdır
  • Game Boy markası iki nesil boyunca sürdü
      1. nesilde siyah-beyaz Game Boy ile Game Boy Pocket ve Light gibi revizyonlar yer aldı
    • Sonraki nesilde Virtual Boy’dan sonra çıkan Game Boy Color yer aldı
  • Analizin odağı, siyah-beyaz Game Boy’un temel yapısı ve bu yapının Color modelinde nasıl genişletildiğidir

CPU ve bellek yapısı

  • Nintendo, ana karta birden fazla genel amaçlı çip yerleştirmek yerine CPU ve ana bileşenleri içeren tek çipli bir tasarımı seçti
    • Bu SoC, DMG-CPU veya Sharp LR35902 olarak adlandırılır
    • Sharp Corporation tarafından üretildi; Nintendo’nun gereksinimlerine göre güç verimliliği, kopya koruması ve ek I/O uygulaması açısından avantajlıydı
    • Perakende kataloglarından temin edilemeyen bir çip olduğu için rakiplerin birebir kopyalaması zordu
  • SM83 CPU çekirdeği

    • DMG-CPU içindeki ana işlemci Sharp SM83’tür
    • Zilog Z80 ile Intel 8080’in karışımı bir yapıdadır ve yaklaşık 4,19 MHz’de çalışır
    • SM83, Z80 ve 8080’in yalnızca bazı özelliklerini korur
      • Z80’in IX, IY kayıtları ve 8080’in IN, OUT komutları yoktur
      • I/O portları kullanılamadığından bileşenlerin belleğe eşlenmesi gerekir
      • Yalnızca Intel 8080’in register setine sahip olduğu için 7 genel amaçlı register bulunur
      • Z80 genişletilmiş komutlarından yalnızca bazı bit işleme komutları uygulanmıştır
    • Sharp, Z80 veya 8080’de bulunmayan yeni komutlar da ekledi
      • LDH, $FF00’dan başlayan bellek haritasının son 256 baytına erişim için tasarlandı
      • Komut boyutu 1 bayt azaldığından biraz daha hızlı çalışabilir
  • Game Boy Color’daki CPU değişimi

    • Game Boy Color’da yeni SoC olan CPU CGB bulunur, ancak SM83 CPU çekirdeği büyük ölçüde korunur
    • En büyük istisna saat hızıdır; yaklaşık 8,38 MHz’e kadar iki katına çıkar
    • Aynı CPU çekirdeğini korumak, geliştiricilerin mevcut programlama bilgisini yeniden kullanmasını sağlar; yeni mimariyi yeniden tasarlama maliyetini ve geriye uyumluluk uygulama yükünü de azaltır
    • CPU CGB iki çalışma modu sunar
      • Normal mode: SM83 yaklaşık 4,19 MHz’de çalışır
      • Dual-speed mode: SM83 yaklaşık 8,38 MHz’de çalışır
    • Bu tercih, 1990’ların sonu ölçütlerine göre eski teknolojiyi kullanmaya devam etmenin bedelini de beraberinde bıraktı
  • Adres alanı ve RAM

    • SM83, 8 bit veri yolu ve 16 bit adres yolunu koruyarak en fazla 64 KB belleği adresleyebilir
    • Bellek haritası Game Pak alanı, WRAM, HRAM, VRAM, joypad/ses/grafik/LCD gibi I/O ve interrupt denetim alanlarından oluşur
    • Orijinal Game Boy ana kartında genel amaçlı bellek olan 8 KB WRAM bulunuyordu; bu NES’in 4 katı kapasitedir
    • SoC içinde 127 B HRAM de vardır
      • LDH komutuyla daha hızlı erişilebilen küçük bir alandır
      • HRAM veri yolu teknik olarak WRAM’den daha hızlı değildir, ancak CPU’nun önceliği vardır
      • DMA çalışırken CPU’nun harici belleğe erişemediği durumlarda önemlidir
    • Game Boy Color, WRAM’i 32 KB’ye çıkardı
      • CPU’nun adresleme yeteneği aynı kaldığından tüm belleği tek seferde bağlamak mümkün değildir
      • Ek 24 KB WRAM’e erişim için bank switching kullanılır
      • Mevcut 8 KB alanın son 4 KB’si 7 bank arasında değiştirilir
      • WRAM bank seçimi için SVBK register’ı kullanılır

Grafik: PPU, LCD, katman yapısı

  • Game Boy grafikleri, CPU’nun hesaplamaları yaptığı ve DMG-CPU SoC içindeki ayrı PPU’nun ekranı render ettiği bir yapıya sahiptir
  • Dahili LCD, 160×144 piksel çözünürlük sunar
    • Siyah-beyaz Game Boy LCD’si yalnızca beyaz, açık gri, koyu gri ve siyah olmak üzere 4 gri tonunu yansıtır
    • Yeşil tonlu LCD nedeniyle ekran hafif yeşil görünür
  • Tüm Game Boy’lar, bölgesel şebeke frekansına bağımlı ev konsollarından farklı olarak 4 adet AA pil ile çalışır
    • CPU saat hızı ve yenileme oranı bölgeye göre değişmez
    • Yenileme oranı 59,7 Hz’dir
  • VRAM ve tile tabanlı render

    • PPU, 8 KB VRAM’e özel olarak bağlıdır ve render için gereken verilerin çoğunu buradan okur
    • Daha hızlı erişim gerektiren bazı veriler PPU içinde saklanır
    • CPU’nun VRAM erişimini PPU yönetir; oyunların VRAM alanını doğru verilerle doldurması gerekir
    • Temel render birimi tile’dır
      • Tile, 8×8 piksel bitmap’tir
      • Her tile 16 bayt yer kaplar
      • VRAM’deki Tile set veya Tile pattern table alanında saklanır
    • Renk, palet aracılığıyla 4 gri tonundan seçilir
    • Siyah-beyaz Game Boy en fazla 3 palet tanımlayabilir, ancak kullanım render edilen katman türüne göre sınırlıdır
  • Arka plan, sprite ve pencere

    • Nihai frame, üst üste binen üç katmandan oluşur
    • Arka plan katmanı 256×256 piksel, yani 32×32 tile haritasıdır
      • Gerçek ekranda yalnızca 160×144 piksel görünür
      • Oyun, gösterilecek arka plan alanını seçip bunu hareket ettirerek kaydırma efekti uygular
      • Arka plan katmanında yalnızca 1 palet kullanılır
    • Sprite’lar bağımsız hareket edebilen tile’lardır
      • Birbirlerinin üzerine gelebilir veya arka planın arkasına yerleştirilebilirler
      • Gösterim önceliği priority özelliğiyle belirlenir
      • Şeffaf renk eklendiğinden fiilen gösterilebilen gri tonları 3 seviyedir
      • İki özel paletten biri seçilebilir
    • Sprite tanımları, PPU içindeki OAM(Object Attribute Memory) içinde saklanır
      • Oyunlar genellikle OAM DMA çağırarak RAM veya ROM’dan OAM’e veri kopyalar
      • DMA aktifken CPU harici belleğe erişemez
      • Her OAM girdisi tile indeksi, X-Y konumu, palet, öncelik ve dikey/yatay çevirme bayraklarını içerir
    • PPU’nun sprite render’ında sınırlar vardır
      • Scanline başına en fazla 10
      • Frame başına en fazla 40
      • Sınır aşılırsa bazı sprite’lar çizilmez
    • Pencere katmanı, tüm ekranı kaplayabilen 160×144 piksel bir haritadır
      • Arka plan ve sprite’ların üzerinde render edilir
      • Kaydırılmaz
      • Kalan tek tile haritası pencere katmanına atanabilir
      • Arka planla aynı paleti paylaşır
      • Şeffaf olmadığı için alttaki katmanları tamamen kapatır, ancak zamanlama tabanlı raster efektleriyle birlikte kısmi olarak kullanılabilir
      • Oyunlar pencere katmanını çoğunlukla can sayacı, skor ve sürekli gösterilen bilgiler için kullanır
  • Frame yenileme ve raster efektleri

    • CPU, PPU VRAM’i okurken tabloları değiştiremez
    • Sistem, PPU boşta olduğunda oluşan interrupt’lar sağlar
      • Horizontal Blank, bir scanline bittikten sonra başlar ve frame’in henüz çizilmemiş bölümünü ayarlamaya izin verir
      • Vertical Blank, tüm scanline’lar bittikten sonra başlar ve bir sonraki frame’in grafiklerini güncellemeye izin verir
      • OAM search, scanline başlangıcında oluşur; PPU ilgili satırın sprite’larını belirlerken OAM dışındaki alanların güncellenmesine izin verir
    • Pencere katmanı ve ek interrupt’lar sayesinde ekran tamamen çizilmeden önce frame’in bir kısmı değiştirilebilir
    • Her scanline’a farklı kaydırma değeri uygulanırsa her satırın farklı hızda hareket ettiği wobble effect oluşturulabilir

Game Boy Color’ın grafik genişletmeleri

  • Game Boy Color’ın PPU’su, orijinal PPU’nun bir üst kümesi gibi çalışır ve uyumluluk için iki çalışma modu sunar
    • CGB mode: Game Boy Color oyunları için görsel iyileştirmeler sağlar
    • DMG mode: Genişletilmiş özellikleri devre dışı bırakan geleneksel moddur
  • Game Boy Color ana kartında 16 KB VRAM bulunur
    • Öncekine göre iki kat kapasitedir
    • CPU adres sınırı nedeniyle 8 KB’lik 2 banktan oluşur
    • VRAM bank geçişi için VBK register’ı kullanılır
  • PPU iki VRAM bankına aynı anda erişebilir
    • Geliştirici, VBK ile VRAM bankını doldurur
    • Tile haritasında tile’ın hangi bankta olduğu belirtilirse PPU bunu işler
  • Ek VRAM, iki kat fazla tile depolama, daha fazla palet saklama, tile metadata genişletme, ek paletler ve efekt referansları için kullanılır
  • Renkler ve ek DMA

    • Game Boy Color’ın yeni PPU’su, 32.768 renk içinden palet tanımlayabilir
    • Geliştirici Palette Memory içinde en fazla 16 renk paleti saklar
      • Arka plan/pencere için 8, sprite için 8 adettir
      • Her palet 4 rengi kodlar
      • Her girdi 16 bit değer olsa da gerçekte yalnızca 15 bit kullanılır
      • Palette Memory CPU tarafından doğrudan adreslenemez; yeni register’lar yazma tamponu görevi görür
    • Arka plan ve pencere tile’ları 8 paletten birine referans verebilir
    • Sprite tile’ları da 8 palete referans verebilir, ancak bir girdi hâlâ şeffaf renk için ayrıldığından 3 renkli palet kısıtı kalır
    • Tile seti iki kat büyüdüğü için VRAM’de iki kat fazla tile saklanabilir
    • Arka plan/pencere tile haritaları da genişletilerek daha fazla metadata taşıyabilir
    • Arka plan ve pencere tile’ları dikey/yatay çevrilebilir; böylece yinelenen grafikleri VRAM’de saklama ihtiyacı azalır
    • CPU CGB’de verileri VRAM’e kopyalayan ek bir DMA birimi bulunur
      • Game Pak veya WRAM’den VRAM’e kopyalama yapabilir
      • General-purpose DMA her zaman aktarım yapabilir, ancak aktarım sırasında bellek erişim önceliğini aldığı için ekran yırtılması oluşabilir
      • H-Blank DMA yalnızca H-Blank sırasında aktarım yaparak ekran artefaktlarından kaçınır, ancak 16 baytlık birimlerle sınırlıdır ve LCD taraması sırasında durur

Ses: 4 kanallı APU

  • Sesten APU(Audio Processing Unit) sorumludur; Programmable Sound Generator yöntemiyle toplam 4 kanal sağlar
  • APU, Game Boy revizyonlarının genelinde değişmeyen bileşenlerden biridir
    • CPU gibi hızlandırılamaz
    • Osilatör hızını değiştirmek ses kalitesini artırmaz, sadece perdeyi değiştirir
    • İşlev artırmak için devre eklemek gerekir ve bu da maliyeti artırır
  • Kanal yapısı

    • İki pulse wave kanalı vardır ve çoğunlukla melodi ile ses efektleri için kullanılır
      • Pulse genişliği değiştirilerek 4 farklı ton sağlanır
      • İlk kanal özel sweep control’e sahiptir
      • Kanal sayısı sınırlı olduğundan oyun sırasında ses efekti çıktığında melodi kesilebilir
    • Üçüncü kanal kullanıcı tanımlı dalga biçimini destekler
      • 32 adet 4 bitlik örnekten oluşan dalga biçimi wavetable’da saklanır
      • Ses seviyesi ve frekans denetlenebilir
    • Bir noise kanalı vardır
      • Beyaz gürültü gibi duyulan rastgele dalga biçimleri topluluğudur
      • Oyunlarda çoğunlukla vurmalı çalgılar veya ortam efektleri için kullanılır
      • clean static ve robotic static olmak üzere iki ton sunar, frekans ayarı da mümkündür
  • Mikser ve genişletilmiş ses pini

    • Mikser stereo çıkış sağlar; kanallar sola ve sağa yerleştirilebilir
    • Dahili hoparlör mono olduğundan panning yalnızca kulaklık çıkışında duyulur
    • Mikser donanımı kartuşun özel pinine de bağlıdır
      • Kartuş ek donanımla analog ses çıkarırsa ek kanalları stream edebilir
      • Piyasaya çıkan oyunlar bu özelliği kullanmadı
      • Bu özellik Game Boy Advance döneminde kaldırıldı

Boot ROM ve çalışma biçimi

  • Game Boy, NES/Famicom gibi doğrudan oyuna boot etmek yerine önce dahili 256 bayt ROM’dan boot eder
  • Temel boot süreci şöyledir
    • Güç açıldığında CPU 0x0000 adresinden okumaya başlar
    • RAM ve APU ilklendirilir
    • Kartuş ROM’undaki Nintendo logo grafiği Display RAM’e kopyalanır ve ekranın üst kısmına çizilir
    • Kartuş yoksa veya doğru takılmamışsa logo bozuk tile’lar olarak görünebilir
    • Logo aşağı kaydırılır ve ikonik ses çalınır
    • Oyundaki Nintendo logosu, konsol ROM’u içindeki logo ile karşılaştırılır
    • Kartuş ROM başlığına hızlı bir checksum uygulanır
    • Kontrol başarısız olursa konsol durur
    • Konsol ROM’u bellek haritasından kaldırılır
    • CPU oyunu çalıştırmaya başlar
  • Ekranda gösterilen Nintendo logosu VRAM’den silinmez; oyun bu logoya animasyon veya geçiş efekti uygulayabilir
  • Game Boy Color’daki boot değişimi

    • Game Boy Color’ın ROM boyutu 2 KB’ye çıkar
    • Boot sekansı, takılı oyunun Game Boy’a özel mi yoksa Game Boy Color oyunu mu olduğunu kontrol eder
    • Kartuş ROM’undaki belirli metadata’yı denetler ve sonuca göre DMG veya CGB modu etkinleştirme register’ını ayarlar
    • DMG oyunu takılırsa boot programı Palette RAM’i hesaplanmış paletlerle doldurur
      • Oyun metadata’sına bağlı basit bir algoritma kullanır
      • Siyah-beyaz oyunların Game Boy Color’da renklendirilmiş görünmesinin nedeni budur
      • Kullanıcı, boot sırasında düğme kombinasyonlarıyla seçili paleti değiştirebilir
    • Nintendo logosu HRAM’e de kopyalanır
    • Checksum aşaması HRAM’deki logonun yalnızca ön yarısını denetler

Game Pak, oyun geliştirme ve dış iletişim

  • O dönemde performansın önemli olduğu oyunlar, yüksek seviyeli dil derleyicilerinin olgunluğu yeterli olmadığından çoğunlukla assembly language ile yazılırdı
  • Ticari oyunlar, Nintendo’nun Game Boy kartuşu olan Game Pak ile dağıtıldı
  • Temel depolama alanı, adres alanı kısıtı nedeniyle en fazla 32 KB’dir
    • Memory Bank Controller, yani mapper kullanıldığında daha büyük oyunlar mümkündür
    • Piyasaya çıkan en büyük Game Pak, orijinal Game Boy’da 1 MB ROM, Game Boy Color’da 8 MB ROM içeriyordu
  • Bazı Game Pak’ler gerçek zamanlı saat, ek SRAM ve kayıtları korumak için harici pil içerir
  • Color dönemindeki kartuş türleri

    • Game Boy Color’ın çalışma modu eklenince oyunlar üç türe ayrıldı
      • Game Boy: Tüm Game Boy modelleriyle tamamen uyumludur ve her zaman DMG modunda çalışır
      • Game Boy Color enhanced: Siyah-beyaz modellerle uyumluyken Game Boy Color’da CGB modunda görsel olarak geliştirilir
      • Game Boy Color exclusive: Yalnızca Game Boy Color ile uyumludur ve bu donanımdan yararlanacak şekilde optimize edilir
    • Üç türün ayırt edilmesine yardımcı olan resmi renkleri vardı
    • Pokémon ve Donkey Kong gibi bazı oyunlar farklı tasarım kullandı
  • Link kablosu ve kızılötesi

    • Game Boy oyunları ilk kez Game Boy Link kablosu üzerinden harici donanımla iletişim kurabildi; böylece çok oyunculu oyun ve aksesuar kullanımı mümkün oldu
    • Link kablosu konsolun 6 pinli alt konektörüne bağlanır; arayüz SPI(Serial Peripheral Interface) protokolünü kullanır
      • Bir Game Boy master olarak saat sinyalini sürer, diğeri slave olur
      • Her aktarımda master ve slave 1 adet 8 bit paket değiştirir
      • Orijinal Game Boy’un aktarım hızı 8 Kbit/s, yani 1 KB/s’dir
      • Game Boy Color, high speed modunda en fazla 512 Kbit/s, yani 64 KB/s’ye ulaşabilir
    • Nintendo, en fazla 4 Game Boy’un aynı anda veri değiş tokuş etmesi için 4-Player Adapter’ı da çıkardı
      • Temel SPI korunur
      • Adaptör master olarak çalışır ve oyunun uyması gereken ek iletişim katmanını uygular
    • Game Boy Color’da kızılötesi alıcı-verici bulunur
      • LED ve fototransistörden oluşur
      • Pokémon Gold gibi oyunlarda kablosuz veri değişimi için kullanıldı
      • Sistemin kendisi iletişim protokolünü uygulamaz
      • Tek bir RP register’ı IR sensör çalışmasını, gönderim bitini ve son alınan biti kodlar
      • Nintendo, resmi Game Boy Developer Manual’da referans uygulama sağladı

Kopya koruma yapısı

  • Konsol, oyunu doğrudan çalıştırmak yerine önce çeşitli kontroller yaparak onaylanmamış kartuşların çalışmasını engeller ve kartuşun doğru takılıp takılmadığını da kontrol eder
  • Oyunun denetimi geçebilmesi için ROM başlığı içinde Nintendo logosunun tile biçiminde bir kopyasını barındırması gerekiyordu
    • Nintendo bu sayede telif hakkı ve marka hakkı yasalarını dağıtım kontrolünde kullanabildi
  • Daha sonra Sega v. Accolade davası, bu gerekliliği karşılamak için telifli logonun kullanılmasının adil kullanım olduğuna hükmederek şirketlere hak tanıdı
  • Oyun içinde ek kopya koruma önlemleri de uygulanabiliyordu
    • Bootleg’lerde genellikle daha büyük SRAM boyutu kontrol edilirdi
    • Oyun sırasında rastgele zamanlarda ROM checksum’ı yapılarak kod değişikliği tespit edilirdi

1 yorum

 
GN⁺ 2023-12-28
Hacker News yorumları
  • Orijinal Game Boy geliştirilirken gerçekten etkileyici olan nokta, o dönemde Gunpei Yokoi ekibine büyük bir güvensizlik duyulmasıydı.
    “Otobüste ya da tuvalette neden oyun oynayasın ki, rahatsız olur. Evde aileyle/arkadaşlarla TV’nin karşısındaki koltukta oynarsın; en yeni deneyim için de oyun salonuna gidersin. Kim pil değiştirip birkaç gri tonuna bakmak ister ki?” tarzı düşünülüyordu.
    Onların vizyonu solmuş teknolojiyi alıp kullanımı kolay bir cihaz ve basit, kısa oyunlarla paketlemekti; bence o ekip fiilen mobil oyunları başlatmış oldu.

    • Bu biraz revizyonist tarih gibi.
      1970’lerin çocukları Mattel’in taşınabilir LED oyunlarını zaten otobüste ve tuvalette oynuyordu; bende de en az 6, belki 8 tane vardı. En erken örneklerden biri 1976’daki https://en.m.wikipedia.org/wiki/Mattel_Auto_Race.
      Daha popüler olanlar Amerikan futbolu, beyzbol, basketbol gibi spor oyunlarıydı; kuralları da Auto Race’ten çok daha karmaşıktı: https://www.ebay.com/p/2255363696
      1980’lerin başında Dungeons and Dragons gibi pek çok taşınabilir LCD oyun da çıktı: https://en.m.wikipedia.org/wiki/Dungeons_%26_Dragons_Compute... (1981)
      “Mattel, oyunun hemen tükendiğini belirtti.” Kartuş kullanmıyordu ama özellikle LCD oyunlar ucuz ve küçük olduğu için birkaç tane edinmek zor değildi.
      Günümüzde bunları Game Boy kuşağının taşınabilir cihazlarından ayırmak için “handhelds” deniyor, ama hatırladığım kadarıyla o dönemde böyle adlandırılmıyorlardı. Mesele şu: 1970’lerde ve 1980’lerin başında zaten başarılı bir pazar vardı; Nintendo bunu yaratmadı, zaten başarılı olan kartuş tabanlı konsol pazarını taşınabilir oyun pazarıyla birleştirip geliştirdi.
    • Game & Watch daha önceydi ve o da Gunpei Yokoi’ydi. En azından benim hatırladığım kadarıyla bunu mobil oyunların başlangıcı saymak mümkün.
    • Game Boy çıkmadan yaklaşık 6 yıl önce içinde araba yarışı oyunu olan bir saatim vardı.
  • Game Boy Color’ın eklendiğini gördüm ama kartuş boyutunun yalnızca 1 MB olduğu kısmı düzeltilmemiş gibi. Bazı GBC oyunları 4 MB’a kadar çıkıyor.
    Ayrıca kısa videolar ve high color görseller içeren bir tren oyununun 8 MB’lık sürümü de var.

    • Evet, 電車でGO!2 高速編, diğer adıyla Densha de Go! 2 Kōsoku-hen.
      https://www.youtube.com/watch?v=S62dSVmLPU0
    • Adil olmak gerekirse, DMG oyunlarının 4 MB’a ulaşmasını engelleyen özel bir şey de yoktu bence.
      Kartuşun pencere boyutu her iki durumda da temelde 32 KB aynı; 4 MB da olsa 1 MB da olsa bank switching kartuş tarafında hallediliyor.
  • Game Boy, şimdiye kadar çıkmış konsollar arasında açık ara en sevdiğim cihaz. Şu anda assembly diliyle bir Game Boy oyunu yapıyorum; bir pinball dungeon crawler.
    Donanımı anlamak kolay ve kısıtlamalar insanı yaratıcı olmaya zorluyor.

  • Florent Gorges yalnızca Game Boy’u konu alan bir kitap yayımladı; ne yazık ki İngilizce çevirisi yok gibi. İspanyolca baskısını aldım ve geliştiricilerle yapılmış özel röportajlar içeriyor.
    https://www.amazon.es/Historia-Nintendo-Vol-4-1989-1999-INCR...

  • Bugünkü demokratikleşmiş donanım seviyesiyle uygun parçaları ve kablolanmış bir PCB’yi satın alıp Game Boy’u yeniden yapmak mümkün mü?

    • Bunu deneyenler var ama en azından orijinal CPU’yu nakletmek gerekiyor. O çipler başka amaçlar için üretilmiş değildi: https://www.reddit.com/r/Gameboy/s/FEAH2VhBRT
      FunnyPlaying yakın zamanda makul fiyatlı FPGA tabanlı bir sürüm çıkardı: https://funnyplaying.com/products/fpgbc-kit?variant=40858870...
      Game Boy Advance için üzerinde bileşenleri takılı yeni anakartlar da var; bunlara CPU ve RAM’i nakletmek gerekiyor.
    • Çıkış döneminin süper bilgisayarı kadar hızlı bir GameBoy olması sorun değilse, ARM tek kart bilgisayar üzerinde Linux’ta bir GameBoy emülatörü çalıştırıp çıktıyı OLED ekrana veren bir düzeni 150 doların altında ve biraz irade gücüyle kurmak mümkün gibi.
      Donanıma sadakat istiyorsanız, elde tutulabilir boyutta tek bir cihaz yapmanın maliyeti “demokratikleşmiş” fiyat aralığına girmekte zorlanır gibi.
    • Güncel yaklaşım FPGA kullanmak. Analogue Pocket’a bakabilirsiniz; başka kitler de var.
    • En fazla eski Game Boy’lardan sökülmüş parçaları satın alıp yeniden monte etmek olur gibi. Bir yerlerde FPGA Game Boy implementasyonu gördüğümü sanıyorum; buna en yakın yöntem o olabilir.
  • Game Boy mimarisini öğrenip ne yapacaksın, dünyayı mı hackleyeceksin?

    • İşletim sistemi olmadan doğrudan donanımla temas ederek çalışan basit bir yapı olduğu için gömülü programlamaya giriş için iyi bir kapı ve ayrıca eğlenceli.