Kategori arşivi: Sinclair Zx Spectrum

Toprağın bol olsun, Joffa

Zx Spectrum dünyasının çok sevdiği, çılgın ama samimi kişilik,  80’lerde zx spectrum’daki en iyi kodu yazan adam Jonathan Smith’i ölümünün birinci yılında anıyoruz.

Bu kayıp aslında 8bit kuşağının yakında iyice alışacağı kayıpların ilklerinden. Forumlarda bizimle yazışan bu joffa’nın attığı mesajları gördüğümde hep tuhaf oluyorum. Henüz başımıza gelmedi çünkü biz dijital çağın çocukları, internetin yaşı gibi genç olduğumuz için internet henüz ölmüşleri loglayan bir mezar yığını haline gelmedi. Bundan 20 yıl sonra her forum, her site, her blog ölmüşlerin attığı mesajlarla dolu olacak. Belki o zaman buna herkes alışmış olacak ama henüz çok hazırlıksızız.

Crash Dergisi, henüz Jonathan Smith’in kim olacağını bilmeyerek şu sözlerle anlatıyordu:

“Smith must be very abnormal person, everything is so out of this world, his imagination or his inspiration comes from nightmares”

(Smith çok sıradışı biri olmalı, herşey öylesine yabancı ki, hayal gücü ya da esin kaynağı kabuslardan geliyor olmalı)

http://www.worldofspectrum.org/showmag.cgi?mag=Crash/Issue15/Pages/Crash1500032.jpg

Joffa, toprağın bol olsun.

Son olarak, şu belgeselde joffa’nın bu mesleğe ilk atılışı görünüyor,dakika 3:22 ‘de.

http://video.google.com/videoplay?docid=-1012096952890708986#

Yine Ghostbusters, ama daha güzeli…

Ghostbusters oyununu ilk gördüğümde, o zamana kadar platform, shoot-em up ve horace serisini oynamış biriydim. Ghostbusters filmi de beni etkilemişti zaten. Oyunu yüklediğimde banka hesabıdır, alışveriştir, sokaklarda araba kullanmak ve hayaletleri çekmek, haritada gezmek, hayaletlere yemlerini bırakıp onları yakalamak, ve o zamanlar bir türlü çözemediğim “haritada dolaşan anahtar ve kilitle ne yapacağım, marshmallow man’in gelmesini nasıl durdurabilirim?” gibi sorular beni bu oyunu uzun süre oynamaya sevk etti. Oyunun tasarımı sıradışıydı.

Oyunun üzerinden neredeyse 30 yıl geçmişken, ekranı çizme şeklinin ne kadar ilkel olduğu konusunda bir tartışma çıktı wos’da. Oyun görüntüleyeceği her kareyi önce bir backbuffer’a çiziyor, sonra bir LDIR komutuyla kopyalıyor.  LDIR devasa bir operatör, 21 tstate harcıyor, bunun yerine açılmış bir LDI turu ve POP/PUSH metodu ile bu kopyalama işlemi ortalama 10-15tstate içinde yapılaibliyor. Sonuç olarak tek bir ldir operatörü yerine alengirli bir metodla ekranı kopyalayan ghostbusters’ı (48k) önce hazırladım, sonra da SnapToTap ile Teyp dosyası haline getirdim. Oyun artık %25 daha hızlı çalışıyor, ayrıca %35 daha hızlı yükleniyor (bitbuster sağolsun) , güle güle oynayın 🙂

Ghostbusters/pop/push patch (Jimmy): http://www.worldofspectrum.org/forums/showpost.php?p=533092&postcount=43

Download (20kb)

 

Connecting Ericsson Chatboard to a GP32

What the heck is a GP32?

It’s a first generation “open” handheld console, possibly the first one. Gp32 is designed and sold by a Korean Company called Gamepark (Creators of caanoo, wiz, gp2x etc). It has a big 3.5″ color LCD, 133mhz 32bit ARM processor, 8MB ram. It has no custom cpu or gpu, everything is handled by the CPU. The GP32 was sold between 2002-2005, then superceeded by Gp2X.  In it’s golden years, the console’s community was flourished by counltess homebrew originals, countless software ports and hardware hacks. There are even some original boxed smc cardtridge games. There are no official sales figures, but GP32 is suspected to sold about 15000 units worldwide.

a GP32 handheld console

We will take a look at the keyboard enhancement for GP32: a simple chatboard hack. Read on:

Connecting Ericsson Chatboard to a GP32 yazısına devam et

