Kategori arşivi: Downloads and Development

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

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)

 

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

 

 

Türkçe tireleme, heceleme, soft hyphen ve Corel Draw…

Bu hafta tuhaf birşey öğrendim: Corel Draw ile bir makale dizmeye çalışırken, Quark Express 7+ dışında hiçbir masa üstü yayıncılık programının Türkçe hecelemeyi desteklemediğini. İyice araştırdıktan sonra gerçekten de, Quark dışında heceleme özelliğinin olmadığını, Quark’ta da özel bir add-on ile eklendiğini okudum. Forumlar quark express ile Türkçe tireleme/heceleme’nin nasıl aktif edileceğini öğrenmeye çalşıan insanlarla, ya da In Design/Corel Draw için  Türkçe hyphenation’ın eklenmesini isteyen insanlarla dolu. Hatta Corel Draw forumlarında organize şekilde bunu isteyen bir grup (registered) insan var. Peki Türkçe tireleme, yani satır sonundaki sözcük ayırma, ingilizce ismiyle “Hyphenation”  bu kadar zor mu?

Hayır, aksine o kadar kolaymış ki. Çok basit bir kuralı var: kelimenin sonundan aramaya başlıyorsunuz. her sesli harf için, solunda sessiz harf varsa o sessizi katarak, sessiz harf yoksa, buldunduğumuz sessli harften kesiyorsunuz. Bukadar. Bu sisteme birkaç özel durumu eklemeniz gerek, çünkü Çokokrem gibi krem, spor, tren gibi tek heceli sözcükler içeren kelimeler yanlış bölünebiliyor. Bence büyük bir problem değil.

Eh peki ben kendi problemimi nasıl aşacaktım? Corel Draw’da hyphen açmam gerekiyordu. Sonra aklıma “soft-hypen” geldi. UTF standardında $00AD kodunda yatan bir soft hypen karakteri var. Bu arada bir dipnot, hyphen dediğimiz şey “tire” demek. Soft Hyphen ise “yazılım tiresi” gibi bişey. Soft hyphen’ler sadece gerekli olduğu zaman görünür hale geliyor. Yoksa görünmez durumda. Deneyince Corel Draw’ın soft hyphen desteklediğini gördüm ve havalara uçtum. Hemen “Kekeme” adında bir programcık yazdım, verdiğim metindeki tüm kelimeleri komple soft hyphen kullanarak tireliyor. Bu metni Corel’a atınca program ihtiyacı olan soft Hyphen’i tire’ye dönüştüyüyor. Sorun çözülüyor. Çok acele kodladığım için görüntüsü biraz çirkin, ama işi fazlasıyla görüyor. Buyrun sonuç:

Kekeme iş başında...
Kekeme iş başında...

Programda hecelenecek minimum kelime uzunluğu (default 4), Türkçedeki tireleme kuralları (örn. “atalet” satır sonunda ayrılacaksa “a-talet” olarak ayrılamaz, ya “ata-let” olmalı ya da tek başına kalan “a” aşağıya alınmalıdır.) gibi seçeneklerde var. Ayrıca noktalama işaretlerine, paragraflara, satır sonlarına ve büyük/küçük harflere dokunmuyor, herşey olduğu gibi geçiyor.

Dikkat bu program metninizi sadece bir kere işlese yeterli. Daha sonra metninizi istediğiniz gibi düzenleyebilirsiniz. Corel draw gerekli tireleri gösterip gereksizleri çıkaracaktır. Çünkü metnin tamamı gizlice (görünmez şekilde) tirelenmiş olacaktır. Bu şekilde sadece Corel Draw değil, tüm UTF soft hyphen destekleyen programlarda otomatik tireleme uygulanabilir.

Evet, bu metin biraz self-promotion gibi bişey oldu, zaten hafif de reklam Programı 1-2 saatte yazdım, buraya koymayacağım. Şekil şemal olarak toparlanmaya ihtiyacı var ama şu ara başka işler var, onları yapıyorum. (demo sürümü metnin sonundadır)

Türkçe heceleme konusunda detaylı bilgi http://www.alinesin.org/popular_math/S_00_turkcede_heceleme.doc adresinde bulunabilir.

Kekeme’yi şimdi indirmek için:
Kekeme Demo 22kb
(harf limitli sürümdür, başka bir limitasyonu yoktur)

Horace in the Mystic Woods hazır!

Horace serisinin kayıp halkası, Horace in the Mystic woods bob smith tarafından tamamlandı.

Şöyle ki, Zx Spectrumda Horace serisi üç oyundan oluşuyor: “Hungry Horace”, “Horace Goes Skiing” ve “Horace and the Spiders”. Fakat melbourne house, manic miner’ın başarısının ardından bir başka “Miner 2049’er” klonu olan Horace in the mystic woods’u Psion Avuçiçi bilgisayarları için çıkarıyor. Zx Spectrum portu için planlar hatta çalışmalar yapılmış olmasına karşın oyun orjinal platformuna ulaşamyor.

Yükleniyor!Birkaç yıl önce bu iş için Mojon Twins kolları sıvamıştı. Fakat yaklaşık 8 ay sonra pes ettiler ve Mystic Woods oyununu yapacak vakitlerinin olmadığını söylediler. Bunun üzerine Bob Smith orjinal Psion kodlarını incelemeye başladı. 18 aylık çalışmanın ardından orjinal oyunun haritaları, grafikleri ve en önemlisi oyun mekaniği ile karşımızda “resmi” diyebileceğimiz kadar benzer bir çevrim olan “Horace in the mystic woods for Zx Spectrum” oyunu duruyor.

