eskiden kara kara düşünürdüm 80286 makinede bu oyunu nasıl grafik programlamışlar diye
PC'de VGA 13h modu (320x200x256) 256 renk 1 byte'a sığdığından direk hafıza adresine (0xA000) byte'ların yazılmasıyla grafik ekranda piksellerin görüntülenmesi sağlanırdı. Bir (X,Y) koordinatının adresi
0xA000 + ( Y*320 ) + X formülüyle ya da daha hızlısı
0xA000 + ( Y<<8 ) + ( Y<<6 ) + X kolayca bulunabilirdi. Bu sayede Basic'le bile gayet güzel demo/oyun çalışmaları yapmak mümkündü. Ayrıca ekrandaki animasyonların bazıları ekran içeriğine dokunulmadan renk paletindeki renklerin yeri değiştirilerek sağlanırdı.
http://en.wikipedia.org/wiki/Mode_13hSonrasında bu modu kurcalayarak buldukları Mode X (320x240x256) modu efsanedir.
Grafik kartı hafızasında 4 banka sahip olan Mode X bu sayede double/triple buffering yapmanın kolaylığıyla daha sonra geliştirilerek 360x480x256 renk desteği dahi sağlamıştır.
Avantajları:
Yüksek çözünürlükler: maksimum 360x480 çözünürlük 256 renk
İkili ve üçlü önbellekleme tekniğiyle titremesiz animasyonlar
Görüntülenen ekranın donanımsal olarak kaydırılması
Ekran dışı Video RAM'de saklanan grafiklerin sadece ekran kartına verilen komutlarla hafızada hiç taşıma yapmadan görüntülenebilmesi
Planar mod ile komşu 4 pikselin bir byte yazılarak doldurulabilmesi, poligonların doldurulması için ideal
Ekran bölme, ekranın iki bölümünün farklı hafıza adreslerinden alınabilmesi, donanımsal kaydırma yapan oyunlarda sabit durum göstergeleri için ideal
Kare pikseller monitör en/boy oranıyla aynı orana sahip çözünürlükler kullanarak elde edilebilir, bunun için genelde 320x240 (4:3) modu kullanılır.
Çözünürlüğün 320x200 kaldığı ama diğer özelliklere aynen sahip moda Mode Y denilmiş.
Bir de 256x256x256 moduna Mode Q (Q küpün kısaltmasıymış) denilmiş. Bu modun özelliği bir ekran adresini elde etmek için 16bit adresin üst byte'ına Y alt byte'ına X değerini koymak yeterli oluyormuş, herhangi bir çarpma, toplama, shift veya tablo işlemi kullanılmadığı için çok hızlıymış.
Mode Y ve Mode Q'yu ben de yeni öğrendim. Gerçekten güzelmiş.
http://en.wikipedia.org/wiki/Mode_XQBasic, Turbo Pascal ve Turbo C kullanarak ben de birtakım çalışmalar yapmıştım zamanında bu modları kullanarak. Tabi o zamanlar Dropbox gibi güzel icatlar olmadığı için hepsi kayboldu gitti.
