Category Archives: Downloads and Development

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.

Plazma-dergi.org kaybolmuşken, geçici hosting…

Plazma Dergi Linkleri Hosting değiştirmem dolayısıyla kırık olmuş, şurdan çekebilirsiniz:

Plazma derginin tüm sayılarını yukarıdaki linklerden çekebilirsiniz:

güncelleme-1.9.2010

son sayılarla birlikte verilen ek dosyalar arşivde bulunmamaktadır!

Plazma’nın 4.sayısı ile verilen bonus disk arşivimin derinliklerinden çıktı, buyrun:

bonus_disk.rar (<1MB)

Hançer (Amiga): Cracked

 

As it’s written in amos, it was a trivial job to crack the game.

Just press Return a couple of times to skip protection.

Download cracked amiga adf disk images here:

Hancer(1992)(Digital Dreams Art)[cr REF].zip  (900kb zip)

Note that those are cracked and modified images of the game, you can find original uncracked images on TOSEC archive.

 

Recently I was contacted by the Producer or the game, Sedat Çöloğlu, he sent me the scans of user manual of the game, which I uploaded to retrojen library. It’s a semi-closed library, but it only asks you to register to the forum before downloading anything.

Commodore 64 renk paleti

Son günlerde zx spectrum işlerime kısa bir ara verip (bu işi Hades yüklendi şu aralar) c64’e bakmaya başladım. Kendimce bir 8bit’i tanımanın birinci koşulu ona grafik çizmekten geçiyor. Böylece neredeyse tüm donanım limitlerini öğrenmiş oluyorsunuz. Ama c64 konusunda öyle acemiymişim ki, renk paleti konusunda bile birşey bilmediğimi gördüm.

Elbetteki c64’ün renk paleti kahverenginin 16 tonundan oluşuyor. Ama 64 camiası bunu pek kabullenememiş görünüyor ve internette girdiğim her sayfada farklı 16 renk bulduğumu söylemeliyim. İlk başta safça ilk girdiğim sitedeki renkleri photoshop’a aktarmış ve bir grafik çizmeye başlamıştım. Sonra grup arkadaşım Wisdom bana Timanthes ya da oxPaint kullanmamı önerdi. Çizimimi bu programlara attığımda bir hüsranla karşılaştım. Kullandığım (internetteki c64 konulu bir web sitesinden alınma) renk paleti aslında bir 64’cünün fantezisi olmalıydı. Doygun bir kırmızı, sarı, turuncu… Timanthes’de ise o renklerin hiçbiri yoktu elbette. Ama sonra işin detayına inince üzülerek Timanthes’in paletinin daha doğru olduğunu öğrendim. Daha fazla ilerlemeden önce kullanacağım palette karar kılmam gerektiğini gördüm.

Biraz uğraştıktan sonra boş bir PSD dosyası oluşturdum. isteyen bu boş dosyayı kendine çekebilir.

c64_palet

Üstteki resimdeki her bir rengin ayrı bir layer’da olduğunu söylemeliyim. En üstte c64 renk gamut’unu (sadece referans için, burdan renk almayın), sağda bu gamuta uygun dizilmiş renk paletini, solda ise benim göz zevkime göre dizilmiş olanı görüyorsunuz. Bu renkleri istediğiniz gibi dizebilirsiniz çünkü hepsi ayrı katmanlarda bulunuyorlar ve uygun şekilde gruplandırıldıkları için ekranın herhangi bir yerine sürükleyebilir, çıktı almadan önce tüm paletleri kapatabilirsiniz.

Adobe Photoshop PSD dosyasını alttaki bağlantıdan indirebilirsiniz (60kb):


http://www.veanewmedia.com/ardae/fish/c64_Blank_Project.psd

zx spectrum beeper ve amiga MOD

Şu günlerde Gasman, zx spectrum için bir amiga MOD player yazıyor fakat ben de başka bir işle uğraşıyorum: Sinclair Basic Beeper’ı.

Son günlerde world of spectrum’da “beep composer”ların tamamının zx tabanlı olduğunu, windows üzerinde hiç beep düzenleyicisi olmadığı tartışılıyordu. Ben ise bu konu hakkında Crap Game Competition 2008’e berbat oyunlar gönderirken epeyce düşünmüştüm: Bir oyun yapıyorsanız oraya iyi kötü bir müzik tıkıştırmak gerekiyor ve bunu bir editör olmadan yapmak çok çok zor. “Peki ünlü fast tracker stili bir editör yazsam?” diye düşünürken, “bidakka, editör zaten orda, benim bir eklentiye ihtiyacım var” ışığı yanmıştı.
mod2beep parser
Sonunda bu işe vakit ayıramadığım için rafa kalktı ama bir çeşit “proof of concept” denemesi yapmak için aşağıdaki projeyi birkaç saatte kodladım. İtiraf etmeliyim ki windows API’sini kullanarak ses “üretmek” deveye hendek atlatmaktan zor. Bu birkaç saatin tamamını bu sesi (bip!) üretmek için harcadım. Diğer kısımlar ise yarım saat kadar. İşin komik tarafı, programın herhangi bir ses üretmesi gerekmiyor. Mod’u inceleyip bir sinclair Basic çıktısı vermesi yeterli. Ama çevirilen sesi önizlemek için kabaca bir çıktıya ihtiyacım da vardı.

