aSMP modunu yaptım valla!

Arkadaşlar, zx spectrum’un 30 yılı dolayısıyla kafayı kırıp zx spectrumun ekran modunu genişletme teorimi pratiğe dönüştürdüm.

Zx Spectrumda çok renkli grafikler gösterebilmek için donanım limitinin 18 sütun olduğu gerçeğinden yola çıkarak, bu limiti daha efektif kullanmayı amaçladığım aSMP (a selective multicolor picture) isimli yazılım tabanlı ekran modunu oturup yazdım! Bu tür bir iş için engin bir donanım bilgisi gerekiyor, benimkisi o kadar engin değildi, şu anda bir hayli enginleşti 😀 Spectrum’un en ince noktalarına indim, derin tartışmalarda bulundum, cycle saydım, artık ortalama 30 opcode’un kaç ts tuttuğundan hangi flagleri nasıl modifiye ettiğine, opcode’un parçalarına kadar, ister istemez, ezberledim. Örneğin, PUSH HL, hemen ezberden yazayım, PC:4, Bus:1, SP:1, h:2, SP:1, h:2  şeklinde 11 ts tutuyor. Bu bilgiye ulaşmak da hiç kolay değil, lakin http://z80.info/z80ins.txt adresinde görüleceği üzere, PC aşaması direk 5 olarak görünüyor heryerde. Halbuki, bunun ilk 4 cycle’ı komutu okumak için, son cycle’ı ise bu komutun bus’a konması için harcanıyor, ve spectrum bunları ayırt edebiliyor. Hiçbirşey anlamadıysanız, sorun değil 😀 Pek de anlamak gerekmiyor belkide. 🙂

Sonuç olarak, henüz editörü yayınlamıyorum, fakat editörün çıktılarını buraya koyuyorum. Neden editör yok? Çünkü editör 23 nisanda, zx spectrum’un 30.yıl kutlamalarında çıkacak 😀

http://arda.kisafilm.org/fish/aSMPdemotapes.zip

içinde iki adet teyp dosyası var, fakat bunlara bakmadan önce %100 uyumlu, zx spectrumu tamamen emüle edebilen bir emulatör kullandığınıza emin olun. Efekt 1ts hassaslığında olduğu için bayağı keskin bir emülatöre ihtiyacınız olacak. Ayrıca dosyaları 48k modunda çalıştırmanız gerekiyor. Projeyi tamamladığımda 128k modellere uyumlu olacak, hatta 128k modunda 18 sütun limitini de kırabileceğime inanıyorum 😀

Spectrum için küçük, ama benim için büyük bir adım. Ayrıca 48k grafik özelliklerine güzel bir mod eklediğim için mutluyum. Artık kahvemden bir yudum alıp bekleyen işlerime dönebilirim! Dosyaları denemeye üşenenler için, bakın bu ekran modu nasıl birşeymiş (her iki resim de aynı ayarlarla çevrilmiştir):

Önce: Standard SCR ekran modu 8x8 clash
Sonra: Limitsiz aSMP çoklu renk modu 8x1
asmp gerçek spectrumda deneniyor, hiç sorun yok!

 

Comp.sys.sinclair Crap Game Competition 2012 başladı!

17 Yıllık bir gelenek, zx spectrum’un en eski ve en köklü geleneksel yarışması, dandik oyun yapma yarışması bu yıl bendeniz tarafından organize ediliyor 😀 Yarışmanın kuralı gereği bir sonraki organizatör, en kötü oyunu yapamayan yarışmacılar arasından seçiliyor. Kazanan kişi ise -en kötü oyunu yapabilmiş kişi- büyük şan şöhret kazanıyor (belki de birkaç hediye daha).

Zx Spectrum’un göz bebeği, en kral coder’ınyla en dandik programcısının yan yana yarıştığı ve şanslarının eşit olduğu bir yarışma düşünün. İşte bu o yarışma. Sizleri de berbat oyun yapma yarışmasına ısrarla bekliyorum.

http://cgc.zx.gen.tr

 

Online Dergi PLAZMA’nın yeni sayısı çıktı!

Plazma derginin bir hayli gecikmeli de olsa (şöyle bir 3-4 yıl oldu) nihayet çıktı! Normalde tek dergiyi 3’e bölünmüş halde buluyoruz. Bu bana biraz şu sözü anımsattı: “Bugün biraz açım, pizzamı 6 değil 8 dilime bölün lütfen”.

Tadından yenmez bir haz, birbirinden güzel ve Türk Dijital Kültürünü bizzat oluşturan ağızlardan çıkmış, hem yüksek hem düşük seviyeli yazılarla dolu enfes bir okuma bizleri bekliyor. Tüm yazarları gönülden teşekkürlerimi sunuyorum, yine (çoğunlukla) benzersiz bilgileri paylaştıkları için.

Haa, yazarlardan biri de benim, bu yüzden alçak gönüllü davrandım, dergi hakkında burada yazdığımdan çok daha fazlasını bulacağınızı garanti etmekteyim.

http://www.plazma-dergi.org

Dergi hakkındaki tartışmayı retrojen forumlarından takip edebilirsiniz:
http://retrojen.org/pano/index.php?topic=176

