Category Archives: Downloads and Development

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ılabiliyor. Kodlar ve yöntem ortadaydı, fakat uygulayan yoktu. 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 yaması için (Jimmy): http://www.worldofspectrum.org/forums/showpost.php?p=533092&postcount=43

Download (20kb)

 

Zx Spectrum’da SNA to Tap converter

Çevirici

 

 

While I was messing with my zx microdrives, I decided to put some games into one of my old microdrive carts for quick loading. But this proved to be not only difficult task, also it spinned off two different tools out of discussion: zxBoot and SnapToTap.

 

Converting sinclair zx spectrum snapshot (sna) files into standard loading tap files: Not an easy task at all!

There were some tolls to convert snapshots into Tape files, but because of the very nature of snapshot files and the way of starting them once they loaded, it is impossible (read:impossible) to load a snapshot into zx spectrum without corrupting the snapshot itself. To do this properly you need additional hardware.

a Snapshot file is a full memory backup *with* extra CPU register data. Speaking of which, that data resides *inside* CPU. So you need a way to put the data into CPU before resuming snapshot state. Ofcourse this task also need to handled with CPU itself, which needs some code to reside in RAM, which also corrupts snapshot image. But this is not the only issue.

The goal was to put snapshot files into zx microdrive. But you will need a custom loader which loads the data from microdrive. There are none. Or you will need a converter which converts the snapshot into a standard loading code block. You couldn’t find one of thouse either.

Standard loader always tries to return to basic after loading is done. Because it is a basic component. But a snapshot occupies whole memory, so basic will be overwritten while you load snapshot block. And even if you manage to load the all 48k of ram from tape, it will crash your machine because standard rom loader will return to address that’s not there anymore.

The trick is the preserve small portion of basic just to execute the loaded code.

I used bitbuster (originally developed for MSX by team bomba) compressor. It’s very effective windows based packer normally reduces almost every 48k image atleast by %10 which produces about 5k, more than enough for us to fit in basic. Also the z80 decompressor is 79bytes long, plus some bytes as buffer, that it won’t be corrupting that much.

So I managed to create a clever program to decompress, move, merge the snapshot data, load the registers into cpu and finaly jump the the program counter location of snapsot image thus executing image.

The result was VSC, a proof of concept, an experiment over converting snapshots into tap files.

While this program re-invented in WOS forums a while ago, and people complained about the crapness of gui, I prepared a simplistic gui with automatic converting: it is SnapToTap. You drag and drop the file and it will create a tapfile highly compressed thus loaded in seconds, and with standard loader!

So there are two versions. Here is the downloads:

1. Latest version 2.4: Snaptotap 2.4 download)

2. First release: Visual Snapshot Converter – 250kb advanced controls, optional uncompressed converter, you can decide where to put executer code thus preserving screen or any other data–do not try to use this, I really messed up while creating a gui. 🙂

Snaptotap r2

A little bit warning about the tools:

No error checking, so it may crash time to time, it’s normal. Resart the app and try again.

Those are dotnet framework binaries, you will need .net framework 2.0+ to run them. Windows Only!

If snaptotap didn’t work for you, try asm’s zxboot for command line support, but it’s still windows only.

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, R.I.P. (01.02.1967-26.06.2010)

Joffa passed today at 10:30 am. Rest in peace Jonathan Smith (joffa) you will be remembered fondly.

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

Jonathan Smith, also known as best game programmer of Zx Spectrum, was working on a game called “Saucer” in his last days. He was a regular on wos forums and shared a lot. Even today, joffa’s topic, “what’s in your saucer” is alive and posted regularly every day.

For more reading, please check out following links. Sorry I removed the tarbook link as I couldn’t find it’s wos link, I think joffa or somebody else removed it. if you are after tar book, you should contact me personally.

Continue reading Jonathan Smith, R.I.P. (01.02.1967-26.06.2010)

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:
Continue reading Frontier First Encounters

Purebasic denemesi, bir küçük intro

Purebasic yıllardır duyduğum ama bir türlü denemeye fırsat bulamadığım bir programlama dili. Öveni çok olurdu, başta “Windows, Linux, MacOS ve Amiga üzerinde derleme yapabiliyorsunuz”, sonra “sade ve basit”, “güzel bir IDE’si var” denirdi.

