|
Konu Başlığı: MVS sprite formatı Gönderen: wizofwor üzerinde Mayıs 09, 2014, 09:46:24 ÖÖ Arcade makinalarını programlama bakımından çok "düz" bulsam da donamım tasarımları bazen ilginç olabiliyor. Çok düz dememin sebebi her şeyin programcının (ve grafikerin) emrine amade olması. En basitinden tile map gerekiyorsa tile engine donanımda hazır, parallax engine ve bol miktarda bit planeler aynı şekilde. Bu yüzden programlama dehalarına pek yer yok. Grafiker de yine basitçe çizimini yapıp geçiyor. Renk kısıtlarıyla, attribute clash sorunlarıyla vs. çok fazla başı ağrımıyor. Tabi bu sefer bunları sağlayan donanımdaki incelikler öne çıkmaya başlıyor.
En gelişmiş çok amaçlı arcade makinalarından biri MVS. 2D'den bahsediyorsak bence en iyisi. MVS'nin spriteları 16x16 tile'lardan oluşuyor. Her tile 8x8'lik dört bloğa ayrılmış. Bu bloklarda 4 bitplane'e bölünmüş. (http://www.commodore.gen.tr/forum/index.php?action=dlattach;topic=8063.0;attach=5415;image) Buraya kadar tamam. Ancak sprite verisinin hafızada saklanış şekli biraz kafa karıştırıcı geldi. Her bir bitplane farklı rom çiplerinde tutulmuş. Bitplane #0,1,2,3 sırayla C1, C3, C2 ve C4 çiplerinde saklanmış. Yavuz'un bu konuda söyleyecek bir şeyleri vardır diye düşünüyorum? Acaba GPU'nun bus yapısıyla ilgili bir durum mu var? Örneğin GPU bir cycle'ı dörde bölüp, adress bus'a adresi koyduktan sonra C Rom'ların hepsini sırayla okuyarak zaman mı kazanıyor? Hatta daha güzeli hepsini aynı anda mı okuyor? (4 chipteki veri data bus'a aynı anda konursa yanılmıyorsam AND'lenmiş oluyor.) Konu Başlığı: Ynt: MVS sprite formatı Gönderen: gergozen üzerinde Mayıs 10, 2014, 15:08:49 ÖS Aynı anda okuma olacağını sanmıyorum. Hatta eminim. Ama sırayla okuyarak bir şekilde zaman kazanılıyor olabilir.
Commandos oynamıştım yeni makinelerden birinde adamlar yürümüyor koşuyordu (alman askerleri bir turu 2 saniyede tamamlıyordu). Bu durumda döngüde araya girip işlemciyi yoran ve döngü sürecini uzatan programlar da kullanılabiliyor. Yani performanstır muhtemelen ama artı veya eksi olup olmadığını bilmiyorum. |