Neyse, bu program ne yapar?
Siz müziğinizi bir tracker ile yazarsınız. Ben “Open Modplug Tracker” kullandım, beleş diye. Hem de güzel. Elbette enstrüman kullanmadan. Ama illa enstrüman kullanacağım diyorsanız, beep sesi kullanın. Sonra yazdığınız pattern’i kesip mod2beep’e yapıştırırsınız. Parse edersiniz, ve Beep! çıktısı üretmesini istersiniz. İşte sonuç (bu örnekte ünlü aurora.mod’un ilk patterni çevirildi):

10 REM mod2beep(c)Arda Erdikmen
15 REM Aurora.mod
20 RESTORE 100: READ a: FOR x=1 TO 57
30 READ n,d: BEEP d,n
40 NEXT x
100 DATA 99,10,.3,10,.1,10,.2,8,.1,10,.1,10,.1,8,.1,8,.1,10,.1,6
,.1,8,.1,5,.1,6,.1,3,.1,5,.1,6,.1,3,.1,5,.1,5,.1,1,.1,3
,.1,3,.1,1,.1,6,.1,3,.1,1,.1,6,.1,6,.1,1,.1,12,.1,6,.1
,1,.1,12,.1,6,.1,12,.1,3,.1,6,.1,11,.1,3,.1,6,.1,11,.1
,5,.1,11,.1,6,.1,5,.1,3,.1,6,.1,5,.1,3,.1,6,.1,5,.1,3
,.1,6,.1,5,.1,3,.1,6,.2,3,.2

Avantaj?
yeni bir editör yazmak yerine, zaten varolan editörleri, başka bir amaç için kullanmak. daha önce yazılmış bazı mod müzikleride kullanmak mümkün.

dezavantaj?
mod 4 kanal ses içerebiliyor, beeper ile sadece 1 kanalımız var. bu bir kanalı kısa kısa çalarak kesikli şekilde 2 kanal fazla rahatsız etmeden çalınabiliyor. 3 kanal iyice zorlamak oluyor, 4 kanal ses ise at koşma sesine benziyor artık.

henüz bitmedi bu arada, program biterse buradan süreceğim…

Sevgiler..

URL değişikliği!

spectrum.gen.tr bundan sonra zx.gen.tr adresinde çalışacaktır. Taşınma işleminin biraz zamanımı alacağını baştan söyleyeyim…

Bu arada spectrum ile ilgili “Berbat Oyun Yarışması”na yolladığım berbat oyunları çekmek istiyorsanız buyrun:
(uyarıyorum, yarışmanın amacı berbat bir oyun yapmak):

Bubble Fight (bilgisayardan hızlı bubble sort yapabilir misiniz?):
http://www.veanewmedia.com/ardae/fish/BubbleFight01.zip 6kb
Q-A yukarı aşağı, Enter sayıları yerinden söker, Boşluk tuşu ile diziliminizi onaylayabilirsiniz.
(özelliği: sıkıştırılmış bir grafik mevcut 6912 byte 2700 byte’a indirildi)

Car Game (1985 yapımı bir oyunu oynamaya ne dersiniz?):
http://www.veanewmedia.com/ardae/fish/cargame.zip
(Özelliği: Alcatraz benzeri bir koruma ile turbo yükleme yapılıyor. Eğer 80’lerde olsaydınız teypten teype kopyalama bayağı zor olacaktı, ya da yazılım kopya programcıkları (Multiface olmadan) ile kopyalayamayacaktınız. MF olsa bile yükleme ekranının 4 saniyede yüklenişini göremeyecektiniz! Eheh, emulator devrinde pek anlamı yok değil mi 🙂 olsun)

Para ve Güç nasıl şifrelerden arındırıldı?

Son günlerde retro ortamının en şekilli forumunda yeni bir Türkçe oyun belirdi: “Para ve Güç”. Oyun bir monopoly klonu. Bu oyunun ortaya çıkışında kimin parmağı var bilmiyorum ama bir yazılım daha Türk yazılım havuzuna kazandırılmış oldu. Oyunun yazarı aynı zamanda forumun sürekli kullanıcılarından biri olan Hayrettin Yıldız. Fakat hepimiz gibi, eskiden yazdığı ve nedense önemsemediği bu oyunun kaynak kodunu kaybetmiş. Oyun ise eskilerin bildik kopya koruma yöntemi olan “kitapçıktan şu kelimeyi bul” sorularını kullanıyor. Bu yüzden oyun ilk postalandığında oynanamaz bir haldeydi.