Oyun WOS’tan indirilemiyor çünkü oyun zaten resmi olduğu fakat hiç piyasaya düşmediği için, infoseek’deki benzer diğer oyunlar gibi “MIA- Misssing in action” statüsünde duruyor. Oyun için Bob’ın sitesine gitmeniz gerekiyor:

http://www.bobs-stuff.co.uk/extras/hitmw.zip

eğer dosya kaldırılmış ise, blog arşivimde mirror yaptım, buyrun.

Jonathan Smith, hayatını kaybetti.

Tüm zx spectrumcuların kaplerinde yer eden birçok oyunun altındaki imza, kendi sevdiği şekliyle “Joffa Smifff”, bugün sabah 10:30 itibariyle hayata gözlerini yumdu. Joffa nisan ayından beri hastanede iç kanamalar ve enfeksiyonla savaşıyordu. Son iki gündür derin uykudan uyanamamıştı ve bu sabah kötü haberi aldık (01.02.1967-26.06.2010).

PudPud: "Joffa Says R.I.P."

Jonathan Smith, Sinclair Zx Spectrum oyun piyasasındaki en iyi programcı olarak bilinir. Seveni öyle çoktur ki, 2007’de küçük bir retro gecesine davet edilince partinin düzenleneceği mekana kalabalıktan girmek mümkün olmamıştı. Bu zaten Joffa’nın ilk ve tek parti katılımıydı. Joffa’yı, son derece alçak gönüllü, en ufak bir kompleks sahibi bile olmayan biri olarak tanıdım. Son birkaç yıldır WOS forumlarında bizlerden biri olarak sohbet ediyordu, ben de onunla sohbet etme şansı bulmuş kişilerden biriyim.  Ayrıca Joffa, Saucer isimli oyununu çoook yavaş bir şekilde kodluyordu.  Birkaç yıl önce gönderdiği alfa sürümünü buradan çekebilirsiniz. Oyunda her yöne  1 pixel ekran kaydırma, yüksek hızda ekran tazeleme gibi her zx oyununda bulunamayan özellikler görülüyor. Joffa hastaneye yatmadan önce Saucer’ın bir hayli ilerlediğini bitmeye yaklaştığını söylüyordu. (Yakın arkadaşları Joffa’nın harddiskine zarar gelmemesi için ailesi ile temas halindeler.)

Jonathan Smith’in elinden çıkan tümü zx spectrum klasiği olmuş oyunlar şöyle: Cobra, Batman, Dalet Tompsons Super Test, Green Beret, Firefly, Hyper Active, Hysteria, Mikie, Kong Strikes Back, Street Hawk, Terra Cresta ve son olarak tek başına hazırladığı Pud Pud.  Jonathan ayrıca  Atari ST, Sega Megadrive, Super Nintendo, Nintendo Gameboy, Nintendo Gameboy Advance ve Cep telefonlarına oyunlar yazmıştı.

Daha fazla okuma ve diğer oyunlar için aşağıdaki linklere bir göz atın.

Jonathan Smith, hayatını kaybetti. yazısına devam et

Windows Hungry HORace Editor: Whhore!

Whhore is ready. It is an editor designed to patch HH for new features and levels, hack game data and graphics.

What Whhore can:

  • Patches the game to work with extra 32kb memory (JE).
  • Any level can be made Pac-man style “eat all to win”.
  • Modify lives.
  • Modify title, glue or seperate upper&lower parts of it.
  • Import a 64×20 BMP file into title screen.
  • Change sound of the title screen.
  • Create and add new levels.
  • Edit teleport locations.
  • Edit tile graphics: 256 of them instead of 8 original (JE).
  • Edit up to 42 levels.
  • Preview levels.
  • Corner detection (#) and force not to detect corners (I).
  • Copy/paste levels.
  • Read and write from/to a SNA file.
  • “HELP!” button for manual.

What Whorre cannot:
it’s a VB6 exe: Don’t expect miracles.
it’s not very cleverly designed: it’s a modification to my old “ladder cpm” editor. so it’s text based and ugly.
it won’t work on vista and w7 UNTIL you download a copy of VB 6.0 dll (MSVBVM60.DLL).
Experimental release.
Undo.
Autosave.
Import a small picture into maze.
etc.

Where to get it?
Whhore (the Editor) 25kb Warning: Experimental. May not work at all.
Where to get Brand New Whhore Game “Hungry Horace 2”?
Hungry Horace 2 (the game) 30kb

 

Frontier First Encounters

İlk karşılaşma

Bu blog’u yeni yetişen bilgisayar oyuncularının da ara sıra takip ettiğini biliyorum. Bugün unutmadan, bu kitleye eski bir fenomeni anlatma kararı aldım.

(ps. Bu makale karalama şeklinde yazıldığı için imla hataları ve cümle düşüklükleri bulunabilir. Zaman içinde makale geliştirilecektir. Ayda bir kontrol etmenizi tavsiye ederim.)

Neyse, buyrun okuyun:
Frontier First Encounters yazısına devam et