C64 için Püf Noktaları
Retro bilgisayarPüf noktaları köşemize ilgi gün geçtikçe artıyor. Okurlarımız artık kendi buldukları püf noktalarını yolluyorlar. Bu yardımın sürmesi dileğiyle.
Görüntü elde ederken ilginç efektler elde edilmesini sağlayan bir teknikten bahsedeceğiz. Tekniğimizin adı RASTER INTERRUPT. Bu tekniği anlatmadan evvel ekranda bir görüntünün nasıl elde edildiğini görelim. Ekranda görüntü, eğer yakından bakarsanız kolaylıkla görebileceğiniz çizgilerin birleşmesinden oluşuyor. Bildiğimiz gibi ekranda görünen karakterler sekiz çizgiden oluşur. Ekran kontrolünü sağlayan VIC chip'inin 18 numaralı yazmacında o anda gösterilen ekran satırının numarası yer alır. Bu yazmacın yer aldığı adres, 53248 numaralı adrestir.
PRİNT PEEK(53266)
Komutu çalıştığı anda ekranda gösterilmekte olan satırın numarasını elde ederiz. Ancak ekran bir saniyede 25 kere tarandığından bu değerler BASIC kullanılarak sağlıklı bir şekilde elde edilemez. Bu yüzden gerekli programı makine dilinde yapmamız gerekir. Ekranda gösterilen her satıra RASTER LINE adını veriyoruz. Bir RASTER ekranda gösterilmeden programı durdurmak mümkündür. Bu işleme RASTER INTERRUPT adı veriliyor. Bu işlem için Interrupt yazmacına gerekli değeri vererek merkezi işlemciyi durduruyoruz. Bundan sonra sıra istenilen satır numarasının belirtilmesine geliyor. Bunun için 18 numaralı yazmaca istediğimiz değeri veriyoruz. Interrupt işleminin makine dili kullanılarak gerçekleştirilmesi gerekir. Program döküm ekindeki ilk tam bu işlemi gerçekleştiriyor. Raster Interrupt işlemine örnek olarak program döküm ekindeki ikinci programa bakın. Bu program ekranın bir kısmının farklı bir fon rengiyle gösterilmesini sağlıyor. Böylece ekranda bir veya birden fazla satırı önemli olarak belirtebiliriz. Programın genel olması bakımından sadece farklı renkte gösterilen satırın rengini ve diğer kısımların renginin değiştirilebilmesi mümkün. Gerekli renk değişiklikleri POKE komutuyla yapılabilir. Örnek program renkli satırı standart raster satırı genişliğinde hareket ettirmenize izin veriyor. Bir raster satırı sekiz oluşuyor. Renkli satırı yukarı veya aşağı hareket ettirmek için kürsor tuşlarını kullanabilirsiniz. Fonksiyon tuşları ile satırın rengini, diğer tuşlarla geri kalan kısımların rengini değiştirebilirsiniz. İlk olarak birinci programı yükleyip çalıştırın. TAMAM yazısı çıktığında ikinci programı yükleyip çalıştırabilirsiniz. İkinci program renkli satırı kürsor tuşları ile istediğiniz şekilde kontrol etmenizi sağlayacaktır. Programı kendi amaçlarınıza uygun şekilde değiştirebilirsiniz. Raster satırı 251 ile 254 numaralı hafıza adreslerine POKE edildi. 251 ve 252 numaralı adreslere farklı rengin çıkacağı raster satırı, 253 ve 254 numaralı adreslere birinci ve ikinci karakterlerin renk kodları POKE ediliyor. Raster interrupt yapıldığında sadece arka plan renklerinin değiştirilmesinden başka işler de yapabiliriz. Mesela iki grafik ekranı birbirine karıştırılabilir. Veya ekranda hem yazı ekranı hem de grafik ekranı gösterilebilir. Hattâ bu yöntemle aynı anda iki ayrı karakter setini kullanmak bile mümkün olabilir. Bu yöntem kullanılarak normalde C64'de mevcut olmayan efektler elde edebiliriz. Normal olarak sekiz sprite'dan fazlası gösterilmezken raster interrupt ile bu mümkün oluyor. İlk olarak sekiz sprite'ı ekranın üst bölümünde gösteririz. Belirli bir raster satırına gelindiğinde sprite koordinatları ve belirteçleri ayarlanıp ekranın alt kısmında başka bir sekiz sprite daha gösterilir. İsterseniz ekranı ikiden fazla parçaya bölebilirsiniz.
OYUNLAR İÇİN KOLAYLIKLAR
Burada sözü oyunlar için çeşitli kolaylıklar gönderen arkadaşlarımıza bırakıyoruz. Whrirynd (Nurettin Ali BERKOL, İstanbul) Oyuna başladıktan sonra Joystick'i sola çekerek ve F1'e basarak diğer bölümlere geçebilirsiniz.
Commando, Punchy, Hunchback, Boulderdash, Falcon, Patrol, Miner 2049'er (Hakan KANTAŞ, İstanbul)
Commando : POKE 2225,X
Punechy 1: POKE 15458,X
Hunchback POKE 1647,X
Boulderdash : POKE 4044,X
Falcon Patrol : POKE 4140,X
Miner 2049'er : POKE 2685,65:POKE 2474,255
X: Almak istediğiniz hak sayısı.
Phantoms of The Asteroid, Pitfall, Bmx Simulator,
Orpehus and Undereworld, Ghostbusters (Ethem ELA
GÖZ, Merzifon)
Oyunları yükledikten sonra RESET edin ve POKE'ları
yazın. SYS adressi ile çalıştırın.
POKE 30475,173
POKE 31266,173
POKE 24729,3
POKE 22753.,96
SYS 30210
Pitfall
POKE 5393,255
BMX Simulator
POKE 4503,X
SYS 4096
X yerine O ile 6 arasında bir sayı yazın
Orpehus and underworld
POKE 10118,X
SYS 9728
X yerine 1 ile 255 arasında bir sayı yazın
Ghostbusters İsim yazdıktan sonra Banka Nosuna 0, 12, PITY yazın ESRO.4 turbosu ile kilitlenmiş programları açan POKE komutları Programı yüklemeden evvel POKE 2048, 173 yazın. Program yüklendikten sonra POKE 2048, 0 yazın. Program artık açık. Bu bilgileri gönderen arkadaşlarımıza teşekkür ediyoruz. Şimdi bazı arkadaşlarımızın oyunlar hakkında sordukları sorulara cevap verelim. İstanbul'dan Nurettin Ali Berkol bazı oyunlarda yapılmasını söylediğimiz RESET işlemini soruyor. SYS 64738 komutuyla reset edebilirsiniz. Bir başka yol da reset switch kullanmak olabilir. Bu parçayı taktığınızda istediğiniz bir oyunun herhangi bir yerinde bilgisayarı reset edip oyunun içine girmeniz mümkün olur. Ancak List komutuyla oyunu göremezsiniz. Programı incelemek için bir monitör programı kullanmanız gerekir. Bursa'dan Savaş Akyavaş The Last Ninja oyununda bir sonraki düzeye canavarı öldürdükten sonra nasıl geçeceğini soruyor. Kendisi kaset veya disket kullanıcısı olduğunu belirtmemiş. İlk bölümün sonunda canavar uyutulduktan sonra normal olarak bir sonraki bölümün yüklenmesi gerekiyor. Eğer kaset kullanıcısı iseniz büyük ihtimalle sadece oyunun ilk bölümüne sahipsiniz. Program bir sonraki bölümü yüklemeye çalışıp başaramayınca ekran kararıyor.