Gönderen Konu: Lale Savaşçıları'nı yeniden yazalım  (Okunma sayısı 1112 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı dashersw

  • Retromanik
  • *****
  • İleti: 19
Ynt: Lale Savaşçıları'nı yeniden yazalım
« Yanıtla #30 : 12 Nisan 2025, 16:00:32 »
Ufak bir update: senaryo dosyalarında event'ler de length byte'la birlikte sadece sıralı olarak tutuluyorlar.

Senaryo dosyalari AmBk formatında demiştik, 20 byte header'ı var. Sonrasında 12 byte metadata var, asıl data 33. byte'tan başlıyor. Metadatanın ilk word'ü (2 byte'ı) senaryodaki event sayısını gösteriyor (haritadaki metadata olan odalarla örtüşüyor). Sonraki word'ü ilk event'in uzunluğunu gösteriyor (ama garip bir şekilde uzunluklar ikişer kere kaydedilmiş.). Neyse, arada birkaç ne idüğü belirsiz byte var, sonra ilk event'in uzunluğu 32. byte'ta. Dediğim gibi, 33. byte'tan itibaren bu uzunluk kadarını okuyunca ilk event'in bütün trigger ve metinlerine ulaşıyoruz. Sonra bir word atlıyoruz (bu duplike—ama 2 fazla—length byte'ı). Bir sonraki word yine uzunluk, sonra sıradaki event var.

Böyle böyle bütün event'leri düzgün parse edip görebiliyorum. Conditional event'lerin state machine'ini hala çözemedim, fakat 0x05'in soru, 0x08'in savaş olduğunu söylemiştim. Inventory'yi unutmuşum, 0x0409 da inventory'yi açıyor.

Örneğin üzerini aradığımız adamın üzerinden kısa zopa çıkıyor. Byte sekansı şöyle: 04 09 05 00 01 00 03 00 00 00 00. Biz bu ekranda 5 dolar, 1 kıvrık, bir de kısa zopa buluyoruz. Demek ki 3. byte dolar sayısı, 5. byte (belki word'dür) kıvrık sayısı, 03 de item olsa gerek. Memory'de kısa zopa 3. item'a denk geliyor, dolayısıyla hesap tutuyor gibi.

Bu arada 0xac de aslında caesar cipher'la encode edilmiş, aslında 0xb6, yani paragraf karakteri :))

Bunun için bir visualizer yazdım, elini yüzünü toplayıp atacağım. Fakat branching logic'i çözememek beni deli ediyor :)

Çevrimdışı Ref

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2993
  • Advanced User Simulator
    • ae unutmadan
Ynt: Lale Savaşçıları'nı yeniden yazalım
« Yanıtla #31 : 12 Nisan 2025, 17:14:09 »
belki şöyle random bir bilgi belki faydalı olur. Yanlış hatırlamıyorsam Amiganın veri yolu 16bit, adres yolu24bit. 68k registerlerı 32 bit ama veri yolu 16 olduğundan tek fetch'de 16'sı doluyor. Diğer taraftan adres yolu ise 24 bit, Bir adres depolanması gerektiğinde zaten 2 fetch gerekeceği için %95 ihtimalle adresi ya da offseti 32bit olarak saklıyorlar, fazladan görünen 00'lar ya da random byte'lar oradan gelebiliyor.

68K big endian olduğu için genelde sıfırlar başta oluyor, yani hex 00 00 00 0A görürsen büyük olasılıkla indeks 0A 'nın olduğu adreste değil de, ondan üç ya da 1 önceki adrestedir. en baştaki xx 00 00 0A xx olanda da çok nadiren random data bulunabilir çünkü eğer bu değer bir adres ise ilk byte çöpe gidiyor. registerin önceki değerinden kalma bir artifact olabilir.


Çevrimdışı dashersw

  • Retromanik
  • *****
  • İleti: 19
Ynt: Lale Savaşçıları'nı yeniden yazalım
« Yanıtla #32 : 12 Nisan 2025, 22:03:18 »
Biraz daha dig ettim. 04 bir şey gösterme demiştik, 0403 resimli bir şey gösterme. bundan sonra gelen 0d resim ID’si. İlk senaryoda 0403 iki kere geçiyor, birinde köpek, birinde baygın adam resmi var.

Daha sonra dedim ki bunları manipüle etmenin daha kolay bir yolu olmalı, böyle dosyayı değiştir diskete yaz yeniden başla falan çok uzun iş…

Neden daha önce denemedim bilmiyorum ama, Mac'te vAmiga kullanıyordum FS-UAE ile birlikte... vAmiga çok kullanışlı geldi... ama memory visualizer'ı biraz sıkıntılıydı. Konsolu da vardı ama pek önem vermemiştim. Bugün biraz daha baktım, konsolda direkt memory'ye erişip değiştirebiliyoruz... Önce daha önce bahsettiğim "inventory ekranı açma" sekansıyla oynadım, o dolarla kıvrık arasındaki byte mark'mış :))) 5 dolar, 10 mark, 30 kıvrık falan verilebiliyor. 03 de item gerçekten, başka bir item'la değiştirilebiliyor. Yanındaki word’e yeni bir item da eklenebiliyor. vAmiga makinenin anlık snapshot'ını alıp yüklemeyi de sağladığı için memory'deki byte'ları değiştirerek ne olduklarını görmek çok daha kolay hale geldi. Bu şekilde bu resim gösterme opcode’unu test ettim, gerçekten de tahminim doğruymuş, başka başka değerler vererek başka resimler göstertebiliyoruz :)

