Merhaba sevgili e-bergi okurları, Bu yazı dizisinde hep beraber atari 2600 için oyunun veya uygulamanın nasıl hazırlandığına aşama aşama bakacağız.

Neden atari?

Neden telefon için uygulama yapmıyoruz veya Windows'a program yazmak yerine atari için oyun yapıyoruz? Çünkü çoğumuzun çocukluk yıllarının unutulmaz parçaları olan oyunların nasıl hazırlandığını merak ediyoruz. Ayrıca birazdan da göreceğimiz gibi atari için oyun yapmak, aslında çoğu platform için uygulama geliştirmekten çok daha zevkli. Çünkü oyun için görüntü üretip, kod yazmak dışında yapmamız gereken şeyler olacak.

Peki neden atari 2600?

Eski bir sistem, fakat atariler arasında en populeri olduğu için kaynak sıkıntısı yok. Ayrıca eski bir sistem olduğu için her şey geliştiricinin elinde. Oyunun ekrana nasıl yansıtılacağını bile kendiniz ayarlama zevkine sahipsiniz.

O zaman biraz iş konuşalım..

Bu genel kültür bilgilerini biraz daha ayrıntılı inceleme zamanı geldi gibi. Atari aslında bilgisayar tanımına rahatlıkla uyuyor(memory, i/o, programralanabilirlik...)

Peki ne var bu atari kutusunun içinde ona bakalım:

6502(İşlemci): İşlemci modelimiz bu efendim. 6507 kılığında bir 6502. 8 bitliktir kendisi. 1.1947 Mhz işlem hızına sahip. Bu miktarın neden gerektiğini de göreceğiz. Ayrıca Terminator ve Futurama’daki Bender’ın üretiminde de kullanılmıştır. Şu an 65XX model işlemcileri üreten tek firma Western Design Center’dır.

TIA(Television Interface Adapter): Bu parçamızın asıl işlevi atarinin komut olarak işlediği görüntüleri televizyona yansıtmak. Televizyonlarda kullanılan görüntü işleme sistemi ülkeden ülkeye değişmekle beraber 3 adet sistem vardır: NTSC, PAL ve SECAM. TIA bu sistemlerle uyumluluk gösterecek şekilde üretilmiştir.

ROM: ROM ataride halk arasında “kaset” dediğimiz ve içinde çeşitli oyunların kodlarını bulunduran harici diske tekabül ediyor .Unutmadan bir de 4 kb hafızaya sahip. Biz de yarattığımız oyunu bu 4 kblık hafızaya yükleyip ataride deneyebileceğiz.

RAM: RAM herhalde RAM, her bilgisayarda olan. Ama bu sefer sadece 128 kb! Zamanında hafıza pahalı bir şey olduğu için Atari firması biraz cimrilik yapmak zorunda kalmış. Ama rahat olun eğlence yeni başlıyor.

VRAM: Bu güzide parçamız da bitleri piksel ve renklere dönüştüren bir çip. Ekran çözünürlüğü ve renk yoğunluğu bu çipin hafıza kapasitesine bağlı. Bir nevi ekran kartı diyebiliriz. Ekran kartımız bile var daha ne olsun derken bakıyoruz ki VRAM in kapasitesi 0 kb!Atari firması hayatının en büyük cimriliğini yapmış bu konuda.VRAM işini de biz yapacağız artık ne yapalım. Aslında biraz da zevkli bir iş. Pikselleri falan da kendimiz çizeceğiz.

İşletim Sistemi(OS): Yok öyle bir şey. Yani bilgisayar gibi dediysek de o kadar değil. Şimdi 9999 in 1 yazan kasetlerin yapımcısına ettiğiniz küfürleri geri alabilirsiniz çünkü gördüğünüz gibi bir atari oyunu kolay geliştirilmiyor.

Girdi – Çıktı (input - output): Girdi olarak oyun kolumuz, çıktı olarak da televizyonumuz var.

Geliştirme döngümüz nedir?