Zx Spectrum’da SNA to Tap converter

Çevirici

 

 

Buraya yazmaya unutmuşum nedense. Halbuki bu benim en memnun olduğum çalışmalarımdan biriydi. 2010’un kasım ayında biraz da kafamı dağıtmak için zx microdrivelar ile oynamaya başlamıştım. Hazır elimde 10-15 kartuş olduğu için bunların içine sevdiğim oyunları doldurup hızlıca yüklemek istedim. Ne kadar masum bir istek, bu programa dönüştü:

 

Tabii bu işi yapmanın sürükle-bırak şeklinde olmasını beklemiyordum. Ama yine de küçük bir uğraşla başarılması gerekir öyle değil mi? Fakat işin aslı böyle değilmiş, çünkü zx spectrum’a çıkmış oyunların neredeyse tamamı kendi özel yükleyicilerini (custom loader) kullanıyordu ve bu yükleyiciler teyp’den gelen veriyi yüklemek üzere tasarlanmıştı. Dolayısıyla tap ya da tzx dosyalarını orjinal halleriyle microdrive’a atarak yüklemek imkansızdı. Çünkü oyunun loader kısmını microdrive’dan yüklediğinizde çalışan program verinin devamını teypten yüklemeye kalkıyordu.

Sonra aklıma emülatör snapshot formatları geldi. Snapshot’lar bilgisayarın tüm hafızası ve z80 işlemcisinin yazmaçlarını bir dosyaya görüntüleyen imajlardı. Bunları microdrive’dan yüklemek çok kolay olmalıydı!!! …mı acaba? Değildi elbette. Çünkü imaj dosyaları sadece tüm ram’i kaplamakla kalmıyor, z80 işlemcisinin de yazmaçlarını kaplıyordu. Bu durumda sizin sinclair basic’den çağırdığınız LOAD eylemi, yükleme tamamlandığında tekrar basic’e dönmek istiyordu, fakat imaj tüm hafızayı kapladığı için geriye dönülecek bir basic kalmıyordu. Dolayısıyla hem oyununuz kaldığı yerden devam edemiyor, hem de z80 yazmaçları henüz yüklenmemiş oluyordu. Bu durumu bertaraf etmek için tüm sna2tap tarzı araçlar yine kendi özel loader sistemlerini geliştirmişlerdi. Fakat, doğru tahmin ettiniz, başa döndük, dönüştürülen dosyalar yine teypten yüklemek için tasarlanmış oluyorlardı!!! Yani microdrive’a özgü bir loader yazmadıkça ya da standard loader ile yüklenen bir tap dosyası oluşturamadıkça hiçbir oyunu microdrive’a çeviremeyecektik!!!

Bir çıkmaza düşmüştüm. Nasıl olabilirdi bu? Bu devirde, zx spectrum gibi emülasyon sahnesi çok hareketli bir platformda hala yazılmamış bir çevirici?!

Problemin çözümü de kolay değildi. Çünkü standart loader veriyi yükledikten sonra basic’e dönmek istiyor, ki siz de öyle olmasını istersiniz çünkü veri yüklendikten yine basic’den vereceğiniz bir komutla yazmaçları yükleyip, oyunu kaldığı yerden devam ettirecek kodu başlatmanız gerekecektir. Yani BASIC oyun başlatılana kadar hafızada kalmak zorundaydı.

Birkaç deneme yaptım. Acaba basic güvenli olarak kaç byte alana ihtiyaç duyuyordu? Eğer hiçbir aygıt takılı değilse 500byte kadar. Tabii microdrive taktığınızda yeni eklenen komutların değişkenleri sayesinde bu biraz yükseliyor. Yetmiyor, bir de loader kod çalıştırmalısınız, yani minimum:
10 LOAD “” CODE: RANDOMIZE USR 40000
bu kod aşağı yukarı 50 byte yer kaplasa sonuç 1kb. Biraz da pay bırakınca (printer takarsanız buffer 256byte mesela) 1.4kb alan gerekiyor. Ayrıca bir de asm ile yazılmış bir başlatma koduna ihtiyacınız var. Bu kod işlemcinin yazmaçlarını dosyada göründüğü gibi yükleyip, PC yani dosyadaki Program Counter’a zıplaması gerekiyor. 17 byte zaten yazmaç verisi tutuyor. 22byte’da yükleyen kod. minimum 39byte daha. Eğerki microdrive’a yükleyecekseniz demin yazdığımız LOAD “” CODE kısmı LOAD *m,1,”dosya” CODE XXXXX,XXXXX şeklinde düzenlenmeli, yani daha fazla byte gerek.

