« Mega Drive'ın / Genesis'in Mimarisi (index)

Mega Drive'ın / Genesis'in Mimarisi

Chapter 4: Grafikler


İçindekiler

  1. Çoklu ekran çözünürlüklerinin arkasında
  2. İçeriğin düzenlenmesi
    1. Kullanılabilir hafıza
  3. Kare Oluşturulması
    1. Kareler
    2. Arka Plan
    3. Ön plan
    4. Spritelar
    5. Sonuç
  4. Özel bir transfer ünitesi
  5. Video çıkışı

Cevap Blast Processing!, başka ne bilmeniz gerekiyor?

Tamam, gerçek cevabı bilmek istiyorsanız: grafik verileri 68000 tarafından işlenir ve Video Display Processor (veya kısaca 'VDP') adı verilen özel bir çipte işlenir ve daha sonra ortaya çıkan kareyi (tarama çizgileri şeklinde) görüntülenmek üzere gönderir.

VDP ~13 MHz hızında çalışır ve bölgeye bağlı olarak birden fazla çözünürlük modunu destekler: NTSC'de 320x224 piksele kadar ve PAL'de 320x240 piksele kadar.

Çoklu ekran çözünürlüklerinin arkasında

Teknik olarak, VDP tarama satırı başına 40 veya 32 sütun tiles sığdırabilir ve karo satırlarının sayısı bölgeye bağlıdır (NTSC'de 28 veya PAL'de 30) . Yine de, çoğu PAL oyunu PAL sistemlerinde izin verilen ekstra karolarla uğraşmaz (muhtemelen iki bölge arasında tutarlılığı korumaları gerektiğinden ve NTSC ortak paydadır), bu nedenle VDP'ye 28 satırla (NTSC sistemlerinde yapacakları gibi) işleme talimatı verirler. Bu nedenle, VDP'nin kullanılmayan alanı bir arka plan rengiyle (aşırı tarama sırasında da kullanılır) doldurmaktan başka seçeneği yoktur.

Hata ayıklama özelliklerine sahip bir emülatörde Mode Set Register #2'yi kontrol ederek hangi PAL oyunlarının NTSC modunda işlendiğini görebilirsiniz (örn. Exodus). Sağdan dördüncü bit 0 ise, VDP NTSC modunda çalışıyor demektir.

Image
Sonic 2'de (1992) hızlı bir çok oyunculu mod sağlamak için oyun, bunun yerine 8x16 piksel karolar kullanarak (diğer değişikliklerle birlikte) tek oyunculu bir seviye oluşturmak için 'taramalı modu' etkinleştirir.

Image
Buna karşılık, Sonic 3'ün (1994) daha sofistike çok oyunculu modu, tek oyunculu seviyelerden ayrı olan özel 8x8 piksel karolara dayanır.

Ayrıca, VDP'de 8x16 haritalar oluşturmak üzere iki karoyu yığmak ve ardından bunları tek bir karo olarak ele almak için ayarlanabilen ek bir parametre vardır. Böylece dikey çözünürlük iki katına çıkar. Ancak bu, kareler artık taramalı olarak işlendiğinden (bir kare çift tarama çizgilerini, bir sonraki tek tarama çizgilerini ve benzerlerini işler) yenileme hızını yarıya indirir, bu nedenle işlevsellik açısından daha sınırlıdır. Sonic 2 ve 3'ün çok oyunculu modu bu modun iyi bir temsilidir.

Son olarak, VDP'nin aşırı tarama alanı için otomatik olarak dolgu eklediğini belirtmek gerekir, böylece oyunların hangi alanlara grafik çizmenin güvenli olduğu konusunda endişelenmesine gerek kalmaz (NES'in 'tehlikeli bölgeleri' ile olduğu gibi)

İçeriğin düzenlenmesi

Grafik verilerinin işlenmesi açısından, bu çipin iki işlem modu vardır:

Peki ya Mod 0 ila III? Bunlar daha da eski olan SG-1000'e ait ve Mega Drive bunları desteklemiyor.

İlginç bir not olarak, daha sonra bu sistemin eski bir geliştiricisi tarafından Mod V'in komut yapısının (oyun içinde VDP'yi kontrol etmek için kullanılır) tasarımını TMS9918'den (SG-1000'de kullanılan ünlü video çipi) miras aldığı söylendi . Bu, üçüncü taraf geliştiricilerin resmi belgelere (ve ardından gelen lisans maliyetlerine) bağlı kalmadan Mode V'i kullanmalarını kolaylaştırdı.

Kullanılabilir hafıza

Image
VDP'nin bellek mimarisi.

Grafik içeriği belleğin üç bölgesine dağıtılır :

Kare Oluşturulması

