1 puan yazan GN⁺ 2024-05-24 | 1 yorum | WhatsApp'ta paylaş

Space Quest II ana disketi hatası

  • 22 Mayıs 2024
  • Bu diskin dış görünüşünde özel bir şey yok, ancak depolanan verilerde Sierra On-Line'ın muhtemelen hiç bilmediği ve dahil etmek istemeyeceği özel bir şey var.
  • Sierra macera oyunu koleksiyonunuzda 720KB disket varsa, yalnız değilsiniz.
  • Space Quest II'nin 2.0D ve 2.0F sürümleri nadir değildi.

Basit bir dizin listesi

  • Diskteki dosya listesine bakınca özel bir şey görünmüyor.
  • 2.0D sürümünün listesine bakıldığında, diğer Sierra oyun disklerinden farkı yok.
  • Zaman damgaları, oyunun ana veri dosyalarının (PICDIR, LOGDIR, VIEWDIR, SNDDIR, VOL.0, VOL.1) 14 Mart 1988'de oluşturulduğunu gösteriyor.
  • .OVL dosyaları 15 Mart 1988'de, AGI yorumlayıcı kodu ise 18 Mart 1988'de oluşturulmuş.
  • Dizin listesindeki ilginç nokta, diskin "kullanılmayan" alanının kullanılan alandan fazla olması. 302.918 bayt kullanılmış, 402.432 bayt ise kullanılmamış olarak görünüyor.

Hex editör kullanımı

  • Diskte ne olduğunu daha ayrıntılı görmek için hex editör denen bir araca ihtiyaç var.
  • 1980'lerde Norton Utilities sık kullanılırdı; günümüzde ise Maël Hörz tarafından yazılan HxD Hex Editor harika bir alternatif.
  • Yeni biçimlendirilmiş bir DOS disketinde kullanılmayan sektörlerin 0xF6 bayt değeriyle doldurulmuş olması gerekir.
  • Space Quest II sürüm 2.0D'nin disk 2'si bu duruma uyuyor, ancak disk 1'de 0xF6 baytıyla doldurulmuş sektör yok.
  • Disk 1'in kullanılmayan sektörleri C kaynak kodu gibi görünen içerikle dolu.
  • Bu, ana diskin başka bir amaçla kullanıldığını ve dosyalar silindikten sonra düzgün biçimlendirilmediğini güçlü biçimde düşündürüyor.

AGI yorumlayıcı kaynak kodu

  • Hex editörde veriye bakınca metin gibi görünüyor.
  • ASCII metni bir metin editörüne kopyaladığınızda C kaynak kodu gibi duruyor.
  • İki fonksiyon tanımlanmış; biri DisplayStatusLine, diğeri StatusLineOn.
  • DisplayStatusLine fonksiyonu, mevcut skoru ve ses durumunu gösteren bir metin satırı görüntülüyor gibi görünüyor.
  • Bu kaynak kod, AGI yorumlayıcısının bir parçası.
  • Hex editörde daha fazla kullanılmayan sektörde kaydırma yapınca büyük miktarda kaynak kod çıkıyor.
  • Bu kaynak kod ardışık sektörlerde depolandığı için çıkarılması kolay.
  • Toplam 93 dosyaya bölünmüş; 75 C kaynak dosyası, 16 assembly dili kaynak dosyası ve 2 DOS BAT dosyasından oluşuyor.
  • Toplamda 15.000 satırdan fazla kod var ve dosyaların çoğu eksiksiz.
  • Bu Space Quest 2 oyun diski, Sierra On-Line'ın AGI yorumlayıcı kaynak kodunun yaklaşık %70'ini içeriyor.

Kaynak dosyası değişiklik geçmişi

  • Bazı kaynak dosyalarının başlık yorumlarında değişiklik geçmişi yer alıyor.
  • Örneğin ANIMATE.C kaynak dosyasının başlık yorumunda dosya adı, işlev açıklaması, derleyici adı (MWC) ve değişiklik geçmişi bulunuyor.
  • Programcılar kendilerini baş harfleriyle tanımlıyor.
  • JAS, AGI yorumlayıcı kodu üzerinde çalışan başlıca programcı Jeff Stephenson'ı, DCI ise Chris Iden'ı ifade ediyor.
  • Robert Heitman'dan da bahsediliyor, ancak odağı daha çok grafik araçları üzerindeydi.

AGI.EXE bellek haritası

  • SQ2 2.0D 720KB disk 1, AGI.EXE yürütülebilir dosyasının bellek haritasını da içeriyor.
  • Bellek haritası, AGI yorumlayıcısını oluşturan modüllerin ve kaynak dosyalarının listesini veriyor.
  • Toplam 98 kaynak dosyadan söz ediliyor ve bunların 71'i SQ2 diskinde eksiksiz yer alıyor.
  • Bu da AGI yorumlayıcı kaynak kodunun yaklaşık %70'inin SQ2 diskinde bulunduğu anlamına geliyor.

Sierra'nın fikri mülkiyeti

  • 1984'te Sierra On-Line işini sürdürmek için zorlanıyordu.
  • King’s Quest'in başarısı, kaderlerini değiştirmede büyük rol oynadı.
  • AGI macera oyun sistemi ve onunla yapılan oyunlar, Sierra On-Line'ın ana gelir kaynağıydı.
  • AGI yorumlayıcı kaynak kodu, Sierra'nın temel fikri mülkiyetiydi.
  • Kaynak kodun %70'inin toplu şekilde kopyalanıp müşterilere gönderilmesi büyük bir hataydı.