Uzun lafın kısası, oynamak istediğimiz oyunun kapladığı hafıza içerisinde kesintisiz olarak bulunan 1355byte’lık bir alana ihtiyaç var. Bu alanı ne için kullanacağız? Snapshot imajının BASIC’le kesişen 1.4kb’lık kısmını bu boş alana taşınması, ve yükleme tamamlandıktan sonra oyun başlatılmadan önce yerine geri yapıştırılması gerek. Ve bu son yapıştırma işlemi basic ile değil, asm koduyla halledilmeli ki basic güvenle silinebilsin.

Fakat böylesi büyük bir “düzlük” her oyunda bulunamıyor. Oran %50 diyebilirim. Yani yöntem her durumda çalışmıyor. Daha kökten bir çözüme ihtiyaç vardı ve bu blog’u okuyan birçok kişinin aklına geldiği gibi, ben de sıkıştırma çözümlerini kurcalamaya başladım. Zx spectrum z80 işlemcili olduğu için ortalık sıkıştırma programı ile dolu. Zip, rar, ace, lha, lzh gibi tanıdık formatlar için bile kodlayıcı/çözücüler var. Fakat çözücü kısmın da ram’de depolanacağını, her çözücü kodun benim imajımdan yer yediğini düşünürerek küçücük bir çözücüsü olan bir sıkıştırma programına ihtiyaç duyuyordum. Ama aynı zamanda bu program bana her durumda en az %10 sıkıştırma sağlamalıydı.

Uzun ama çok uzun denemelerimden sonra bu işi başaracak çok alternatif olmadığını gördüm. Ama en ilginci bitbuster idi. Kardeş platform diyebileceğim MSX için yazılmış bitbuster extreme windows tabanlı bir paketleyici, z80 tabanlı 79byte büyüklüğünde bir decoder’den oluşuyordu. Beni biraz uğraştırsa da (asm konusunda biraz acemiyim) bitbuster’ı kendi ihtiyaçlarıma göre bir gecede düzenledim, sonuç 88byte olmuştu. Bitbuster etkileyiciydi, snapshot dosyaları standard 49kb boyutundadırlar, bu formattaki chuckie egg 11kb, Cobra 23kb ve tüm hafızayı kaplayan ve 1 byte bile boşluğu olmayan batman 33kb’a kadar küçülebiliyordu. Bu basic için istediğim kadar ram’e sahip olmam demekti. Tabiiki sonuç olarak yüklenen imaj 88byte bozulmaya uğramak zorundaydı. Bunu ekrana yüklemeyi tercih ediyorum. Eğer snapshot’larınızı ekran tazelenmeden önce alırsanız, oyununuz başlatıldığında ekran yeniden çizileceği için bitbuster’ın izi de ortadan kalkabiliyor.

Sonunda c# ile dosyayı sıkıştırıp uygun pozisyonlara yerleştiren “visual snapshot converter” adında bir program yazdım. Bu program zx spectrumda snapshot dosyalarını standart loader ile yüklenebilen TAP dosyaları haline getiriyor. Bu yöntem üretilen dosyaları tüm zx spectrum donanımlarına uyumlu hale geliyor olması demek oluyor.

Yukarıda anlattıklarım 7.11.2010 ile 23.11.2010’u kapsayan aralıkta başlayıp sonlanmış bir olaylar silsilesidir. Fikirlerin çoğu, arkadaşım ASM ile yaptığımız tartışmalar sırasında çıkmıştı. Ben kendi çeviricimi yapmaya çalışırken asm benden önce birşeyler kotarıyor, çıkan yeni problemleri farkedince geliştiriyordu.

Asm, farklı bir yöne gitti, o RLE sıkıştırmaya yöneldi, bu şekilde her seferinde 1.4kb kazanmak mümkün olamayabiliyor. Oran %85 civarında. Ayrıca asıl hadef TAP dosyası üretmek iken, asm direkt olarak wav dosyaları üretmeyi seçti. Bence ses dosyası üretmek başlı başına bir problem. Eğer komut satırından çalışan zxBoot’u edinmek istiyorsanız buraya tıklayın.

Şu anda asm’nin Zxboot’u ve benim yazdığım Visual Snapshot Converter dışında bu işi yapan program yok. Ama benimki daha şekilli oldu :))

