Bu sayfadaki yazılar
Sayfanın metni
Sayfa 38
1. X (harf sayacı) sıfırlanır. 2. $FB-$FC bileşik değişkeninin (terimi uydurdum, korkmayın. Sadece birlikte bellekteki bir adresi gösteren değişken çifti demek istiyorum) yüksek değerlikli baytını $E2 yapıyoruz. 3. A, yani sayaç 12'ye eşitse ya da 12'den büyükse bu değeri 13 yapıyoruz. Çünkü bu 12'den sonra grafik datası bir sonraki bloğa ($E0XX'se $E1XX'e, $E2XX'se $E3XX'e) taşıyor. 4. Şimdi de düşük değerlikli baytı okuyalım. Harfin grafik datasının nereden başlayacağını belirten tablodan baytı alıyoruz (LDA $C1A0,X) ve $FB'ye yazıyoruz. Grafik baytları işte bu adresten başlayarak yazılacaklar. 5. Harfe ait grafik datası nerede? Kolayca hesaplayabiliriz bunu. Sadece harfin ekran kodunu sekizle çarpıp $D000'a eklememiz gerekli. Bir sayıyı sekizle çarpmak için üç kere ASL kullanmalıyız. Ama değer iki bayta taşabileceği için (129 x 8'e bir bakın). $FE'yi temizleyip, yüksek değerlikli baytı buraya kaydırmalıyız:
LDA $CIB8,X
Bu rutin A'yı sekizle çarpıp, $FD-$FE bileşik değişkenine yazar. Sadece önceden $FE'yi temizlemiş olmalısınız. Daha sonra $FE'ye ekleyeceğimiz karakterin grafik datasının adresini bildirecektir.
6. Y'yi sıfırladıktan sonra, ($FE), Y'yi:
(SFB), Y'ye taşırız. Yani, karakterin ilk baytını sprite'a yerleştiririz. Ama ne yazık ki Y'yi artıramayız şimdi. Çünkü sprite datasında bir alttaki bayt, şu andaki değerin üç fazlasında yer alıyor. Yani ($FE-$EC'ye bir eklemeli, ($FB-$FC)'ye üç eklemeliyiz. Buradaki rutinde bana ait bir keklikle karşılaşıyorsunuz. $C160'a bakın. Tek bir sprite'a ait grafik datasının hiçbir baytı, diğerlerinden farklı bir sayfada yer alamaz. Çünkü bu datalar $XX00, $XX40, $XX80 ve $XXCO adreslerinde yer alabilir sadece. Hiçbir zaman başlayan bir sprite'a ait data $E100'a taşamaz. Bu yüzden $C160- $C163 arasında yer alan dört bayt, gereksiz yere işletiliyor. 7. Şimdi büyük bir problemle karşı karşıyayız. Sayaç olarak kullanabileceğimiz registerimiz kalmadı çünkü. Oysa bize sekize kadar sayabilecek bir değişken lazımdı. Biz de, sekize tam bölünebilen $FD-$FE adreslerinin düşük değerlikli baytının ($ED) ilk üç bi- 'tine bakarız. Başlangıçta bu üç bit sıfır olan (sekizle çarpılan bir sayı ne olursa olsun ilk üç biti sıfır kalır). Sekiz arttıktan sonra bu baytın ilk üç biti gene sıfır olacaktır. Bu ufak noktayı yakaladığımıza göre hemen yararlanalım: $FB'yi alırız, #$07 ile AND'leriz. Eğer sonuç sıfırsa karaktere ait sekiz grafik baytını da transfer ettiğimizi anlarız ve döngüyü terk ederiz. Geçmiş olur böylece. En zor kısımlardan birini oldukça kestirme bir şekilde atlattık çünkü. 8. Rutini bitirdik. Sadece sayacı, yani X'i bir artırıp, $18'e yani 24'e gelip gelmediği-
- ne bakmamız gerekiyor şimdi “Bunu çocukken de yapardık biz!” deyip bu ayrıntıyı da aradan çıkarttıktan sonra... 9. $01'e yazdım ve ROM'lar geri geldi. CLI dediğimde de interrupt kaldığı yerden işine devam etti. RTS dediğinde de BA-SIC'e döndüm. Geriye anlatılması gereken üç kısa rutin kaldı. $C180'deki, $C128'e $E2, $C130'a $E3 yazıyor ve $C120'ye atlıyor. Yazı alanını üst spritelara taşıyor yani. $C18C'deki de $C128'e $E0, $C130'a da $Eİ yazarak bu alanı alt spritelara yazdırıyor ($C120'ye sıçrayarak tabii ki). $C200'da yer alan küçük rutin de, $0314-$0315'i düzeltiyor, VIC'e “Artık interrupt yapma!” emrini veriyor ($DO19- $DOLA- A) ve CIAI'e “Sen de zamanlayıcını çalıştır artık” diyor ($DCOE- 1). Sonra da BASIC'e dönüyor. Eski hızma kavuşmuş, ama border'ı kapalı olana tabii ki. Eh, hâlâ bu yazıyı okuyorsanız, siz gerçekten bu işin ustası olmuşsunuz demektir. En iyisi siz bizi okumaya devam edin. Su Şişesi'nde yazanlara çok güvenmeyin, çünkü Can hep kopya çekiyor cevap verirken(!).
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 39
Can Yalçın
Oyun Değerlendirmesi: COMMODORE 64 DİSK
Grafik :10 Konu Zorluk Efektler/Müzik : 9 Genel :10
İ şte deliler gibi, aç susuz beklediğimiz oyunumuz sonunda geldi. Bundan yaklaşık 1-2 sene önce birinci bölümünü oynadığımız Creatures 1 hepimizi mükemmel grafikleri, müzikleri, şirinliği ve oynanılabilirliği ile kendine hayran bırakmıştı. Sadece 2 kişiden çıkan bu oyunun ikinci bölümünün yapılması gerçekten bir zorunluluktu ve sonunda oldu. Oyun hakkında söyleyebileceğim en kısa ve aynı zamanda en yakışır söz, Creatures 2'nin 1992 yılının şimdiye kadar çıkmış en iyi oyunu olduğu. Bu sayfada oyun hakkında bulacağınız değerlendirme tablosu kesinlikle bir abartı değildir, oyunu alınca bunu siz de göreceksiniz. Bu oyunu gören birçok AMI-GA'cı arkadaşım “Ayy, bu oyun acaba AMIGA'da da çıkar mı?” diye sormaya başladılar. Heh, he, siz daha çok beklersiniz.. İlk olarak Creatures 1'i hatırlayalım Uzayda gezen füzzie adlı yaratıklar, yanlışlıkla dünyamıza düşerler ve hatayla geldikleri bu gezegeni çok severler. Bu Fuzzie'ler biraz eğlence düşkünü yaratıklar olduğundan gece gündüz partiler yaparlar, çok eğlenirler. Her şey iyi, hoş da bunların böyle yaygaracı yaşamalarına çevredeki yaratıklar pek kızar. Birgün bir parti sonrası, herkes sızdıktan sonra yaratıklar gelip herkesi kaçırırlar.. Bir kişi hariç, o da kahramanımız Ciyde, Ciyde birçok bölüm boyunca tüm arkadaşlarını yaratıkların işkence aletlerinden kurtarmaya çalışır. Creatures 1'de bu olay zaferle biter ve tüm arkadaşlarımızı kurtarırız, yaratıkları da bir güzel kovarız. Clyde kız arkadaşı ile evlenir (onu 1. bölüm sonunda kurtarıyorduk) ve tam 6 tane minik fuzzie'leri olur. Hayat güzel güzel devam eder. Ciyde sevgili karısıyla bir dolaşmaya çıkar. Geri döndüklefinde gözlerine inanamazlar. Tüm köy ikinci kez yerle bir edilmiş ve Ciyde'nin 6 çocuğu intikam çığlığı atan yaratıklarca kaçırılmıştır. Böylece kendilerini mahveden Ciyde'- dan intikamı en iyi çocuklarını kaçıra- Tak almayı başarmışlardır. Tahmin edeceğiniz gibi kahraman Ciyde yaratıkların ve işkence aletlerinin karşısına bu sefer 6 minik yavrusunu kurtarmak için çıkacaktır. oyun Thalamus firması tarafından piyasaya sürüldü. Thalamus firması bu gidişle SYstem 3'ün 64'teki sağlam tahtını biraz oynatmış oldu. Daha önce çıkardıkları Summer Camp, Winter Camp ve Creatures 1 ile kazandıkları başarıyı Creatures 2 ile devam ettiriyorlar. Oyunun tüm programlaması, grafik ve müzikleri sadec e ve sadece 2 kişi olan Rowlandi Brothers tarafından yapılmış. Rowland Brothers bu oyunlarının C-64'teki son oyunları olduğunu söylüyorlar. Bence böylesine büyük bir başarıyı bırakmak aptallık olur. Oyunumuz toplam 3 ada üzerinde geçiyor. Her adada kurtarılacak 2 çocuk var, böylece toplam 6 fuzzie yavrusunu kurtaracağız. Her adadan 2 çocuk kurtarılacak, adanın büyük canavarları öldürülecek ve daha sonra kurtarılan çocuklar bir sonraki adaya götürülecek. Çok basit olarak konu bu. Çocukları işkenceden kurtarmak bir zeka oyunu gibi çözülmeyi beklerken, oyunun diğer bölümleri basit bir platform oyununu andırıyor. Kısaca hepiniz, hangi oyun türünden hoşlanırsanız hoşlanın, bu oyundan kesinlikle zevk alacaksınız. Şimdiye kadar bir oyunda görmüş olduğunuz en şirin, en tatlı sprite'ları bu oyunda göreceksiniz. Eveet, bu kadar tanıtımdan sonra artık çözüme geçebiliriz. Oyun başladığında karşınıza çıkacak olan açılış ekranında hemen ateşe basmayın ve biraz izleyin, programcının açılış ekranına bile ne kadar özen gösterdiğini görüp en az benim kadar taktir edeceksiniz. Sonuçta sıkılıp ateş tuşuna bastığınızda resmen oyuna başlayacaksınız.