Bu nasıl oldu?

  • Yeni bir oyun sürümü hazırlandığında, FormMaster disk çoğaltma makinesinde kullanılmak üzere bir "üretim kopyası" ana disket oluşturuluyordu.
  • Bu makine diskteki tüm baytları kopyalıyordu.
  • Space Quest II sürüm 2.0D ve 2.0F'nin disk 1'i biçimlendirilmeden kullanılmış.
  • Bunun sonucunda yüz binlerce SQ2 disketi AGI yorumlayıcı kaynak kodunun %70'ini içermiş oldu.

Kıl payı atlatılan kriz

  • Bu neredeyse kesin olarak kasıtsız bir hataydı.
  • Sierra, rakipleri ve müşterilerinin hiçbiri bunu fark etmedi.
  • İlk kez Ekim 2016'da çevrimiçi kullanıcı NewRisingSun tarafından keşfedildi.
  • Olay AGI döneminin sonlarına doğru yaşandığı için büyük bir soruna dönüşmedi.
  • Bu, ilgi çekici bir dijital arkeoloji hikayesi ve Sierra On-Line'ın AGI yorumlayıcısını nasıl yazdığını görmeyi sağlıyor.

İlgilenenler için, çıkarılan AGI yorumlayıcı kaynak kodunu bir GitHub deposuna yüklemiş: https://github.com/lanceewing/agi

Web tabanlı AGI yorumlayıcısı AGILE'a göz atın. Bu uygulama, orijinal AGI kaynak kodu rehberliğinde geliştirildi.


GN⁺ görüşü

  • Dijital arkeolojinin değeri: Bu yazı, dijital arkeolojinin önemini gösteriyor. Eski yazılımlar ve veriler tarihsel ve teknik değer taşıyor.
  • Güvenlik hatasından çıkarılacak ders: Bu olay, veri güvenliği ve yönetiminin önemini vurguluyor. Hassas verilerle çalışırken her zaman titiz doğrulama ve biçimlendirme gerekir.
  • Teknolojik ilerlemenin kanıtı: AGI yorumlayıcı kaynak kodu, 1980'lerde oyun geliştirmedeki teknik ilerlemeyi gösteriyor. Bu, modern geliştiricilere ilham verebilir.
  • Açık kaynağın gücü: Orijinal kaynak kodunun ortaya çıkması, modern geliştiricilere bunu inceleme ve yeni projelerde kullanma fırsatı sunuyor.
  • Rakipler açısından risk: Bu kaynak kod o dönemde rakipler tarafından keşfedilseydi, Sierra On-Line'ın rekabet avantajı ciddi biçimde zarar görebilirdi. Bu da şirketlerin fikri mülkiyetini korumasının önemini hatırlatıyor.

1 yorum

 
GN⁺ 2024-05-24
Hacker News görüşü

Hacker News yorumlarından derleme özet

  • Double Dragon II: The Revenge for DOS (1989)

    • Bu oyun iki disketle dağıtıldı ve disklerden birindeki silinmiş arşiv dosyasında tam kaynak kodu yer alıyordu. DIR komutuyla görünmüyordu ama kolayca kurtarılabiliyordu.
  • Synthesizer ROM tersine mühendisliği

    • Yakın zamanda bir synthesizer ROM'unu tersine mühendislikle incelerken Yamaha DX9 ROM'unda firmware sembol tablosunun bir kısmı ve geliştirme sistemi kod blokları bulundu. Bu tür keşifler, geçmişteki geliştirme araçlarını derinlemesine anlamayı sağlıyor.
  • Çocukluk oyun anıları

    • Bu oyun çocukluğun önemli bir parçasıydı ve bugünkü hayatta aynı türden bir "bağ" hissetmek zor. Space Quest 2, 3, 4 sanki DNA'nın bir parçası gibi hissettiriyor.
  • AGI motorunun sırları

    • AGI motorunda, rakiplerin bir sızıntıdan fayda sağlayacağı özel sırlar olmadığı düşünülüyor. Sierra oyunları, grafiklere ve hikâye yazımına çok emek verildiği için başarılı oldu.
  • Bellek haritası ve kaynak kodu

    • Bellek haritası, kaynak kodunun bir kısmı ve tersine mühendislik araçlarıyla bütünün yeniden oluşturulabileceği düşünülüyor.
  • HxD Hex Editor

    • Modern ve harika araçlardan biri, Maël Hörz tarafından yazılan HxD Hex Editor. macOS kullanıcıları Hex Fiend'e de bakabilir.
  • Air Fortress ROM'u

    • Air Fortress'in Famicom sürümü, istemeden çok miktarda veri içeriyordu. Japon kartuşu 128+128KB idi, ABD'deki NES sürümü ise 128+32KB'ye küçültüldü.
  • Elle yapılan sürüm artefaktları

    • Geçmişte elle yayımlanan artefaktlarda geride kalmış veriler bulunması sık görülen bir şeydi. Modern CI/CD ve otomatik build sistemleri sayesinde bu tür durumlar azaldı.
  • Kaynak kodunun keşfi

    • Diskte kaynak kodu bulunduğunu kimse fark etmemişti. Bu, yakın zamanda ortaya çıkan Tetris ve Super Mario Bros. keşiflerini hatırlatıyor. İnternet ve emülatörler sayesinde eski oyunlar yeni bir hayat kazanıyor.
  • Değişiklik geçmişi yorumları

    • Değişiklik geçmişi yorumları, ayrıntıları ve işçiliği gösteriyor. Bu da 'No Silver Bullet' makalesini hatırlatıyor ve yazılımın hâlâ programcılar tarafından satır satır yazıldığını düşündürüyor.