Denemek isteyen buyursun, sonuçta deneysel bir sürüm daha var burda, proof-of-concept diyebiliriz. Onun için her çevrimden önce programı kapatıp açmanızı tavsiye ediyorum.

 

 

Simplistic Version, SnapToTap R2
Simplistic Version, SnapToTap R2

Nasıl kullanacaksınız?

Kolay: Yükle, sıkıştır, kaydet.

Detaylı anlatım:

1.Sadece Zx spectrum 48k SNA formatında dosyaları çevirir. Bir SNA dosyası bulunuz. Bu dosyalar tipik olarak 49kb boyutundadırlar.

2.”Open 48k Sna” butonuna basın ve bu dosyayı seçin. Dilerseniz show memory map seçerek zx spectrum’un ram’inin grafiksel olarak görüntülenmesini sağlayabilirsiniz.

3.Otomatik olarak sıkıştırma penceresine geçilecek, “Compress” butonuna basınız.

4.Sıkıştırma işlemi karışık ve yavaş. 100% olana kadar bekleyiniz. Hiçbir düğmeye basmayınız.

5.100%’e ulaşınca “APPLY” butonuna basarak değişiklikleri onaylayınız.

6.Çıkış penceresinde loader seçimi yapınız. Şu anda sadece microdrive ve teyp var, ileride +3Dos disk yükleme programcığını da ekleyeceğim, şu anda sürücü lastiğim kopuk olduğu için deneyemiyorum 😀

7.”Save” butonuna basın.

Bitti.

Son Sürüm için aşağıdaki bağlantıyı takip edin eski sürümler için sol taraftan “Downloads and Development” bağlantısını takip edin:

Snaptotap 2.4 güncellemesi

 

 

ZX Spectrum: Elite Collection (iPhone)

25 yıllık yazılım firması “Elite”, yeni iTunes uygulamalarını duyurdu:

Bugünden itibaren iPhone kullanıcıları, sadece 56 Pence’e (1$’dan az) zx spectrum emülasyonu yapabilecekler. Elite Kolleksionundaki oyunlar şöyle imiş:

– Turbo Esprit #3 on top 100 best games, voted for by visitors to World of Spectrum
– Saboteur #10 on top 100 best games
– Chuckie Egg the classic, developed by Nigel Alderton
– Harrier Attack inspired by the conflict in the South Atlantic
– Frank Bruno’s Boxing the UK #1 Best-Seller
– Buggy Boy the arcade original driving game

http://www.elite-systems.co.uk/elite/htdocs/user_home.php?show=26

Doğrusu, Chuckie Egg’i düşününce, touch screen kullanarak nasıl oynanacağını bilemiyorum. Kaldı ki, diğer oyunların aksine, bence o oyun sadece ve sadece orjinal 48K’nın kauçuk tuşlarıyla mükemmel oynanabilir.

SpecOS prototipi başladı…

Çok uzun zamandır birçok 8bit camiası, küçük bilgisayarlarını büyük işler yapabilmesi için modifiye ediyor, devasa kartlar üretiyor, hatta bilgisayarı baştan tasarlayanlar bile oluyor. Neden bilinmez, bu genişletmelerin hiçbiri taraftar bulmamıştır, genellikle üzerinde yazılım bulunmaz, yapması satın alması zordur, bulunmaz ya da pahalıdır.

SpecOS, ZX spectrum’u geliştirmekle uğraşmakansa, elimizde zaten bolca bulunan eski pc’lerimizi zx spectrum olarak kullanmamızı sağlaacak bir işletim sistemi projesi. “Ortalıkta ram genişletme, ekran renklerini arttırma, harddisk ve mouse bağlamaya yarayan parça parça projeler var, fakat sıradan bir pentium 133 laptopta dahi bunlar bir arada bulunuyor, öyleyse neden spectrum’a donanım eklemekle vakit kaybediyoruz? Donanım zaten orda, hem de atıl şekilde duruyor” fikriyle bu işe başlayan Paul, şu anda işletim sistemini windows altında geliştiriyor ve deniyor. SpecOS bittiğinde, bir ekran kartı, network kartı, tam klavye ve mouse, modern depolama birimleri takılmış bir zx spectrum’unuz varmış gibi olacak. OS üzerinde orjinal zx spectrum emülasyonu da ayrı bir uygulama olarak bulunacak. Proje başka eski laptoplarda çalışmak üzere tasarlansa da, pandora gibi arm işlemci kullanan mobil platformlara da port edilecek.