Aşağıdaki bölümde VDP'nin her bir kareyi nasıl çizdiği açıklanmaktadır, örnek olarak Sonic The Hedgehog kullanılmıştır. Başlamadan önce, önceki modus operandi'ye göz atmanızı tavsiye ederim çünkü burada birçok şey yeniden ele alınacaktır.

Kareler

Image
Birden fazla karo birbirine sıkıştırılmış. Gösterim amacıyla varsayılan bir palet kullanılmaktadır.

Image
Tek bir 8x8 piksel karo.

VRAM'de bazı karolar bulundu.

Tıpkı Nintendo'nun PPU'su gibi, VDP de karo tabanlı bir motordur ve bu nedenle grafik düzlemleri oluşturmak için tiles (temel 8x8 bitmapler) kullanır. VDP durumunda, her bir karo 4 bayt uzunluğunda bir dizi ile kodlanır, burada her 4 bitlik giriş bir piksele karşılık gelir ve değeri bir renk girişine karşılık gelir (bir renk paletine işaret eder).

Oyun kartuşları karoları ROM'larında saklar (kartuşlarında bulunur) ancak VDP'nin bunları okuyabilmesi için VRAM'a kopyalanmaları gerekir . Geleneksel olarak, bu yalnızca belirli zaman dilimlerinde mümkündü ve CPU tarafından gerçekleştiriliyordu, neyse ki bu konsol bu görevi VDP'ye yüklemek için özel devre ekledi (ayrıntılara daha sonra gireceğiz).

Karolar toplam dört düzlem oluşturmak için kullanılır ve bunlar bir araya getirildiğinde ekranda görülen çerçeveyi oluşturur. Ayrıca, uçakların karoları birbiriyle çakışacaktır, bu nedenle VDP hangi karonun görünür olacağına uçak türüne ve karonun öncelik değerine göre karar verecektir.

Arka Plan

Image
Ayrılan arka plan haritası.

Image
Seçilen alanın işaretlendiği Tahsis Edilmiş Arka Plan haritası.

Plane B olarak da bilinen Arka Plan düzlemi, statik tiles içeren kaydırılabilir bir döşeme haritasıdır (döşeme kümesi).

Bu düzlem altı farklı boyuta sahip olabilir: 256x256, 256x512, 256x1024, 512x256, 512x512, 1024x256. Programcılar, gerekli olacak kaydırma türüne daha iyi uyan boyutu seçebilirler.

Her karo yatay ve/veya dikey olarak çevrilebilir ve bir öncelik kümesine sahip olabilir.

Gösterilen örnekte, görüntülenmek üzere seçilen alanın bir kare olmadığını fark edeceksiniz... Böyle olmak zorunda değil!. VDP, tüm çerçeve, her bir tarama satırı veya her sekiz piksel için yatay kaydırma değerlerinin ayarlanmasına olanak tanır. Bu, geliştiricilerin seçilen alanı bir eşkenar dörtgen gibi şekillendirebileceği ve perspektif efektlerini simüle etmek için oyuncu hareket ettikçe açılarını değiştirebileceği anlamına gelir. Bunun gibi hileler düzlemi bozmaz, VDP her (seçilen) yatay çizgiyi alır ve ondan düzenli bir çerçeve oluşturur.

Ön plan

Image
Ayrılan ön plan haritası.

Image
Seçili alan işaretli Tahsis Edilmiş Ön Plan düzlemi.

Ön Plan düzlemi örneği, Pencere Düzlemi kullanılmaz.

Plane A olarak da bilinen Ön Plan düzlemi, bu düzlemin daha yüksek önceliğe sahip olması dışında Arka Plan Düzlemi ile aynı özelliklere sahiptir, bu nedenle burada işlenen karolar doğal olarak Arka Plan Düzleminin üstünde olacaktır.

Ayrıca, bu düzlem yeni bir sub-plane oluşturmak için kendini bölmeye izin verir: Window Plane. Tek fark, ikincisinin kaydırma yapmamasıdır.

Sonuç olarak, yeni öncelik değerlerinin ve ayrı uçakların oyun tasarımcılarına yeni manzara türleri sunma imkanı verdiğini görebilirsiniz. Ayrıca, her düzlemde farklı kaydırma hızları kullanılarak bir paralaks etkisi elde edilebilir.

Spritelar

Image
Ayrılmış Sprite katmanı.

Image
Seçili alan işaretli olarak ayrılmış Sprite katmanı.