Oyunun grafiklerini (ve Murad Omay ismini) görünce direkt olarak amos kodu olduğunu anladım. Derlenmiş basic ne de olsa tüm değişkenleri bir arada tutmaya gayret gösterir, resim/müzik gibi medya da amos’a özgü “bank”larda saklandığı için ram’de bunları da son derece düzenli, başlıklı ve detaylı bilgiler içeren şekilde bulabilirsiniz. Yani oyunun kopya korumasını çözmek büyük bir iş değildi.

Yine de referans olması açısından basamakları paylaşacağım. Bu yöntemi sadece crack yapmak için değil, cheatleri bulmak için de kullanabilirsiniz (debugger ile). Aşağıdaki işlemler için şu araçlar gerekecek size:

WinUae (v1.46 kullandım)
Hex Editor (Cygnus hex editor kullandım)
Bir programlama dili (belirli koşullara göre arama tarama yapacak programları yazacak kadar hakim olduğunuz herhangi bir dil- ben el altında hazıl olduğu için C# kullandım)

Cracking denemez aslında bu yaptığıma. Bugünün programları ile çok kolay oluyor. Ben şöyle yaptım:
1.UAE’de seçilebilecek en basit konfigi seçtim (küçük ram) (1 dk.)
1.UAE Ramdump aldım (save state seçip, formatı USS yerine RAM DUMP seçin) (1 dk.)
2.Küçük bir program yazdım, hafızadaki her byte’ı shift edip, Xor’layıp invert edip (bilinen basit şifreleme yöntemlerini test edip) hafızayı istediğim şekilde tarıyordu. (1 saat)
3.Program 1MB’lık Ram Dump’ı çeşitli kombinasyonlarda taradı ve sonunda hayrettinin kullanmış olduğunu varsaydığım yöntemlerden birinin tuttuğunu gördüm (10 dakika).
4.Kırılacak dosyayı adf’den extract ettim. (3 dakika)
5.Kombinasyonu dosya üzerinde denedim ve şifrelerin açığa çıktığını gördüm. (0 dakika)
6.Kombinasyonu ters uygulayıp tüm stringlerin içini boşalttım (5 dakika)
7.Kırılmış dosyayı tekrar adf’ye inject ettim. (3 dakika)

Ha tabii burada önce keywordlerden en az birinin bilinmesi gerekiyor. Onu da şöyle bulmuştum:
1.Oyun açılıp şifre sorulduğunda rastgele ama benzersiz bir kelime yazdım cevap olarak: “Arda”
2.Uae debugger’ını açıp (shift+F12) hafızada nereye denk geldiğini buldum: s “Arda”
3.Bu kelimenin tutulduğu yerin yakınında karşılaştırılan şifre stringleri tutulur genelde, etrafına baktım: m adres (bu adres yukarıda s komutunun sonucunda çıkan adreslerden biri veya her biri olacak)
4.Beklendiği üzere cevap arda kelimesinin hemen yanında belirdi.
5.Bu kelimeyi not ettim ve sözde cracking işlemine başladım.

—————————————

sonuç, oyunun orjinal hali şu adreste (arşivciler için):
http://depo3.ifrance.com/pvg.7z
kırılmış hali ise burada (meraklılar için)
(Sorulan şifreyi sadece “enter” tuşuna basıp geçebilirsiniz.):
-> Para ve Guc (1992)(Safa Soft)[cr REF].zip

ZX Spectrum Thumbnail Providers for Vista

it works on Windows 7 too ;)

UPDATE: download here

EN:
Finally, I managed to prepare a proper package for my thumbnail providers. ZIP archive contains 5 different installers for every filetype: TZX, TAP, Z80, SNA, SCR. You don’t have to install all of them, just pick toe ones you need. Ofcourse there is no harm in installing all of the providers for they only 7 kbytes in size, and not using any memory except when generating an image.

This providers DO NOT work on windows XP (a seperate project is going slowly for that one). This ones are for VISTA ONLY.

DOWNLOAD ZIP: 376KB

TR:
Windows Vista küçük resim yaratmak için yeni bir başlatma modeli sunuyor, dolayısıyla eskiden XP’de nispeten kararsız olan Managed Code ile sistem dosyası oluşturma işlemi, vista altında sorun çıkarmıyor.

Hem bu kolaylıktan faydalanmak, hem beleş dağıtılan Visual Studio Express kullanmak için bu “küçük resim sağlayıcılarını” C# ortamında kodladım.

Paket içerisinde 5 ayrı kurulum dosyası bulacaksınız. Bunlar TZX, TAP, Z80, SNA, SCR dosya türleri için ayrı sağlayıcılar. Tümünü de kurabileceğiniz gibi, istediğinizi lazım olduğunda kurmak üzere dışarda bırakabilirsiniz.

Yükle (zip): 376KB