Space Quest II ana disketi hatası
(lanceewing.github.io)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. .OVLdosyaları 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
0xF6bayt değeriyle doldurulmuş olması gerekir. - Space Quest II sürüm 2.0D'nin disk 2'si bu duruma uyuyor, ancak disk 1'de
0xF6baytı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ğeriStatusLineOn. DisplayStatusLinefonksiyonu, 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.Ckaynak 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'ı,DCIise 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.EXEyü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
Hacker News görüşü
Hacker News yorumlarından derleme özet
Double Dragon II: The Revenge for DOS (1989)
DIRkomutuyla görünmüyordu ama kolayca kurtarılabiliyordu.Synthesizer ROM tersine mühendisliği
Çocukluk oyun anıları
AGI motorunun sırları
Bellek haritası ve kaynak kodu
HxD Hex Editor
Air Fortress ROM'u
Elle yapılan sürüm artefaktları
Kaynak kodunun keşfi
Değişiklik geçmişi yorumları