Son haftalarda public chat kanalımız #retrojen’de yatu nickli arkadaşımızın basic programlama denemeleri yapması bana PureBasic’i tekrar hatırlatmıştı. Bu hafta sonu ise, sohbet ederken 64bit derleyiciler konusunda konuşmaya başladık ve yorganın altından yine purebasic çıktı. Eh madem x64 derleyicisi de var, bir deneyelim bakalım yetti canıma dedim, neymiş bu pb:
Hemen indirdim ve hello world yazmaya koyuldum. Helloworld düşündüğümden de basit çıktığı için **MessageRequester(“Message Box”, “Hello World”)** bir scroller yazmaya başladım. Doğrusu purebasic’in antikalıkları sayesinde yarım saatte bitecek iş 4 saatimi aldı. Öncelikle alpha kanalı olan bir bitmap’i cropladığınızda alpha’sı gidiyor. Bu durumda fontların arka planları siyah bloklara dönüştüğü için keyfim kaçtı. 1-2 saat bunu yapmanın yöntemini aradım internet üzerinde. Malsef bu kadar popüler bir basic varyasyonunun nette neredeyse hiç (google’da çıkmadı valla) örnek kodu bulunmuyor. Kısa, genelde bir paragrafı geçmeyen, çok yüzeysel açıklamalarla yetinmek zorundasınız. Bence purebasic’in en büyük problemi burda. Yıllardır geliştirilen (dikkat: 10 yıl) bir programlama dilinin bu kadar komik dökümantasyona sahip olması üzücü.

Neyse sonuçta problemleri dededen kalma yöntemlerle çözerek yola devam edince, bir Basic türevi olarak gayet hızlı çalıştığını gördüm. Görünüş olarak bayağı ilkel görünüyor, hafif bir 16 bit havası bile var denebilir 😀 Dökümante edilmemiş acaip kısıtlamaları da var. Ama bence yeni başlayanlar için işe yarayabilir. Object Oriented (Obje yönelimli) değil, bayağı oldschool, procedure oriented, çocukluğunda 8bit bilgisayarında basic kullanmış olanlar için aynı tadı 64bitte yaşamalarını sağlıyor.

Belki de en güzel yanı dağıtım şekli, bilmiyorum sizde çalışacak mı ama, build exe komutu verince, her kütüphanesi içinde bir exe yaratıyor, hiçbir dış DLL’e ihtiyaç duymuyorsunuz.

Neyse sonuç olarak, ilk purebasic denemem, modern basic’lere pek benzemiyor, ama sonuç olarak 4 saatte aşağıdakini yapabildim, pure basic’in iyi mi kötü mü olduğu konusundaki takdir sizin:

Purebasic Intro: 750kb
(dikkat müzik araklamadır (andromeda/playboy), diğer herşey, intronun yazımı sırasında kendi pc’imde yaratılmıştır)

ilk purebasic denemesi başlıyor:
[13.02][23:09] ref_ scroller kasayım şimdi
[13.02][23:09] ragnor_ 🙂
[13.02][23:09] ragnor_ aha çıkıyo intro

son rötuşlar, çalma çırpma bir müzik:
[14.02][01:56] ref_ bu xm arşivi nerdeydi yav?
[14.02][02:04] ref_ neyse chiptune’den aldım bitane

Bu bir scene release değildir, denemedir!

Sonuç: Purebasic, aşamadığınız limitasyonları olan bir basic türevi. Ama bu yazdığım kesinlikle hiçbir optimizasyondan geçmemiş, aksine savruk ve mektup yazar gibi baştan sona dümdüz kodladığım intronun çalışma hızı beni etkiledi. Ayrıca debugger’ında profiling gibi çok önemli özellikleri de var. Bilmiyorum kime yarar ama Inline assembler da destekliyor. İleride birkaç küçük program deneyebilirim üzerinde. Eğer faydalı bulursam da register edeceğimden eminim. Demo versionu WinAPI kullanmaya izin vermiyor, ama bu introda benim ihtiyacım olmadı. Büyük olaslılıkla ciddi birşey yapmaya kalkarsak registered version gerekecektir.

Sırada Freebasic ve BlitzMAX var. Seneye artık. Bu yıllık basic hakkımı Sinclair Basic için kullanacağım 😀

WOS Search plug-in for firefox

Daha önce yazdığım arama plug-in’ini Open Search 1.1 dizimine göre düzenleyip, mozSearch eklentilerini de kullanacak şekilde tamamladım. Şu anda AMO’da yani “Add-ons for Mozilla” sayfasında biri test edip yorum yazana kadar experimental olarak bekliyor, elbetteki güvenle kullanılabilir.

http://addons.mozilla.org/en-US/firefox/addon/13183/

Ayrıca martijn’de birkaç düzeltme önerdi ve şu anda bu add-on WOS tarafından onaylı ilk Opensearch eklentisi haline geldi. Eklenti özellikle Moz kullanıcıları için uygun olsa da, tüm opensearch destekleyen uygulamalarda kullanılabilir. Büyük olasılıkla yakında çıkacak GoogleOS’da da kullanılabilecektir. Ayrıca ie8’in de opensearch desteklediği söyleniyor, ama denemeden bilemeyiz 😀

Neyse bu ay da girdi olmadan geçmemiş oldu.. oh be.