Paul bu işletim sisteminin günlük ihtiyaçlar için değil, bir hobi olarak kullanılmak üzere tasarlandığını söylüyor.

Videosu youtube’da:

denemek isteyenler WOS’daki başlıkta son alfa versionunu bulabilirler:

http://www.worldofspectrum.org/forums/showpost.php?p=471349&postcount=72

Bilbao’dan geçen var mı?

İspanya’nın en büyük ikinci LAN partisi olan (4000’in üzerinde LAN portu mevcut) RetroEuskal 2010, 22-25 temmuz tarihlerinde Bilbao’da yapılacak.

Bu sayfaya konu olmasının sebebi, posteri:

48k rom buraya nasıl sızdı?

Posterin arka planını oluşturan asm kodu zx spectrum rom’unun ilk satırları. Zx Spectrum, ispanyada da çok güçlü, hatta ingiltere üretime yetişemeyince 128k modellerin çoğu ispanyada üretilmiş ve satılmış. İspanyol 128k modellerin ingiltere modellerine göre farklılıkları da var. Hatta ispanyada satılan ilk 128k modellerin kutusundan nümerik klavye aparatı da çıkıyor. Bu aparatları ingiltere satıcılarında bulmak imkansız gibi olsa da, ispanya ebay’inde sürekli görünen edevatlardan. Ayrıca amerika’ya satılan Timex ntsc modeller de Portekizde üretildiği için ispanyaya da pal olarak ulaşmışlar. Arayan ispanyada PAL timex sinclairde bulabilir. Yani ispanyada zx spectrum’un seveni çok, bu sebepten grafiklerlerin de sinclair’i kullanmaları çok doğal.

DiHalt 2010 Açıkhava Demoparty

Zx Spectrum’un rusya’da yapılan partilerinden biri olan DiHalt’ın bu yılki katılımları tabiiki daha öncekilerden daha az. Ama grafik yarışmalarında yeni keşfedilen titreşimli ekran modlarının da izlerini görüyoruz. Şaşırtıcı derecede bu titreşimli modlar normal spectrumda daha iyi görünüyorlar, amiga’nın interlace modlarından çok daha az titriyorlar. Pixellerin büyük olması buna bir etki mi sağlıyor acaba? (Düşük çözünürlükte pixeller hem tek, hem de çift interlace satırını kaplıyorlar).

İnci Kabuğu (Anna Andreevskaya(Flower))
Pearl Shell, 8×1 pixellik alanda iki renk, kullanabilen MLT denilen moddu hızla backbuffer ile değiştirerek 8×1’lik alanda 4 renk elde etmeyi amaçlıyor, ayrıca renklerde karışıyor gibi görüldüğü için ara tonları da elde etmek mümkün oluyor. Bunu son zamanlarda, diagonal alanları sırayla değiştirerek, “Mescaline Synteshia” demosunda mükemmelleştirmişlerdi.

Ürkek Kuşlar (Piesiu)
Standard bir zx spectrum grafiği, 8×8’lik alanda iki renk limiti var, hiç fena değil.

CPU beni seviyor (bfox)
Yine standard bir ekran grafiği, benim de kullanmayı sevdiğim, diagonal çizgilerle clash’ı gizlemeyi amaçlayan bir stil

Pacman olmalıyım! (pROF/Alexey Rusakov(4D))
“I have to be a pacman!” yine standard bir zx spectrum ekranı, ama kabul etmek gerekir ki koyu kırmızı renk zx spectrum’a göre fazla koyu. Emulator tweak’i var gibi duruyor. Malesef zx spectrumda koyu ve açık renkler arasındaki fark burda görüldüğünden daha az.

Partide 3 adet demo da var, %40 ve Cat MegaDemo. İkisi de eğlenceli ama teknik bir gelişme ya da makineyi sınıra taşıyan bir durum yok. Belki kedi megademosunun multicolour bölümü emülatör yazarları için ilginç olabilir, çünkü tam erkan rasterlar var ve biraz titrek geldi bana, emülatör problemi olabilir.

Dihalt 2010’da böyle geçti, parti orgalarından newart bana mail atarak davet etmişti, çok sevindirici benim için, Zx Scene’i için uğraşan insanların var olduğunu görmek (Bana hatırlatmış olmasına karşın online voting’i tamamen unutup kaçırdım),rusyaya vizeler kalktığına göre belki önümüzdeki yıl Nizhny Novgorod’a gideriz, acaba direkt uçuş var mı?