Destekleyici görüntüler
Giriş
Sega Dreamcast, hem oyun geliştiricilerine hem de konsol oyuncularına hitap etmek için selefine (Satürn) göre birçok yeni özellik sundu. Bu Sega’nın konsol pazarını fethetmek için son girişimi olsa da, Dreamcast’te öncülük edilen bazı teknolojiler devam etti ve gelecekteki ana akım cihazlara taşındı.
İşlemci (CPU)
Hitachi için işler sorunsuz ilerliyordu, ikonik SuperH çipleri birden fazla müşteri bulmuştu ve şirket artık serinin dördüncü sürümü için hazırdı. Yeni girişleri, gömülü yetenekleri 3D oyunların sahip olduğu işlevsellikle birleştirecek.
SuperH’yi ilk benimseyenlerden biri olan Sega, yeni konsollarına güç sağlamak için şaşırtıcı olmayan bir şekilde Hitachi’nin son sevkiyatını seçti. Bu nedenle Dreamcast’te SH-4 CPU bulunmaktadır ve bu işlemci 200 MHz [1] hızında çalışmaktadır. Ayrıca, bu sefer işleri yoluna koymak için, sadece bir tam donanımlı CPU var.
Teklif
Bununla birlikte, bu yeni işlemci hakkında ilginç olan nedir?
Öncelikle, SH-4 önceki modellerin bir süper seti olarak devam ediyor, yani 32-bit RISC mimari, 5 aşamalı pipeline ve 16-bit instruction set dahil olmak üzere SuperH serisinin mevcut tüm özelliklerini miras alıyor. Ne yazık ki, aynı zamanda control hazards’ın da mirasçısıdır.
Bunun da ötesinde, yeni nesil CPU olarak, gömülü uygulamaların kapsamının ötesine geçen birçok iyileştirme sunuyor [2]:
- Bir 2-way superscalar pipeline: CPU’nun boru hattının her aşamasında birden fazla komutu (bu durumda iki) işleyebildiği yeni bir paralellik tekniği. Bu da saniyede daha fazla talimatın yürütülmesine neden olur.
- Perde arkasında, CPU iki talimatı iki farklı (kullanılabilir) yürütme birimine dağıtıyor. Bu nedenle - çok küçük bir grup hariç - tüm komutların paralelleştirilmesi için farklı türlerde (yani branching, aritmetik, vb.) olması gerekir [3]. Aksi takdirde, yalnızca sıralı olarak yürütülebilirler. Her ne olursa olsun, SH-4 aynı zamanda asla paralelleştirilemeyecek bir talimat alt kümesi de sergiler, çünkü bunu mümkün kılmak için çok fazla bağımlılık içerirler.
- 8 KB instruction cache ve 16 KB data cache: Konsollar veri önbelleğinden daha fazla komut önbelleği içerme eğiliminde olduğundan bu oran oldukça ilginçtir. Ancak SH-4, veri önbelleğinin iki bölüme ayrılmasına izin verir: 8 KB Scratchpad (hızlı RAM) ve 8 KB veri önbelleği.
Özel bir çalışma
Bir oyun konsolu CPU’sunun ortak işleri arasında bir oyunun mantığını idare etmek, düşman yapay zekasını çalıştırmak ve GPU’yu instruction’la beslemek yer alır.
Dreamcast ile GPU’nun yalnızca rasteriser görevlerini yerine getirdiğini göreceksiniz. Dolayısıyla, CPU’nun grafik işlem hattının büyük bir kısmına dahil olması gerekir. Bu, CPU’nun büyük miktarda geometri verisini işleyeceği anlamına gelir (perspektif dönüşümlerini hesaplamak gibi). Şimdi, CPU’nun bu rolü sürdürebilmesini sağlamak için Sega ve Hitachi işbirliği yaparak SH-4’e iki önemli eklenti eklediler.
İlk eklenti özel bir 64-bit Kayan Nokta Birimi (FPU). Bu bileşen, IEEE-754 standardına uyarak 32 bit ondalık sayıları (‘tek hassasiyetli’ veya ‘float’ olarak adlandırılır) veya 64 bit olanları (‘çift hassasiyetli’ veya ‘double’ türü) hesaplar. Register dosyası otuz iki 32 bitlik register’dan oluşur, ancak bunlar aynı zamanda on altı 64 bitlik register’dan oluşan farklı bir grupta birleştirilebilir, bu da birimin double işlem yapabilmesini sağlar.
Bu yeterli gelmediyse, Hitachi FPU ile bir adım daha ileri gitti ve bu kez sekiz 128 bitlik register’dan oluşan başka bir register grubu oluşturmak için ekstra logic uyguladı. İçinde her bir register artık dört adet 32 bit float ya da başka bir deyişle 128 bit vektör olarak saklamaktadır. Bu format grafikle ilgili işlemler için idealdir.
Yeni vektörleri iyi bir şekilde kullanmak için FPU, Saturn Control Unit’in sağladığı gibi bunları çalıştırmak için özel instruction’lar içerir, ancak sektör artık daha standart hale gelmiştir. Yeni talimatlar genellikle Single Instruction Multiple Data (SIMD) olarak bilinen bir yapıya sahiptir ve aşağıdaki cebirsel işlemleri gerçekleştirebilir:
- Nokta çarpım.
- Karelerin toplamı.
- Matris çarpımı.
İkinci eklenti ise SH-4’ün artık 64 bit genişliğinde olan ve CPU’nun 32 bitlik değer çiftlerini aynı anda aktarabilmesini sağlayan harici bus’ıdır. Bu, bu CPU’nun genel performansına katkıda bulunan bir başka gelişmedir.
Bellek & erişim
Dreamcast’lerde 16 MB SDRAM bulunur ve 100 MHz bus (CPU hızının yarısı) kullanılarak doğrudan CPU’ya bağlanır.
Buna karşılık, belleğin data bus’ı sadece 32 bit genişliğindedir [4]. Bu, CPU’nun 64-bit data bus’ının boşa gitti anlamına mı geliyor? Hayır, çünkü RAM iki adet 8 MB bank kullanılarak takılmıştır. Yani, her bir çip CPU’nun data bus hatlarının yarısına bağlıdır.
Bu belleğe erişmek için CPU, sanal adresleme için özel bir Memory Management Unit veya ‘MMU’ içerir, bu CPU’nun fiziksel bellek adres alanı 29 bit genişliğinde olduğu için bu yararlıdır. Ayrıca, dört Translation Lookaside Buffers (TLB’ler) sayesinde programcılar 32 bit adresleri performans kaybı yaşamadan kullanabilirler.
Şimdi, adresleme için sadece 29 bit gerektiğinden, fazladan üç bit bellek korumasını kontrol eder, sırasıyla bellek haritasını değiştirir ve önbelleği atlatır [5] [6].
Nihayetinde, bu özelliklerin kullanılıp kullanılmayacağına programcı karar verir. Bu sistem için oyunlar kesinlikle bellek korumasına ihtiyaç duymaz ve MMU’nun açılışta manuel olarak etkinleştirilmesi gerekir.
UMA yok ama…
Bu sistem, tanınmış bir rakibi gibi katı Unified Memory Architecture veya UMA etrafında tasarlanmamış olsa da, G/Ç erişimini GPU’ya devretmektedir. Bu da CPU’nun kendi özel RAM’i ya da seri arayüzü (ki bunlar da bağlı) dışında bir şey alması gerektiğinde GPU’dan talepte bulunması ve gerekirse beklemesi gerektiği anlamına geliyor.
Bu CPU aynı zamanda Paralel I/O veya ‘PIO’ olarak adlandırılan ve aynı anda birden fazla I/O konumunu manipüle etmek için kullanılan benzersiz bir işleve sahiptir. Sega bu pinleri CPU’nun GPU’nun video modunu manipüle edebilmesi için bağladı (daha fazla ayrıntı ‘Grafikler’ bölümünde açıklanmıştır).
Yolun sonu
Bahsedilen tüm avantajlara rağmen, korkarım ki SuperH serisi son büyük kullanıcısı Dreamcast’in mağazaları terk etmesinden sonra önemli bir ilerleme kaydedemedi. SH-4’ün popülerliğinden sonra Hitachi (ya da şu anki sahipleri olan Renesas Electronics) aynı başarı seviyesini tekrarlayamadı ve gömülü/el tipi pazarın o zamandan beri ARM’ı tercih ettiğini düşünürsek (StrongARM sayesinde), Renesas’ın Hitachi’nin buluşunu yakın zamanda sürdüreceğini düşünmüyorum.
Ancak bilgisayarla ilgili iyi olan bir şey varsa o da teknolojik ilerlemenin markaların ve şirketlerin sınırlarının ötesine yayılma eğiliminde olmasıdır. Örneğin, SH’nin sıkıştırılmış komut tekniği ARM’nin Thumb modu (ikincil bir 16-bit ISA) ile devam etmiştir [7]. Ayrıca, 2012 yılında, ‘J2’ [8] adı verilen modern bir SuperH uyumlu CPU üretmek için gönüllülük esasına dayalı bir proje başlatılmıştır.
Grafikler
GPU paketi, 100 MHz hızında çalışan Holly adlı özel yapım bir çiptir. Önceki şirket içi tasarımların aksine Sega, rekabetçi bir 3D hızlandırıcı sağlamak için VideoLogic (şimdi Imagination Technologies olarak biliniyor) ile ortaklık kurdu.
Holly’nin içinde VideoLogic’in PowerVR2 (‘PowerVR Series2’ ve ‘CLX2’ olarak da anılır) adlı özel grafik devresini bulabiliriz, önceki PowerVR GPU’larını temel alır ancak Dreamcast için uyarlanmıştır.
Mimari
VideoLogic, 3D motorunun yapımı için Tile-Based Deferred Rendering (TBDR) adı verilen alternatif bir yaklaşım seçti.
TBDR, tüm kareyi bir kerede oluşturmak yerine (geleneksel Immediate Mode Renderers veya ‘IMR’nin yaptığı gibi [9]), oluşturma alanını ’karo’ adı verilen birden çok bölüme ayırır. Ardından, her bir karo üzerinde ayrı ayrı render işlemini gerçekleştirir ve sonuç nihai kareyi oluşturmak için birleştirilir [10].
Bu yenilikçi tasarım ilginç avantajları da beraberinde getiriyor:
- Büyük ölçüde paralelleştirilebilir, bu da bant genişliğini ve güç kullanımını önemli ölçüde azaltır.
- Çokgenleri otomatik olarak önden arkaya doğru sıralayarak ve ardından boru hattının ilk aşamalarında z-testleri gerçekleştirerek görünürlük sorununa akıllıca bir çözüm uygular. Bu görevlerin kombinasyonu yalnızca orijinal sorunu çözmekle kalmaz, aynı zamanda kaynakları boşa harcayan ve performansı düşüren aşırı çizimi (gizli çokgenlerin pikselleştirmesi) de önler..
Imagination’ın bu verimli teknolojiyi ileriye taşıyarak ilk nesil iPhone, iPhone 3G, Nokia N95 ve Dell Axim x51 gibi inanılmaz sayıda cihaza güç veren Seri 4 PowerVR çekirdeklerini üretmesi hiç de şaşırtıcı değil.
Mimarisi
Dreamcast’in GPU’sunun iki ana bileşenine bir göz atalım [11]:
Tile Accelerator
Render işlemi başlamadan önce, Tile Accelerator olarak bilinen bir bileşen ön işleme gerçekleştirir. İşlem, geometrinin render edileceği birkaç 32x32 karo kutusu tahsis ederek başlar.
Ardından, Tile Accelerator:
- CPU tarafından verilen geometri verilerini ve çizim komutlarını alır (DMA veya geleneksel aktarımları kullanarak).
- Bu verileri dahili bir formata dönüştürür.
- Geometriyi koordinatlarına göre her birini dağıtır. Geriye kalan geometri ise atılacaktır.
- Ortaya çıkan Display List’lerini oluşturur.
Bu Display List’ler daha sonra 3D motoru tarafından işlenir: PowerVR2.
PowerVR2 Çekirdeği
Grafiklerin hayata geçirildiği yer burasıdır, Tile Accelerator’dan alınan Display Lists çekirdeğe dahili bir çerçeve arabelleği kullanarak tek bir karenin geometrisini oluşturmasını söyler. Süreç şöyledir:
- Image Synthesis Processor (Görüntü Sentez İşlemcisi) veya ‘ISP’ ilkelleri (üçgenler veya dörtlüler) alır ve görünmeyen çokgenleri kaldırmak için Hidden-Surface Removal (Gizli Yüzey Kaldırma işlemi) gerçekleştirir. Ardından, Z tamponlarını ve şablon tamponlarını hesapladıktan sonra veriler, diğerlerinin arkasında görünecek çokgenlerin işlenmesini önlemek için Depth Testing (Derinlik Testi) ve bir 2B çokgenin (Mask (Maske) olarak da adlandırılır) arkasında yer almaları halinde görünmeyecek geometriyi ayıklamak için Stencil Tests (Şablon Testleri) işemlerinden geçer.
- Bu testlerin boru hattının başlangıcında nasıl etkin bir şekilde gerçekleştirildiğine dikkat edin. Bunun aksine, late z-buffering kullanan önceki konsollar geometriyi pipeline’ın sonunda atmaktadır. ISP yaklaşımı, sonunda çöpe gidecek geometrinin işlenmesini önler [12] ve böylece kaynak tasarrufu sağlar.
- Texture and Shading Processor (Doku ve Gölgelendirme İşlemcisi) veya ‘TSP’ karo alanı üzerinde renklendirme, gölgelendirme ve çoklu efektler uygular.
- Dokular karo dışa aktarılana kadar uygulanmaz, yani ortaya çıkan fazla çizim (varsa) dolgu oranını düşürmez.
İşlem tamamlandıktan sonra, işlenen karo VRAM’deki ana çerçeve arabelleğine yazılır. Bu işlem tüm karolar bitene kadar tekrarlanır. İşlem tamamlandığında, ortaya çıkan çerçeve arabelleği Video kodlayıcı tarafından seçilir ve video sinyali aracılığıyla gönderilir.
Büyük resim
Açık mimari farkın yanı sıra, Texture and Shading Processor, bu konsolun eski Saturn’den ne kadar uzak olduğu hakkında bir fikir veren birçok yetenekle birlikte gelir. İşte bazı önemli örnekler:
- Alpha blending: Şeffaflık efektleri elde etmek için üst üste binen katmanların renklerini birleştirir.
- Bu sistemde saydamlık uygulamak için kullanılan işleme sıralamadan order-independent transparency denir. Algoritma, renklerini karıştırmadan önce ilkelleri otomatik olarak sıralar ve bu işlem render işlemini yavaşlatsa da, tüm sıralamayı manuel olarak yapmak için oyunun kendisine güvenilmesini önler. Bu nedenle Dreamcast oyunları şeffaf nesneleri görüntülemede mükemmeldi.
- Karo tabanlı sistemle birlikte, siparişten bağımsız şeffaflık önceki aksaklıkları tamamen giderir.
- Mip-Mapping: Gerekli ayrıntı düzeyine bağlı olarak dokunun küçültülmüş bir sürümünü otomatik olarak seçer. Bu, kameradan uzakta görülebilecek büyük dokuların işlenmesini önlemek için yapılır (bu işlem gücü kaybı olur ve örtüşme üretir).
- Environment mapping: Dokular üzerinde yansımalar uygular.
- Bilinear, Trilinear ve anizotropik filtreleme: Bu, dokuları yumuşatmak ve pikselleşmeyi önlemek için kullanılan farklı algoritmaları ifade eder. Bunlar ’en kötü’den ’en iyi’ye doğru sıralanır ve her birinin sonuç kalitesi, gereken hesaplama miktarıyla doğru orantılıdır.
- Bu Saturn’e göre büyük bir adım, çünkü önceki model herhangi bir doku filtresi sağlamıyordu!
- Bump mapping: Fazladan poligon harcamadan yüzeylerdeki çıkıntıları simüle eder.
Detay Kazanma
Holly artık selefine göre ~10 kat daha fazla poligon çizebiliyor, işte model tasarımlarının artık o kadar da sınırlı olmadığını gösteren bir Önce ve Sonra örneği. Onları kurcalayın ve ne kadar fark olduğunu görün!
Tel Çerçeve | Yüzey | Dokular |
Etkileşime girmek için dokunun |
286 üçgen (veya 185 dörtgen).
Tel Çerçeve | Yüzey | Dokular |
Etkileşime girmek için dokunun |
1001 üçgen.
Video Modları
Video sistemi birden fazla ekran türünü ve formatı destekleyecek şekilde tasarlanmıştır, bu nedenle video kodlayıcı aşağıdaki sinyal türlerini destekleyen tek şekilli bir sokete çıkış verir:
- Kompozit: Video görüntülemek için gereken üç sinyali (chroma, luma ve sync) tek bir sinyalde birleştirir ve yalnızca tek pimli bir kablo gerektirir.
- Bu, RCA bağlantılı eski PAL ve NTSC TV’lerde kullanılır.
- S-Video: Cromayı ayrı tutarken luma ve sync’i birleştirir (yani iki video hattı).
- RGB: Ayrı Kırmızı-Yeşil-Mavi sinyalleri gönderir ve aralarından seçim yapabileceğiniz farklı senkronizasyon türleri sağlar (kompozit senkronizasyon veya kompozit veya S-Video videodan çıkarılmış).
- Bir SCART kablosu bu tipi kullanacaktır.
- VGA: RGB’yi iki senkronizasyon sinyali (yatay ve dikey) ile birleştirerek toplamda beş video hattı elde eder. Bu, aşamalı modda mümkün olan en yüksek çözünürlüğün (720x480) görüntülenmesini sağlar (bu nedenle, bu mod genellikle ‘480p’ olarak adlandırılır). VGA aslında bir süredir bilgisayar monitörleri tarafından kullanılan standart format/ortam olmuştur.
- Bu türü kullanmak için Sega ekstra bir aksesuar olarak bir VGA adaptörü sağlamıştır.
Şimdi, Dreamcast bunların hepsini aynı anda kodlayamaz, bu nedenle GPU ve Ses işlemcisi, istenen sinyali oluşturmak için hangi video/ses veri yollarının etkinleştirileceğini koordine eden Görüntü Modu adlı bir register içerir. CPU, takılan kablonun türünü algılar (video konektörünün hangi ‘seçme bitlerinin’ aktif olduğunu kontrol ederek) ve GPU’ya gerekli değerleri yazar. Son olarak, değerler Ses işlemcisine iletilir.
VGA kesinlikle aşamalı bir sinyal türü olduğundan (geleneksel interlaced sinyalin aksine), yalnızca interlaced video için tasarlanmış oyunlarda bazı uyumluluk sorunları ortaya çıkmıştır. Bu oyunların kodlarında açıkça belirtilmiştir ki oyun, VGA üzerinde görüntülenmeyecek ve kullanıcı VGA kablosunu başka bir türle değiştirene kadar CPU oyunu engelleyecektir.
Ses
Ses işlevselliği, Yamaha tarafından üretilen özel bir çip olan AICA tarafından yönetilir. Bu, Satürn’de kullanılan SCSP’nin geliştirilmiş bir versiyonudur ve dört bileşenden oluşur:
- Sound Integrated Circuit (Ses Entegre Devre) veya ‘IC’: Ses sinyalini üreten ve üzerine efekt uygulayan bir dizi modülü (sentezleyici, DSP ve mixer) içeren bir devre. 64 PCM kanalına, 16 veya 8 bit çözünürlükle ve 44.1 kHz örnekleme hızlarını destekler. Genel olarak, bu ses çalmak için en uygun kalitedir.
- Ayrıca, CPU’nun iş yükünü azaltmak için bir ADPCM çözücüsü içerir.
- İlginçtir ki, bir MIDI enstrümanı bağlamak için iki MIDI pini de sağlar, ancak bu geliştirme sırasında kullanılmak üzere tasarlanmıştır.
- 2 MB SDRAM: Ses verilerini ve programları depolar. Ana CPU tarafından DMA kullanılarak doldurulur.
- Bir ARM7DI yaklaşık 2,82 MHz hızında çalışır: Ses IC’sini kontrol eder. Bu CPU, depolanan SRAM’deki küçük bir yazılımı (sürücü denilen) başlatarak programlanır. Bu yazılım, ses verilerini yorumlar ve buna göre Ses IC’yi manipüle eder.
- Eğer merak ediyorsanız, benzer bir CPU Game Boy Advance’de de bulunmaktadır.
- Bellek Denetleyicisi: 2 MB SDRAM’in arayüzünü oluşturur.
Geliştirmeye yardımcı olmak için, resmi SDK farklı ihtiyaçlar (sequencing, decoding, vb.) için birden fazla ses sürücüsü içeriyordu.
Evrim
Mega Drive/Genesis günlerinden bu yana çok yol kat ettik, ses sentezinde ne kadar ilerleme kaydedildiğini göstermek için, burada aynı kompozisyonu kullanan biri Mega Drive ve diğeri Dreamcast için iki oyun örneği var:
Bir önceki model, anında ses sinyalleri üretmek için FM sentezi gerçekleştirir.
Yeni ses alt sistemi PCM örneklerini sorunsuz bir şekilde işler.
Şarkı çalarken iki konsol arasında geçiş yapmak istiyorsanız bu widget’ı deneyebilirsiniz:
MegaDrive / Genesis | Dreamcast | |
Etkileşime girmek için dokunun |
Dreamcast: Sonic Adventure (1999).
Açıklama
Sonic Adventure’ın bestecileri bir FM çipi programlamak yerine müziklerini kendi bünyelerinde üretmiş ve daha sonra CRI Middleware tarafından geliştirilen kayıplı bir format olan ’ADX’e kodlamışlardır. Dolayısıyla, 64 PCM kanalından yalnızca ikisini (stereo) kullanır.
ADX sıkıştırması, oyunun bellek veya bant genişliği sınırlaması olmadan GD-ROM’dan veriyi çözümlemesine ve akışa geçirmesine olanak tanır. Ayrıca, ana CPU ve ARM7’nin iş yükünü dengelemek için birden fazla yaklaşım mevcut olduğundan, ilgili sürücü birçok şekilde uygulanabilir.
Uyanık Kalma
Bir şekilde, bu çip aynı zamanda BIOS’a Real Time Clock (Gerçek Zaman Saati) (RTC) sağlamaktan da sorumludur, ayrıca AC gücü olmadan çalışmaya devam etmek için bir saat piline bağlıdır.
İşletim Sistemi
Bir BIOS depolayan 2 MB ‘System ROM’u vardır. Bu, CPU’nun başlatılırken okuduğu ilk konumdur. ROM, CPU’ya oyunu başlatma ya da shell’i gösterme talimatı veren kodu içerir.
Dahası BIOS, GD-ROM sürücüsünden okuma gibi I/O işlevlerini [13] basitleştirmek için oyunların kullanabileceği rutinler de içerir.
Etkileşimli shell
Sega Saturn’de olduğu gibi, geçerli bir oyun diski takılı değilse, konsol görsel bir shell başlatacaktır.
Shell, kullanıcının aşağıdaki gibi temel ancak gerekli görevleri yerine getirmesini sağlamak için basit bir grafik kullanıcı arayüzü içerir:
- Henüz başlamadıysa oyunu başlatır.
- VMU’da depolanan kayıt verilerini değiştirmek (bu cihaz hakkında daha fazla ayrıntı daha sonra açıklanmaktadır).
- Takılı bir Ses CD’si varsa müzik çalar.
- Tarih, saat, ses ve benzeri gibi belirli ayarları değiştirmek.
Windows CE
Dreamcast’in duyurulmasından bu yana, konsolun Windows CE’yi çalıştırabileceği söyleniyordu. Hatta sadece konsolun ön kasasına baktığınızda bile Microsoft’un damgasını görebilirsiniz… Burada ne oluyor?
Her şeyden önce, ‘Windows CE’ tam olarak nedir? Bu, Microsoft’un 90’lı yılların ortalarında geleneksel PC pazarının ötesindeki bölgeleri fethetmek için giriştiği pek çok projeden sadece biri. x86’dan daha verimli CPU mimarileri ve el bilgisayarlarının ortaya çıkışının ardından, Microsoft’ta yeni bir ekip Windows ekosistemini bu yeni cihazlara taşımakla görevlendirildi [14].
Bu, Windows CE’nin ortaya çıkmasına yol açtı: mevcut Windows API’lerinin, geliştirme araçlarının ve hizmetlerinin bir alt kümesini sağlayan, sıfırdan geliştirilmiş eksiksiz bir işletim sistemi.
Windows 95 ya da NT’nin aksine, yeni sistem aşağıdaki avantajları sunuyordu:
- SuperH ve hatta NEC/MIPS VR4300 (Nintendo 64 tarafından kullanılan) dahil olmak üzere çok çeşitli CPU mimarilerinde [15] çalıştı.
- Sınırlı bir güç kaynağı (AA piller), bellek (2 MB RAM) ve depolama (4 MB ROM) gibi kısıtlı donanım göz önünde bulundurularak tasarlanmıştır.
Dahası, Windows CE üreticiler için bir dizi yapı taşı olarak satıldı ve hangi bileşenleri paketleyeceklerini seçmelerine izin verdi. Üreticiler daha sonra bunu çeşitli donanımlara (el bilgisayarları, satış noktası terminalleri ve hatta otomotiv sistemleri gibi) entegre edebilirler. Bununla birlikte Windows CE, Apple Newton ve Palm’a karşı etkin bir şekilde rekabet ederek Palmtop’lara (PDA’ların öncüsü) güç veren işletim sistemi olarak önemli ölçüde dikkat çekti.
Cep telefonu endüstrisi 90’ların sonunda yükselişe geçerken Microsoft, Windows CE’nin modülerliğinden yararlanarak tamamen PDA’lara ve telefonlara odaklanan bir başka işletim sistemi olan PocketPC‘yi (daha sonra ’Windows Mobile’ olarak bilinecek) geliştirdi.
Şimdi, tüm bunların Dreamcast ile ne ilgisi var? Zamanın bir noktasında Microsoft ve Sega, Dreamcast [16] için bir Windows CE paketi üretme fikrini ortaya attı. Sonuçta, Windows CE zaten Hitachi’nin CPU’larının üzerinde çalışıyordu. Sonunda bu, eksiksiz bir masaüstü arayüzü veya Microsoft’un çevrim içi hizmetleriyle entegrasyon olarak hayata geçmedi. Bunun yerine, donanım işlemlerini basitleştirmek için isteğe bağlı bir soyutlama katmanı olarak görev yaptı.
Nintendo’nun Nintendo 64 ile sağladığına benzer şekilde Microsoft, Sega Dreamcast için uygulama programlamak üzere Windows CE tabanlı bir SDK (genellikle Dragon SDK olarak adlandırılır) gönderdi. Kütüphaneler, grafik, ses ve hata ayıklamaya yardımcı olmak için gereken minimum bileşenlerle CE’nin bir alt kümesini içeriyordu. ‘Microsoft kulübüne katılmanın’ bir parçası olarak, geliştiriciler artık geliştirme için Microsoft’un yıldız IDE’sini (Visual Studio 6.0) ve Visual C++ 6.0’ı kullanabileceklerdi.
Bazı geliştiriciler bu seçeneği çok cazip buldu. CE ile birlikte gelen ses-grafik çerçevesi DirectX 6’dan başkası olmadığından, o dönemin çoğu PC oyunu teorik olarak Dreamcast’e kolayca taşınabilirdi. Ancak Dreamcast ile geleneksel PC arasındaki mimari farklılıklar göz ardı edilemeyecek kadar büyüktü. Sonuçta, programcılar optimum performansa ulaşmak için büyük bir optimizasyon sürecinden geçmek zorunda kaldılar [17]. Ayrıca, Dreamcast’in BIOS’u Microsoft’un framework’lerinden hiçbirini içermediği için SDK’nın oyuna statik olarak bağlanması gerekiyordu. Böylece, Sega’nın low-level kütüphanelerine kıyasla, Dragon SDK oyunun yükleme sürelerini artırdı (sonuçta, oyun diskinden ayrı bir ‘işletim sistemi’ yüklenmesi gerekiyordu) ve oyunun yürütülmesi boyunca Windows CE katmanı önemli miktarda kaynak tüketti.
Sonuç olarak, ‘Dreamcast için Windows CE’ geliştiriciler için sadece ikincil bir SDK tercihiydi. Bununla birlikte, önemli sayıda Dreamcast oyunu bu özelliği kullanmıştır.
Windows CE ve Windows Mobile’ın akıbetini merak ediyorsanız, Microsoft için taşınabilir bilgisayar pazarında işler pek de iyi gitmedi. Windows CE 2013 yılında kullanımdan kaldırılmıştır. Bir yıl önce, Windows Mobile’ın CE tabanlı çekirdeği Windows NT ile değiştirildi (masaüstü tabanlı Windows 8 ile uyumlu olarak). Bununla birlikte, Windows Mobile sonunda daha yeni platformlar (Android ve iOS) karşısında yenilgiyi kabul etti ve 2019’da kullanımdan kaldırıldı.
Giriş/Çıkış
GPU ayrıca Sistem Veriyolu adı verilen G/Ç’nin çoğunu işlemek için başka bir modül içerir. Aşağıdaki arayüzleri sağlar:
- G1 arayüzü: BIOS ROM’un kayıtlı yapılandırması ve GD-ROM içeriği ile birlikte erişilebildiği yer.
- G2 arayüzü: Modem ve Ses Denetleyicisine erişim sağlar.
- Maple arayüzü: Kontrolörler (bunlara bağlı aksesuarlarla birlikte) ve CPU arasında veri parçalarını aktarır. Bu bir seri veri yoludur ve özel bir DMA sağlar.
- SH-4 arayüzü: Genel amaçlı iletişim için ana CPU’yu bağlar.
- DDT arayüzü: DMA aktarımları sırasında ana belleğe erişmek için CPU veriyolunun kontrolünü ele alır.
- PVR arayüzü: CPU’yu özel bir DMA kullanarak Karo Hızlandırıcıya bağlar.
Oyunlar
Geliştirme esas olarak C veya C++ ile yapılmıştır. Mevcut C++ derleyicileri başlangıçta işlevsellik (ve kalite) açısından çok sınırlı olduğundan, ilk başta C önerilen seçimdi.
Sega ayrıca Sega Katana Development Box adı verilen PC benzeri bir kule şeklinde geliştirme donanımı da sağlamıştır. Bu, geliştirme için geliştirilmiş G/Ç’ye sahip Dreamcast donanımıdır. Ayrıca resmi Katana SDK ve Windows 98 PC’ye kurulacak araçları içeren bir CD ile birlikte geldi.
Daha önce de belirtildiği gibi, geliştiriciler Sega’nınkine ek olarak Microsoft’un Dragon SDK’sını benimseme seçeneğine de sahipti. Bu durumda, DirectX 6.0 ve Visual C++ 6.0 kullanılabilir olacaktır.
Medya Ortamı
Oyunlar GD-ROM’larda saklanır; bunlar, daha yüksek yoğunluğa sahip CD-ROM’lar olup (bir gigabayt kapasitesine ulaşır), sadece çukurların daha yoğun bir şekilde yerleştirilmiş olduğu CD-ROM’lardır. Hızı 12x’dir, bu da Satürn’ün 2x CD okuyucusuna kıyasla oldukça iyidir.
Çevrim içi platform
Dreamcast, oyunların çevrim içi oyun için çevirmeli bir hizmeti ‘aramak’ için kullanabileceği bir modem modülü yüklü olarak gönderildi. Sega iki hizmet sağlıyordu: SegaNet (Amerika ve Japonya’da kullanılan) ve Dreamarena (Avrupa’daki muadili).
Oyuncular, bazı oyunlarla birlikte verilen ekstra bir disk olan DreamKey’i kullanarak bir hizmete kaydoldular. DreamKey bir hesap açmak için bir web tarayıcısı sağlıyordu. Başlangıçta, DreamKey bölgeye bağlı olarak önceden yapılandırılmış bir hizmet olarak geldi, ancak daha sonraki revizyonlar kullanıcıların herhangi birine bağlanmak için ISS ayarlarını değiştirmelerine izin verdi.
Ayrıca, kullanıcının internette PC tarzı sörf yapmak istemesi durumunda satın alınabilecek Dreamcast markalı bir klavye ve fare de vardı.
Ne yazık ki, SegaNet ve Dreamarena piyasaya sürüldükten iki yıl sonra durduruldu. Bu nedenle, bu tür hizmetler ekstra araçlar kullanılarak taklit edilmediği sürece (DreamPi gibi, bir kullanıcı topluluğu tarafından tutulan sunucuların yardımıyla bunları kopyalayan bir Raspberry Pi kopyası), yalnızca bunlara dayanan oyunlar kullanılamaz hale geldi.
Etkileşimli hafıza kartı
Dreamcast’in bir diğer yenilikçi özelliği de Visual Memory Unit ya da ‘VMU’ idi. Kontrol cihazına takılıdır ve bir bellek kartı olarak hizmet etmenin yanı sıra, [18] içeren tam teşekküllü bir cihazdır:
- Bir Sanyo LC86K87: 8 bitlik düşük güçlü bir CPU.
- Dört ek simgeye sahip bir 32x48 Tek Renkli LCD: Çerçeve tamponu olarak 196 B XRAM (harici RAM) kullanılarak komut verilir.
- İki seri konektör: Biri IN ve diğeri OUT için.
- Altı fiziksel düğme: VMU kontrol ünitesinden ayrıldığında kullanılır.
- 16 KB’lık bir Maske-ROM: BIOS-IPL’yi depolar.
- 64 KB Flash: 32 KB tek bir programı saklamak için (konsoldan aktarılan) ve diğer 32 KB Dreamcast’in kayıtlarını tutmak için.
- 512 B RAM: 256 B sistem için ayrılmıştır ve program için yalnızca 256 B kullanılabilir.
VMU’nun iki çalışma modu vardır:
- Kontrol cihazına takılı: Resmi kontrol cihazında VMU’ları ve aynı şekle sahip diğer aksesuarları bağlamak için iki yuva vardır, VMU ilk yuvaya takılırsa (kontrol cihazının önünden görülebilir), oyun sırasında çizimleri görüntüleyebilir. Ayrıca Dreamcast, VMU’da kayıtları ve bir programı saklayabilir.
- Kumandadan ayrılmış: Aygıt, saati, kayıt yöneticisi olan Tamagotchi benzeri bir cihaz haline gelir ve Dreamcast’in daha önce aktardığı programı da çalıştırabilir. İçerik paylaşmak için iki VMU da bağlanabilir.
Korsanla Mücadele ve Homebrew
Tescilli GD-ROM formatının kullanılması, oyunların izinsiz kopyalarının üretilmesini (ve diğer konsollarda çalıştırılmasını) engellemeye yardımcı oldu. Dreamcast oyunları aynı zamanda bölge kilitlidir, yani bir konsol farklı bir bölge için tasarlanmış bir oyunu çalıştırmayı reddedecektir.
Korsan Korumasını Yenmek
Uygulamada, Sega’nın büyük bir arka kapıyı açık bırakması nedeniyle korsan karşıtı önlemler tamamen işe yaramazdı: MIL-CD. Music Interactive Live-CD ya da ‘MIL-CD’ Sega tarafından bir Audio-CD’yi interaktif programlarla genişletmek için yaratılmış bir formattır… ve Dreamcast bununla uyumludur [19].
Sonunda, yetkisiz ticari diskler (hile yükleyiciler, film oynatıcılar, vb.) Sega’nın onayı olmadan konsolda çalışmak için MIL-CD’ler olarak gizlendi. Daha sonra, farklı bilgisayar korsanlığı toplulukları bu açığı inceledi ve CD-ROM’ları kullanarak korsan oyunları önyüklemek için geçici bir çözüm buldu. Bu da internette durdurulamaz bir ISO dalgasının yayılmasına neden oldu.
Sonrasında bazı sorunlar ortaya çıktı: GD-ROM’lar bir gigabayt veri depolayabilmesine rağmen, CD-ROM’lara sadece ~700 MB sığabiliyordu, peki ’ripper’lar daha büyük oyunları CD’ye sığacak şekilde nasıl küçültebilirdi? Sığdırana kadar müzik ve grafikleri yeniden sıkıştırarak. Hatta iki diske bölmeyi bile deneyebilirler. Sonuçta, oyun verileri artık tek bir blob değil (eski bir kartuştaki gibi), artık hiyerarşik olarak dosyalar ve dizinler halinde düzenleniyor.
Hepsi bu kadar
Yaşına göre çok da kötü değil!
Umarım makaleyi okumaktan keyif almışsınızdır. Yazıyı üniversitedeki son yılımın başlangıcında bitirdim.
Muhtemelen bundan sonra çok meşgul olacağım, ancak bu makaleleri yazmaktan keyif alıyorum, bu yüzden umarım bir sonraki makaleyi birkaç hafta içinde alırsınız!
Bir dahaki sefere kadar!
Rodrigo