Bu düzlemde karolar sprites olarak değerlendirilir. Bunlar bir 512x512 piksel haritaya yerleştirilir ve sadece bir kısmı (VDP'nin çıkış çözünürlüğü) görüntülenmek üzere seçilir. Bu, istenmeyen sprite'ları gizlemek veya gelecekte gösterilecek diğerlerini hazırlamak için kullanışlıdır. VDP ayrıca eski bir çarpışma algılama işlevi sağlar.

Sprite'lar 4x4'e kadar karo (32x32 piksel haritası) birleştirilerek ve 16 renge kadar (transparent dahil) seçilerek oluşturulur. Daha büyük bir sprite gerekiyorsa, birden fazla sprite birleştirilerek tek bir sprite haline getirilebilir.

Tarama çizgisi başına en fazla 20 ve ekran başına 80 sprite olabilir (bunun aşılması tüm katmanı bozacaktır).

VRAM'de Sprite'ların tanımlandığı bölge Sprite Attribute Table olarak adlandırılır ve her giriş karo indeksi, katman koordinatları (x ve y), link değeri (hangi sprite'ların önce çizileceğini yönetir), öncelik (en yüksek önceliğe sahip sprite, çakışmalar sırasında görüntülenecek olandır), renk paleti indeksi ve dikey ve yatay çevirme içerir.

Sonuç

Image
Ortaya çıkan kare.

Image
TV'ye yayınlanan çerçeve (NTSC formatı), VDP çerçeveyi otomatik olarak çoğu CRT TV'nin gizleyeceği overscan alanıyla kaplar.

Tada!

Kare çizilirken, sistem CRT'nin ışınının nereye baktığına bağlı olarak sırayla farklı kesme rutinlerini çağıracaktır. Muhtemelen önceki konsollarda gördüğünüz gibi, bu CPU'nun bir sonraki kare üzerinde çalışmasına (veya mevcut kareyi değiştirmesine) olanak tanır.

Geleneksel olarak, iki tür kesinti vardır: H-Blank (her yatay çizgi) ve V-Blank (her kare).

H-Blank birçok kez çağrılır ancak kısa rutinleri yürütmekle sınırlıdır. Ayrıca, yalnızca CRAM ve VSRAM'e erişilebilir, bu nedenle oyunlar yalnızca renk paletlerini güncelleyebilir veya düzlemlerini dikey olarak kaydırabilir.

V-Blank, saniyede yalnızca 50 veya 60 kez çağrılma dezavantajıyla (konsolun bölgesine bağlı olarak) daha uzun rutinlere izin verir, ancak tüm bellek konumlarına erişebilir.

Örnekteki aşırı tarama alanının sağ alt köşesinde bazı rastgele renkli noktalar bulunduğuna dikkat edin. Bu halk arasında CRAM noktaları olarak bilinir ve olan şey CPU'nun CRAM'deki paletleri güncellerken aynı zamanda VDP'nin kalan tarama hatlarını ışınlamasıdır (örnekte, bu aşırı tarama sırasında gerçekleşir). Bu çakışma, VDP'nin CPU'nun o anda yazdığı değeri getirmesine neden olur (CRAM'deki gerekli konumun aksine), böylece görüntü bozulur. Ancak, bu durumda oyun CRAM'i yalnızca aşırı taramada güncellediğinden, bu anormallik geleneksel CRT'lerde fark edilmez. Diğer oyunlar, CRAM noktalarının görünümünü dengelemek zorunda kalmak pahasına, daha fazla renk elde etmek için karenin ortasında paletleri güncellemeye çalışır.

Özel bir transfer ünitesi

Şimdiye kadar CPU'nun çerçeveleri güncellemek için neler yapabileceğini tartıştık, peki ya VDP? Daha özel bir şey sağlıyor mu? Evet, bu çip, verilerin bellek konumları arasında daha hızlı ve işlemcinin müdahalesi olmadan taşınmasını sağlayan bir Doğrudan Bellek Erişimi (kısaca 'DMA') özelliğine sahiptir.

DMA, H-Blank, V-Blank veya aktif durumda (herhangi bir kesme dışında) etkinleştirilebilir ve VRAM, CRAM ve/veya VSRAM üzerine yazmak için kullanılabilir . Ayrıca, DMA kullanan CPU RAM aktarımları sırasında CPU veri yolu bloke olur, bu nedenle iyi planlama performans elde etmek için kritik öneme sahiptir.

Bu özelliklerin olağanüstü kullanımı yüksek çözünürlüklü grafikler, akıcı paralaks kaydırma ve yüksek kare hızları sağlayabilir. Dahası, oyununuz TV reklamlarında da yer alabilir ve her yerinde Blast Processing! işaretleri bulunabilir.

Video çıkışı

Bu konsolun ilk tasarımı (genellikle 'Model 1' olarak anılır) Master System ile aynı video çıkış portuna sahiptir. Sonraki 'Model 2' ve 'Model 3' bunun yerine bir mini-DIN bağlantı noktasına geçti.


Previous: 3. İşlemci (CPU)

Next: 5. Ses


Rodrigo Copetti © 2026 RSS Feed

Modern baskıya geçin

Ana sayfa · Yazılar · Destek · Yazar hakkında · Web sitesini hakkında