Solo oyuncunun dönüşü (mü?)…

Garip bir tesadüf sonucu, tam 3 yıl önce 30 kasım 2008’de solo oyuncu olmak üzerine bir yazı yazmıştım. Geçtiğimiz 10 günde, zaman zaman Elder Scrolls V “Skyrim” oynama fırsatı buldum ve Bethesda’nın nihayet turnayı gözünden vurduğunu hissediyorum. Oyunda bırakın çok oyunculu deneyimi, internetten paylaşılan yüksek skor tablosu bile yok. Tamamen kapalı, 100% tek kişilik oyun. Solo oyunlar geri dönüyor!

Skyrim, her dekor iyice cilalanmış. Fiyatını kuruşu kuruşuna hak ediyor.

Kabul etmek gerekir, koskoca, kesintisiz bir harita, çok detaylı modeller, harika animasyon, bitmek bilmeyen görevler, dengelenmiş silah/büyü/yetenek sistemi, npc kankalarla ortama dalmaca, harika ses kaydı, rastlantısal olaylar, aylarca mekanı gezip hala yeni bişeye rastlama olasılığı Skyrim’i diğer elder scrolls serilerinden ayıran süper özellikler.Fakat her şey multiplayer için öylesine iyi işleyebilirdi ki.

Sadede gelirsem, oyunun yönetmeni Todd Howard’ın yorumu gözlerimi yaşarttı: Creating multiplayer would also pull the development team from the single-player portion of the game and jeopardise the quality of the solo experience. “At the end of the day, that dev time is going to take away from doing the best single-player game we can, and that’s where our hearts are.”

Evet teşekkür ederim Todd, çok güzel bir solo deneyimini sunmak için daha az para kazanmaya razı geldiğiniz ve beni biraz olsun haklı çıkardığınız için 😀 Neden mi böyle düşünüyorum, bu oyun son zamanlarda tek kişilik bir oyuna yatırılmış en büyük bütçe. Zarar edeceklerini sanmıyorum. Eğer diablo 3′ çıktığında en ufak bir “pay for DLC” vakası yaşanırsa skyrim oynamaya devam ederim herhalde 🙂

Edit: Sözüm David Braben’e: Yıllardır Frontier’i network yapma planları ile harcayacağına, tıpkı GTA’ya özendiğin gibi, açık uçlu bir solo oyun yapsaydın ünün yürürdü. Şimdi oturmuş çinde yaptırdığın RaspberryPI ile oynuyorsun. Ayıp ya..

Edit: 03.04.2012– Bu yılın büyük bombası Diablo 3’ün yönetmeni Jay Wilson, Blizzcon’da üzerine bastıra bastıra, “bu oyun aslında bir tek kişilik oyun. Bu sebepten oyunun her aşamasını tek kişi ile geçilebilir şekilde tasarlıyoruz” dedi. Çok oyunculu kısım oyuna sadece bir flavour(lezzet) katmak amaçlı tasarlanmış.

Zx Spectrumda yeni bir görüntüleme tekniği: aSMP

Yok hayır, bu sadece bir teori. Ben uydurdum. Unutmadan yazayım dedim.

Şimdi, zx spectrum’un limitlerini konuşalım önce. Zx Spectrumda sadece 1 ekran modu var. O da basit. ekran 8×8 pixellik bloklara ayrılmış durumda. Bu bloklar 32×24’lük bir alanda, toplam 256×192 pixellik bir görüntü oluşturabiliyor. 8×8 pixellik bu alanlara “karakter hücresi” diyelim. Lakin tasarımın kökeninde ekrandaki 8×8 boyutundaki karakterleri (harf ve rakamları) rahatça görüntüleyebilmek yatıyor. Bu karakter hücrelerinin içinde sadece iki renk kullanılabiliyor. Bunlara Kağıt ve Mürekkep renklerinin karşılığı olan paper ve ink deniyor. Biri arkaplanı, diğeri ön plan rengini kontrol ediyor. Bu renkler siyah, mavi, kırmızı, pembe, yeşil, açık mavi, sarı ve beyaz’dan yani toplam 8 renkten biri olmak zorunda. Bunun haricinde, her hücrenin bir parlaklık kontrolü var. Bir hücrenin rengini parlak ya da normal yapabiliyoruz. Bu parlaklık hem arkaplan hem de ön plan rengine uygulanıyor. Yani koyu sarı üzerine açık sarı kullanmak mümkün değil. Tabii ki bu görüntü hiç cpu zamanı kullanılmadan görüntülenebiliyor.

Eğer cpu’nuza bir görev verip, görüntü işlemcisi ram’den bilgileri okumadan önce çok ince bir zamanlama ile renk bilgilerini sürekli değiştirirseniz, bu sefer multicolour dediğimiz moda ulaşıyoruz yani 8×8’lik renk limitini, 8×1’lik bir alana küçültebiliyoruz.