Atari donanımını kısa bir şekilde tanımış olduk. Peki geliştirme yaparken neler yapacağız? Hangi dili kullanacak, yazdığımız kodu nasıl derleyeceğiz? Diyelim ki her şeyi yaptık, oyun bitti. Yaptıklarımızı nerede test edeceğiz?

Geliştirme dilimiz ve ortamımız:

Aslında Linux olsun isterdim ancak kullanacağımız bazı programlar sadece Windows’a uygun olduğu için Windows'ta geliştirme yapacağız. Programlama diline gelirsek, atari 2600 için eski bir sistemdir dedik, donanımını bilmemiz gerekiyor dedik, yani programlama dilimiz ne olabilir? Tabi ki Assembly. Vee Assembly dili de işlemciye yönelik olduğu için Assembly 6502. Fakat günümüz programcıları biraz kolaya kaçtığından 2005-2007 yılları arasında batari Basic adı altında Basic diline benzer derlenebilen bir dil geliştirildi. Assembly ile yazdığımız kodu assemble ettiğimizde veya batari Basic kodunu derlediğimizde elimize bir binary dosyası geçecek. Peki biz hangi dili kullanacağız derseniz, olabildiğince Assembly.

Test etme:

Kodumuzu yazdık, derledik veya assemble ettik. Her şey tamam, bir de yazdığımızı deneyelim, nasıl bir şey olmuş diyoruz. İki seçeneğimiz var. İlki emulatorde, ikincisi ise ataride denemek. “Emulator nedir, atari için ne gibi emulatorlar var? Bu kodu nereye yazacağız?” gibi soruların cevabı da birazdan.

Araçlar:

Text editor veya IDE:

Text editor olarak istediğiniz editoru kullanabilirsiniz. Tek şartımız bunun assembler ya da batari basic derleyicisi tarafından okunabilir formatta olması. Bundan kasıt ASCII değerlerinin korunması. Yani seçiminiz Notepad de olabilir. Asıl tavsiyem bir IDE(Integrated Development Environment: bütünleşik geliştirme ortamı) kullanmanızdır. En çok işimize yarayacak olan IDE ise Crimson Editor. (İndirme linki yazı sonunda yer alıyor).

Assembler:

Bildiğimiz üzere Assembly derleyicisine Assembler denir. Assembly ile yazılmış bir kodu çalıştırabilmek için bir Assembler ile derleme işlemini yapmamız gerekir. Bu işlemden sonra .bin uzantılı bir dosya -binary dosyası- oluşturulur. Oyunumuzu test ederken .bin uzantılı bu dosyayı kullanacağız.

Assembler olarak da DASM yi kullanacağız.

Emulator:

Sizin için sanal bir ortam ya da makina yaratan program. Bizim konumuzda emulator, oluşturduğumuz binary dosyalarını gerçek bir atari ortamındaymış gibi denememizi sağlayan bir program olacak.

Aslında teknoloji gelişti ve yazdığımız atari oyunlarını birden fazla yöntemle gerçek bir ataride deneyebiliriz. Fakat oyunumuzu ataride denemek uzun bir süreç olduğundan, oyunumuzu atari yerine çok kısa bir sürede atariyle aynı performansı alabileceğimiz emulator ortamında deneyebiliriz.

Atari 2600 için birden fazla emulator kullanacağız. Birden fazla emulator demek hata sayını minumuma indirmek demek. Bizim kullanacağımız emulatorler ise stella ve z26. Stella açık kaynak kodlu olduğundan genelde Windows dışındaki işletim sistemlerinde kullanılır. (İndirme linklerini yazı sonunda bulabilirsiniz).

Anlatacaklarım bu yazı için bu kadar. Gelecek sayımızda devam edeceğiz. Görüşmek üzere.

İndirme Linkleri:

Assembler(DASM):

http://sourceforge.net/projects/dasm-dillon/

Emulatorler:

z26: http://www.whimsey.com/z26/

stella: http://sourceforge.net/projects/stella/

IDE :

Crimson Editor:

http://www.crimsoneditor.com/

2600IDE: http://atariage.com/forums/index.php? app=core&module=attach§ion=attach&attach_id=40557

Kaynaklar: