Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.

Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz

  Gelişmiş Arama
insanın içinde varsa, commodore.gen.tr açığa çıkarır bunu.. bir nevi retro olaylarının dolunayıyız.(Arda)
commodore.gen.trAmigaAmiga YazılımAmiga Blitter ile Bob Test 2
Sayfa: 1 [2]   Aşağı git
Yazdır
Gönderen Konu: Amiga Blitter ile Bob Test 2  (Okunma Sayısı 12356 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
tolga abaci
Uzman
*****
Mesaj Sayısı: 641



Üyelik Bilgileri
« Yanıtla #15 : Ocak 15, 2014, 20:12:10 ÖS »

@Simon: Bu eleman enteresanmış gerçekten. ZPU güzel birşeye benziyor, özellikle böyle ufak ve gcc toolchain'i olan bir soft CPU FPGA projelerinde bayağı faydalı olabilir. Biraz daha inceleyeceğim.

@ibo1973: Elimde şu anda boşta yapılı olarak floppy emu yok, 1 tane prototip olarak yaptığım var kendi kullandığım. O proje ile uğraşmayalı bir hayli zaman geçti, bütün materyalleri parçaları yazılımı falan bir ara vakit bulup tekrar elden geçirmem lazım.
Logged

"Finished products are for decadent minds." -- attributed to Hari Seldon, in Isaac Asimov's Second Foundation.
ibo1973
Uzman
*****
Mesaj Sayısı: 2.499


Üyelik Bilgileri
« Yanıtla #16 : Ocak 15, 2014, 20:21:09 ÖS »


@ibo1973: Elimde şu anda boşta yapılı olarak floppy emu yok, 1 tane prototip olarak yaptığım var kendi kullandığım. O proje ile uğraşmayalı bir hayli zaman geçti, bütün materyalleri parçaları yazılımı falan bir ara vakit bulup tekrar elden geçirmem lazım.

Tamam sağol
Logged
wizofwor
Genel Yönetici
*****
Mesaj Sayısı: 4.789


Gosub ile gidilen yerden goto ile dönen adam


Üyelik Bilgileri WWW
« Yanıtla #17 : Ocak 15, 2014, 22:45:29 ÖS »

@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?

Logged

blackturk
Uzman
*****
Mesaj Sayısı: 1.283



Üyelik Bilgileri
« Yanıtla #18 : Ocak 16, 2014, 10:28:58 ÖÖ »

@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.html

http://amigadev.elowar.com/



   
Logged

A1200 | APOLLO 1240 32 MB | CNET PCMCIA | SYSINFO SPEED TEST 30 MIPS
SM1,SEGA MEGA CD,SM2,SMS II,Sega Saturn Mod ve AR 4MB,PSX Mod ve Mpeg ,PSX2 ,SNES ,ATARI 800XL,SPECTRUM 128K +2,YAMAHA CX5M MSX,ATARI 520 STFM,1040 STF,C64,C128,1541 II,1571,RAM 1764 ,A500,A500+,A600,A590,IDE68k,2X1084S,1084P
wizofwor
Genel Yönetici
*****
Mesaj Sayısı: 4.789


Gosub ile gidilen yerden goto ile dönen adam


Üyelik Bilgileri WWW
« Yanıtla #19 : Ocak 16, 2014, 11:02:58 ÖÖ »

Anladığım kadarıyla chip-ram bus üzerinde çalışırken işlemcilerin birbirini bekletme olayı var. Eğer sen blitter'a çok yüklenirsen, Agnus verdiğin işleri yaparken CPU'yu da bekletiyor değil mi? İşlemcinin tekrar araya girme durumu yok. Bütün sistemin yavaşlaması bu yüzden. Belki çok basit şeyler soruyorum. Ana programı fast-ram'a alırsak o zaman durum ne oluyor? Bu durumda CPU kimseyi beklemiyor tamamen bağımsız çalışıyor değil mi?

Bob Testlerini daha iyi anlamak için Graphics library ve Graphics Elements mevzusuna biraz baktım ama altta yatan donanıma hakim olmayınca C'nin sağlandığı abstraction layer bana zulüm geldi. Sanıyorum son zamanlarda asm'de yoğunlaşmış olmanın getirdiği bir şey. Galiba önce bir Amiga Guru Book edinip onu hatmetmem gerekiyor.
Logged

Sayfa: 1 [2]   Yukarı git
Yazdır
Gitmek istediğiniz yer: