@blacturk:
Takip ettiğim kadarıyla Amiga'da assembly değil C kullanıyorsun. Bu durumda Denise ve Agnus'la birebir haşır neşir olma durumun yok değil mi? Yani C64'de yaptığımız gibi yazmaçlara değer atama, sprite pointer ayarlama vs. hikayeleriyle uğraşmana gerek kalmıyordur.
Amiga ile hiç uğraşmamış biri olarak, programı workbench'de pencere içinde çalıştırıyor olman en başta çok acayip geldi ama bu da sanıyorum fazla zor bir şey değil. Playfield tanımlıyor bob'ları içine yerleştiriyor olmalısın.
Merak ettiğim animasyon kısmı. Bob'ların hareketleri de tamamen chipset tarafından mı gerkçekleştiriliyor? Yoksa CPU'nun da müdahil olduğu yerler var mı? Bir çok yerde bob'ların sayı ve boyutarının sınırsız olduğu ama aşırı kullanımın sistemi yavaşlattığı yazılmış. Burada bahsedilen yavaşlık blitter'ın veriyi yetiştiremeyek ekranda titreme vs. sorunlara yol açması yoksa tüm sistem mi yavaşlıyor?
Programı VBCC Cross compiler ile windows üzerinde yazıyorum.Programın icersine rahatlıkla assembly kodlarını gömebiliyorsun.Program tasarımını bağlı olarak istediğin gibi İster c dilinden ister assembly kullanıyorsun.Assembly daha cok Ceşitli amaclar icin rutinler yazılarak kullanabilirsin.Bu rutinlerin donanım üzerinde kontrol yapabilir.Örnegin Cia chiplerin registerlarına erişim veya Agnus register'ları olabilir.Amiga C dilinde hazır library ve fonksiyonlar olmasına rağmen herşey o kadar kolay değil.
Benim yaptığım Blitter object kullanmak icin Workbench window,screen yapısını ve Gels header icersinde tanımlı fonksiyonlar ve parametreleri bunları tek tek yaptığın programa göre doğru parametreleri vermek yoksa sistem hata verir yada programın istediğin gibi calışmaz (Ben bunlarla ilgilli 2 hafta uğraştım diyebilirim.).Eğtim dökümanında bile bak bu bob bunun şu parametreleri var.Sen yaz bu direk calışır.Gibi durum söz konusu değil.Ben bob test programında Workbench screen üzerinde window icersinde olcak şekilde tasarladım.Bunu Yeni bir screen üzerinden Gösterilebilir.Bunun icin tasarım ilgili düzenleme yapıp.Kullandığım parametre ve rütinlerimi yendiden düzenleyerek kullanabilirim.window penceresinde 16x16 pixel 4 renk kullanan blitter object olarak tasarladım.Bob'lar sprite gibi bir kac parametreden oluşmuyor.kullanımı ise sprite gibi x , y kordinatlarında belirlediğimiz bir hızda hareket ediyor.Bob'lar playfield alandaki plane'ler icersinde etkileşimli olarak parametre veriyorsun . Örneğin bob yapısı icersinde plane pick ve plane off parametre ile etkileşimle oluşturuyorsun.
bob'ların hareketini kontrolüm altında değiştiriyorum.Bob sayısını artırmak görüntü oluşturmada yavaşlamasına sebeb oluyor.Tabi workbench sistemi icersinde böyle.Bence sistemin yavaşlaması şundan olmalı blitter hafıza ilgili yoğun bir işleme girdiği icin olabilir.İş sadece C bilmek icin yeterli değil.Amiga os ve Donanımı iyi bilmek gerekiyor.Amiga demo ve oyunların coğu Assembly dili yazıldığı icin daha kaliteli oluyor.
Amiga c ile birşeyler yapmak ve öğrenmek isteyen arkadaşlara aşağıdaki ingilzce dökümanlardan yararlanmasını tavsiye ederim.
aminet.net/dev/src/RKMCompanion.lha
http://www.pcguru.plus.com/tutorial/amiga_c.htmlhttp://amigadev.elowar.com/