Fantastik gelişmeler gerçekten. State machine’i çözmeye çok az kaldı, bu haftasonu bunu bitirmek istiyorum. Tabii bu daha ilk bölüm. Event’leri uzunluklarına göre bölme işi her bölümde çalışıyor ama ilk bölümün haritasındaki 1111 1112 şeklinde giden metadatalar ileriki bölümlerde daha farklı. Orada belki başka opcode’lar da olacaktır.

orijinal baygın adam:

silikonbaba: 


--------

Bu arada resimleri küçük göstermenin bir yolu yok mu ya? Bulamadım forumda :(

Çevrimdışı Ref

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2993
  • Advanced User Simulator
    • ae unutmadan
Ynt: Lale Savaşçıları'nı yeniden yazalım
« Yanıtla #33 : Dün, 01:34:24 »
Mükemmel!

bittiğinde bize de tam bir dökümantasyon sağlayabilirsen sevinirim.

Resim konusunda, forum yazılımımız biraz eski, işletim sistemimiz de epey eski ondan güncelleyemiyoruz. işte muhabbet biraz yavaş gitse yeni sunucuya taşınacağım, ama henüz mümkün olmadı. Yani sonuç olarak telefon ekranlarında bit kadar görünmesin diye bir responsive tema kullanıyoruz. O tema resimleri böyle büyütüyor bazen, bilen birinin uğraşması lazım ama sıkıcı işler olduğundan ben bakmadım :D

Yeni versionda bu sorunların olmadığını umarak katlanıyrouz. Yani aslında imaj büyüklüğünü ayarlamak mümkün ama çok çetrefilli, önce normal şekilde imajları yükleyip gönderiyi yazıp gönderiyorsun, sonra edit diyorsun, üretilen imaj url'lerini copy ediyorsun bir yere sonra attachment olarak değil de IMG olarak geri ekliyorsun falan IMG tag'inde width propertisi var istediğin büyüklüğe getiriyorsun ama uğraşmaya değer mi bence değmez :D

Bir alternatif de göndermeden önce resimleri küçültmek.

Çevrimdışı Skate

  • RAAT
  • Retro Meraklısı
  • *
  • İleti: 187
Ynt: Lale Savaşçıları'nı yeniden yazalım
« Yanıtla #34 : Dün, 06:44:16 »
Sizlere bir sürpriz yapayım dedim ama beceremedim. :) İstanbul Efsaneleri'nin 1995 yılında çıkan mavi kutu kapağı/posterini yapan kişi arkadaşımdır. Kendisinden duruyorsa orijinal çalışmasını isteyecektim ki daha İstanbul Efsa... demeye kalmadan epey bir tepki aldım. :) Detaylara girmeyeceğim ama anlaşılan geliştiren ekiple iyi ayrılmamışlar. Paylaşmak istemedi. Preservation konusundan Unesco'ya varıncaya kadar bahsettim, "gidin yeni oyun yapın, uğraşmayın böyle şeylerle" gibi laflar etti, ben de daha çok üzerine gitmedim. :D

Çevrimdışı Ref

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2993
  • Advanced User Simulator
    • ae unutmadan
Ynt: Lale Savaşçıları'nı yeniden yazalım
« Yanıtla #35 : Dün, 19:59:51 »
Sizlere bir sürpriz yapayım dedim ama beceremedim. :) İstanbul Efsaneleri'nin 1995 yılında çıkan mavi kutu kapağı/posterini yapan kişi arkadaşımdır. Kendisinden duruyorsa orijinal çalışmasını isteyecektim ki daha İstanbul Efsa... demeye kalmadan epey bir tepki aldım. :) Detaylara girmeyeceğim ama anlaşılan geliştiren ekiple iyi ayrılmamışlar. Paylaşmak istemedi. Preservation konusundan Unesco'ya varıncaya kadar bahsettim, "gidin yeni oyun yapın, uğraşmayın böyle şeylerle" gibi laflar etti, ben de daha çok üzerine gitmedim. :D

aah bu büyük şanssızlık, normalde gençler birlikte iş yapınca para konusu ikinci planda kalır diye düşünür insan. biraz gençlik aç gözlülüğü biraz da baştan anlaşmayı ciddi şekilde yapmayınca yani sonuçta bir "business" bu, fakat kabul etmek lazım, oyun yapıyorken pek ilerisini düşünmüyor insan. belli ki arkadaşın hakkı yenmiş, ama sözleşme (muhemelen sadece bir el sıkışmadan ibarettir) ileride yürünecek yolu kapsamadığından yapacak birşey de yok, kırık kalp ya da söylenmiş kötü sözlerle bitmiştir.

Olur öyle şeyler diyoruz (shit happens baabında) ne diyelim.