Multicolour modunu oluşturabilmek için cpu’nun ekran oluşturulurken sürekli çalışması gerek. Fakat buna karşın grafik işlemcisi çok daha hızlı tarıyor hafızayı ve tüm renkleri değiştirmek mümkün olmuyor. Bunun için zx spectrumda bugüne kadar ulaşılan en yüksek multicolor bloğu 18 sütun genişliğinde. Normalde bu grafikler 1995 yılında colordraw isimli boyama programının yardımıyla patlama yaptı. Colordraw maksimum 16 sütun kalınlığında grafikler oluşturabiliyor.

Fakat zx spectrum grafikleri ile uğraştıkça görüyorsunuz ki, bir multicolor grafiğin her hücresinin multicolour olması gerekmiyor. Çoğu zaman hücreler gerçekten 2 renk içeriyorlar. Hatta boş alanlar da var, ve gereksiz yere bunları doldurmak için cpu vakti ayrılıyor.

Geçen yıl Forever 2011’e katılmak üzere grafik çizerken bazı hücrelerin şiddetle detaylandırılması gerekiyordu. Geri kalanlar ise standard 8×8 modda gayet iyi işliyorlardı. Bu durumda tüm ekranı 8×1 lik hücrelere çevirme gayreti yerine, görüntünün farklı bölgelerinin multicolour olarak oluşturulması mümkün müydü? Konuyu zx spectrum’un zamanlama experlerine açtım.

Başta böyle birşey denenmediği için eleştirel yaklaşsalar da, sonra bu işin son derece mümkün olduğuna karar kıldık. Aslında önerim çok basitti: Colordraw’ın erişebildiği 16×24 hücrelik multicolour alanını ekranın farklı yerlerine dağıtmak. Bir grafik ile açıklamak istiyorum:

 

Orjinal PNG 24bit Grafik

Yukarıdaki grafik çevrim için kullandığım orjinal grafiktir. Bu grafiği bir araç yardımı ile zx spectrum grafiği haline dönüştürürsem aşağıdaki görüntüyü elde ederim:

Zx Spectrum Standard Mod, acele bir çevrim, pek güzel olmadı...

Görüyorsunuz ki zx spectrum iki renklik kutucuklar halinde görüntüyü gösterebiliyor. Bu sonuçtan kimse memnun değil. Eğer 18 sütunluk limit olmasaydı, bir multicolour grafiği şöyle görüntülenebilirdi:

Zx Spectrum Multicolour grafiği, fakat burada 18 sütunluk limit esnetilmiştir.

Tabiiki yukarıdaki görüntü kısmen daha güzel. Kısmen diyorum çünkü hala 8×1’lik hücre limiti mevcut. Ayrıca yukarıdaki görüntüyü zx spectrumda oluşturmak pek mümkün değil, çünkü şu ana kadar ulaşılan en geniş multicolour alan 144×192. Yukarıda 256×192 var. Yukarıya bakarsanız, sadece iki rengin hüküm sürdüğü bir çok alan var, örneğin örümcek adamın kıyafetinde bazı kısımlar sadece 2 renk içeriyor. Bu alanlarda multicolor kullanmaya gerek yok. Bu durumda,

Yüz, kontürler ve tuğlaların bazıları

önümüzdeki limit doğrultusunda yatay olarak 16 hücreyi aşmayacak kadar (çoğu zaman bu çok bile fazla geliyor, 8-10 hücre yeterli) multicolour hücreleri seçiyor ve sadece onları güncelliyoruz. Cpu zamanı bunlar için yeterli oluyor. Sonuç ise biraz daha düzeltilmiş, tam ekran, yarı multicolour, yarı standard colourdan oluşan bir tam ekran grafik:

Sonuç: bindirme ile yaratılmış tam ekran grafik

Bu ne standard grafik, ne de multicolour. İkisinin birleşimi, teorik olarak mümkün, henüz pratiğe dönüştürülmedi, ama yakında bu fikrin uygulamaya dönüşeceğinden emin olabilirsiniz.

 

Bu tekniği kullanarak Diver ve Riskej gibi zx grafik ustalarının neler yaratabileceklerini düşünemiyorum bile.

 

Zx Spectrum Graphics (G) Mode Editor: CheqEdit (For Zx Spectrum and ZX81)

CheqEdit
it’s a simple and small program that helps you to draw 64×48 graphics on screen in GRAPHICS MODE. Program can output as text in CHR$ format, control codes format, a special compressed data format or special Basin/Zmakebas format, all in Basic. (Edit: Chris Cowley reminded me that this mode is native resolution for ZX81, and as CheqEdit already supports zmakebas style output, it is somehow compatible with zx81 graphics.)

Program can also import/export image files (bmp, png, jpg etc..).
What is it for?
if you want to create big graphics using G mode, this program can help you.

How to import text into zx spectrum?
This is tricky, you have to find an emulator or a tool to convert plain text into zx basic format. I recommend using basin. For Zx81 there is a program called “zxtext2p”. You can find it’s web address at the bottom of the post.

Here is the screens:

Editing with a mouse (screencap software couldn't capture mouse)

Read more and download:

Zx Spectrum Graphics (G) Mode Editor: CheqEdit (For Zx Spectrum and ZX81) yazısına devam et

Before I forget: Vintage thoughts