1 puan yazan GN⁺ 2024-05-24 | 1 yorum | WhatsApp'ta paylaş
  • Sierra On-Line'ın Space Quest II 2.0D/2.0F 720KB Disk 1 sürümünde, dosya listesinde görünmeyen AGI yorumlayıcı kaynak kodu kalmıştı; bu, ana disket hazırlama hatasının ticari disklere aynen kopyalandığı bir örnekti
  • DOS FAT'te dosya silme işlemi veriyi silmez, yalnızca sektörleri kullanılmamış olarak işaretler; bu yüzden formatlanmamış bir disket ana kopya olarak kullanılırsa önceki veriler tüm kopyalara taşınabilir
  • Disk 1'in 402.432 baytlık “free” alanında format dolgu değeri 0xF6 yerine C/assembly kaynak kodu kalmıştı; çıkarma sonucunda 93 dosya, 15.000'den fazla satır ve AGI yorumlayıcı kaynak kodunun yaklaşık %70'i doğrulandı
  • FormMaster kopyalama cihazı dosya bazında değil, diskin tüm sektörlerini bayt düzeyinde kopyaladığından, gerçek dosya listesinde olmayan silinmiş verilerin bile müşteri ve perakende disklerine yayılmış olması mümkün
  • AGI döneminin sonlarında, Mart 1988'de yaşanan bu hata, NewRisingSun'ın Ekim 2016'daki ilk bilinen keşfine kadar gizli kaldı ve 36 yıl sonra Sierra'nın AGI uygulamasına bakmayı sağlayan bir dijital arkeoloji kaynağına dönüştü

Yalnızca dosya listesiyle görünmeyen izler

  • 2.0D ve 2.0F sürümündeki Space Quest II 720KB disketleri dışarıdan bakıldığında özel bir şey göstermiyor ve dosya listesi de sıradan Sierra oyun diskleri gibi görünüyor
  • 2.0D dizininde şüpheli ek dosyalar yok; PICDIR, LOGDIR, VIEWDIR, SNDDIR, VOL.0, VOL.1 gibi ana veri dosyaları 14 Mart 1988'de oluşturulmuş
  • .OVL dosyaları 15 Mart 1988, AGI yorumlayıcı kodu ise 18 Mart 1988 zaman damgasını taşıyor; bu da Sierra ofisinde Space Quest II 2.0D hazırlığının bir hafta boyunca sürdüğünü gösteriyor
  • Diskte kullanılan alan 302.918 bayt, “free” alan ise 402.432 bayt olarak görünüyor; yani boş alan kullanılan alandan daha büyüktü

Hex editörde ortaya çıkan kullanılmamış alan

  • DOS'ta yeni formatlanmış disketlerde kullanılmamış sektörler genellikle format dolgu değeri 0xF6 ile doldurulur
  • Space Quest II 2.0D'nin Disk 2'sinde kullanılmamış sektörler 0xF6 ile doluyken, Disk 1'de 0xF6 ile doldurulmuş tek bir kullanılmamış sektör bile yoktu
  • Disk 1'de art arda gelen 0xF6 baytlarının en uzun dizisi yalnızca 2 bayttı; alanın yarısından fazlası “free” görünse de gerçekte önceki veriler duruyordu
  • Kullanılmamış olarak işaretlenmiş bölgede C kaynak koduna benzeyen metinler vardı; bu da söz konusu diskin Space Quest II Disk 1 ana disketi olarak kullanılmadan önce başka bir amaçla kullanıldığını güçlü biçimde düşündürüyor
  • DOS FAT dosya sisteminde dosya silme işlemi gerçek veriyi kaldırmaz, yalnızca sektörleri yeniden kullanılabilir olarak işaretler; yeni dosyalar üzerine yazmadıkça eski içerik olduğu gibi kalır

Geriye kalan AGI yorumlayıcı kaynak kodu

  • Kullanılmamış alandaki ASCII metin çıkarıldığında DisplayStatusLine ve StatusLineOn gibi C fonksiyonları bulundu
  • DisplayStatusLine, mevcut skor ile ses on/off durumunu içeren bir metin satırını gösteren koddur ve Space Quest II ekranının üst kısmındaki beyaz durum çubuğuyla bağlantılıdır
  • Bu kod oyun verisi değil, Sierra'nın AGI yorumlayıcısının kendisine ait kaynak koddur
  • Kullanılmamış sektörlerde büyük miktarda kaynak kod vardı ve kod ardışık sektörlerde saklandığı için nispeten kolay çıkarılıp dosya bazında ayrılabildi
  • Her dosyanın üst kısmında kaynak dosya adını gösteren yorumlar bulunduğundan bölünme noktalarını bulmak kolaydı; ayrıştırma sonucunda toplam 93 dosya elde edildi
    • 75 C kaynak dosyası
    • 16 assembly kaynak dosyası
    • 2 DOS BAT dosyası
  • Toplam kod 15.000 satırdan fazla ve dosyaların çoğu eksiksiz durumdaydı
  • Bu diskte Sierra On-Line'ın AGI yorumlayıcı kaynak kodunun yaklaşık %70'i, yorumlar ve değişiklik geçmişiyle birlikte yer alıyordu

Değişiklik geçmişi ve geliştirici izleri

  • Bazı kaynak dosyalarının üst bilgi yorumlarında Change History yer alıyor
  • ANIMATE.C başlığında kaynak dosya adı, “adventure game içinde bir animasyon döngüsünü işler” anlamına gelen kısa bir açıklama ve compile: MWC gibi bilgiler bulunuyor
  • MWC, o dönemde yaygın kullanılan Mark Williams şirketinin C derleyicisi gibi görünüyor
  • Değişiklik geçmişinde tarih, saat, değişikliği yapan kişinin baş harfleri ve değişiklik açıklaması yer alıyor
  • Bu baş harflerden JAS, AGI yorumlayıcı kodunda yoğun çalışan Jeff Stephenson'a; DCI ise Chris Iden'e karşılık geliyor
  • Robert Heitman da görünüyor ancak onun ana odağı Picture Editor ve View Editor gibi grafik araçlarıydı; Jeff Stephenson ile Chris Iden ise daha çok yorumlayıcı kodundan sorumluydu

AGI.EXE bellek haritası ve %70 hesabı

  • Space Quest II 2.0D 720KB Disk 1'de 93 kaynak dosyasına ek olarak AGI.EXE çalıştırılabilir dosyasının bellek haritası da 2.000 satırdan fazla yer kaplıyordu
  • Yayınlanan AGI oyunlarında yorumlayıcı çalıştırılabilir dosyasının adı yalnızca AGI idi ve doğrudan çalıştırılamıyordu; ancak geliştirme sırasında .EXE uzantılı, doğrudan çalıştırılabilen bir yorumlayıcı kullanılıyordu
  • Sierra'da birisi 7 Ekim 1987'de AGI.EXE'nin, yani AGI yorumlayıcısının bellek haritasını oluşturdu
  • Bu tarih, kaynak kodu değişiklik geçmişindeki en yeni yorumların Eylül 1987 tarihli olmasıyla da örtüşüyor
  • Bellek haritası, AGI yorumlayıcısını oluşturan modüller ve kaynak dosyalarının görece eksiksiz bir listesini veriyor
  • Bellek haritasında görünen farklı kaynak dosyalarının sayısı 98 ve bunlardan 71'i SQ2 disketinde eksiksiz biçimde bulunuyor
  • Bu orana göre Space Quest II disketinde AGI yorumlayıcı kaynak kodunun yaklaşık %70'inin yer aldığı hesaplanıyor
  • Bazı modüller yalnızca C başlık dosyaları içerdiğinden bu hesaplamaya dahil edilmedi

Sierra'nın fikri mülkiyeti olarak AGI

  • Sierra On-Line, 1984'te King’s Quest'in çıkışı civarında ticari olarak zor bir dönem geçiriyordu ve Ken Williams yaklaşık 100 çalışanı işten çıkararak kadroyu yaklaşık 130'dan 30'a indirmek zorunda kalmıştı
  • Sonrasında AGI macera oyunu sistemi ve bunun üzerinde geliştirilen oyunların başarısı, şirketin durumunu değiştirmeye katkı sağladı
  • 1984 sonlarında King’s Quest, bilgisayar oyunu yazılım satış listelerinde ilk 20'ye girdi ve King’s Quest II çıkana kadar yaklaşık yarım yıl bu listelerde kaldı
  • Tandy Radio Shack ile yapılan anlaşma sayesinde Tandy sürümü oyunların Radio Shack mağazalarında satılması da buna yardımcı oldu
  • 1985'ten 1988'e kadar AGI oyunları sürekli çok satanlar arasındaydı ve AGI yorumlayıcısı Sierra On-Line'ın başlıca gelir araçlarından biri ve temel fikri mülkiyeti idi
  • AGI yorumlayıcı kaynak kodunun %70'inin büyük ölçekli kopyalanıp on binlerce ya da yüz binlerce müşteriye ulaştırılması, Sierra açısından büyük bir hataydı

Formatı atlanan ana disketin etkisi

  • Sierra yeni bir oyun sürümünü hazırlarken, FormMaster disk kopyalama cihazında kullanılacak bir production copy ana disketi oluşturuyordu
  • FormMaster, ana disketten yalnızca dosyaları değil, kullanım durumuna bakmadan diskin tüm sektörlerini bayt düzeyinde kopyalıyordu
  • Space Quest II 2.0D ve 2.0F Disk 1'de bu yöntem yüzünden gerçek dosya olarak kullanılmayan 402.432 bayt da birlikte kopyalandı
  • Ana disket hazırlama sürecinde oyun dosyaları kopyalanmadan önce diskin tamamen formatlanması gerekiyordu ve Sierra çoğu özgün oyun diskinde bu adımı düzgün uygulamıştı
  • Space Quest II 2.0D Disk 1'de birinin bu format adımını atladığı anlaşılıyor; aynı disk daha sonra 2.0F için de kullanıldı
  • Sonuç olarak, müşterilere ve perakendecilere giden yüz binlerce SQ2 diskinin içinde AGI yorumlayıcı kaynak kodunun %70'i gizli halde bulunmuş olabilir

Ancak 2016'da bilinen bir dijital arkeoloji vakası

  • Bu olay neredeyse kesin olarak kasıtsız bir hataydı ve Sierra'nın kendisi, rakipleri ya da müşterileri bunu o dönemde fark etmemiş gibi görünüyor
  • İlk bilinen keşif, çevrimiçi kullanıcı NewRisingSun tarafından Ekim 2016'da yapıldı
  • Bunun AGI döneminin sonlarında yaşanmış olması da önemli
    • Mart 1988'de Sierra, SCI macera oyunu sistemini zaten geliştirmiş durumdaydı
    • SCI kullanan ilk oyun olan King’s Quest IV'ün çıkışı yaklaşıyordu
  • AGI yorumlayıcı kaynak kodunun yanlışlıkla açığa çıkabileceği an 1-2 yıl daha erken olsaydı, bu daha büyük bir sorun olabilirdi
  • Çıkarılan AGI yorumlayıcı kaynak kodu GitHub deposuna yüklenmiş durumda
  • Web tabanlı AGI yorumlayıcısı AGILE'ın uygulanması da başlangıçta özgün AGI kaynak kodunun bazı bölümlerinden yararlandı

1 yorum

 
GN⁺ 2024-05-24
Hacker News yorumları
  • 1989 DOS sürümü Double Dragon II: The Revenge, 2 disketle dağıtılmıştı; bunlardan birinde tüm kaynak kodu, silinmiş bir sıkıştırılmış dosya olarak yer alıyordu
    DIR komutunda görünmüyordu ama kolayca kurtarılabiliyordu: https://tcrf.net/Double_Dragon_II:The_Revenge(DOS)

    • ROM'ları açıp baktığınızda, derleme sürecinden dizin ve dosya adlarının olduğu gibi silikona kazındığı örnekler görmek her zaman eğlenceli
      Kelimenin tam anlamıyla her bir baytın para ettiği dönemlerde bile insanların FAT girdilerinin kartuşlara yazılmış olduğu epey örnek bulunması komik
      https://forums.nesdev.org/viewtopic.php?t=17324
    • Biraz aptalca bir soru olabilir ama bunun nasıl yaşandığını merak ediyorum
      Oyunu son hâline getirip bir tür master disk oluşturduktan sonra seri üretim tesisine göndermiş olmalılar; silinmiş sıkıştırılmış dosyanın master'a nasıl girdiğini düşünüyorum. Yanlışlıkla kopyalayıp çıkıştan önce silmiş olabilirler mi diye de akla geliyor
    • Bir arkadaşımın evine gittiğimde, arkadaşımın babasının bilgisayarında oynadığım ikinci çok oyunculu oyunumdu
      İlki de aynı bilgisayarda oynadığım DOS Spacewar! idi. Yanlış hatırlamıyorsam boss'a gelince oyun kilitlendiği için Double Dragon II'yi sonuna kadar bitirememiştim ama güzel bir anıydı
  • Son zamanlarda epey sentezleyici ROM tersine mühendisliği yapıyorum
    Yamaha DX9 ROM'unda, ikili dosyada kalan boş alanın içinde firmware sembol tablosundan parçalar vardı[0]; ayrıca muhtemelen geliştirme sisteminden geldiğini düşündüğüm büyük bir 6303 kod bloğu da bulunuyordu. Böyle şeyleri tesadüfen keşfetmek gerçekten şaşırtıcı bir his. Bu işe o kadar kapılmıştım ki geçmişe hafifçe göz atan bir yazılım arkeoloğu gibi hissettim ve Yamaha'nın hangi geliştirme araçlarını kullandığını anlamaya çalışırken derin bir tavşan deliğine düştüm. Kesin bir şey bulamadım ama o dönemin geliştirme aracı belgelerini okurken modern iş akışlarına duyduğum minnettarlık arttı
    0: https://ajxs.me/blog/Hacking_the_Yamaha_DX9_To_Turn_It_Into_...

    • Ben de sentezleyici tarafında tersine mühendisliği sevdiğim için geçmişte Yamaha A-sampler'ı analiz etmiştim ve Yamaha A-sampler disk kullanıcılarının temel işleri daha hızlı yapabilmesi için bir yönetim aracı geliştirmiştim
      BeBox ile ham giriş/çıkış ve ham disk sektörü analizi üzerinde çok çalıştım; BeOS'te dosya sistemi hack'leri için iyi araçlar vardı. Bunun sayesinde Windows için bir dosya sistemi sürücüsü yazdım ve Yamaha'nın desteğini alacak kadar iyi çalışıyordu. Bir gün A-sampler için Yamaha ROM'unu tersine mühendislik etmeye heveslenirsen iletişime geçmeni isterim. Bu alana çok ilgi duyuyorum. DX9/DX7 çalışması da harika; iki sentezleyiciyi de çıktıkları dönemden beri kullanan biri olarak gerçekten eğlenceli
  • Bu oyun çocukluğumda o kadar güçlü bir yer tuttu ki, aradan bunca zaman geçtikten sonra şimdi düşününce neredeyse rüya gibi geliyor
    Şimdiki hayatımda herhangi bir oyunla aynı türden bir bağ kurduğumu hayal etmek imkânsız geliyor. Etrafımdaki her şey sadece oyun, dizi, eşya gibi hissettiriyor; oysa Space Quest 2, 3, 4 DNA'mın temel bir parçası gibi iç içe geçmiş durumda

    • Space Quest III benim ilk Sierra oyunumdu ve kesinlikle böyle bir gücü var
      O dönemin Sierra oyunları gerçekten özeldi. Özellikle Police Quest II, LSL III ve Hero's Quest'i benzer zamanlarda çok oynamıştım. Metin tabanlı EGA Sierra oyunlarında sihirli bir şey vardı; benim için Infocom ile daha sonraki point-and-click VGA sürümleri arasında duygusal ve yaratıcı bağ açısından tam doğru noktadaydı
      1. oyunla başladım ama sonra 1-5'i geriye dönüp oynadım ve kesinlikle temel kişiliğimin bir parçası oldu
        Space Quest, en sevdiğim erken internet hikâyemle de iç içe. Web sitelerinin çoğunlukla Geocities ve canı sıkılmış üniversite öğrencileri tarafından barındırıldığı dönemde bir Space Quest hayran sitesi vardı; büyük SQ sitelerinden birinin yöneticisine e-postayla oyunu ve siteyi sevdiğimi yazmıştım. O zamanlar 14 yaşlarındaydım; bana orijinal oyunları yaklaşık 40 dolara gönderebileceğini söyledi. Orijinal kutuları ve disketleriyle tüm ilk oyunlardı. 1997 civarıydı; ülkenin öbür ucundaki tanımadığım birine 40 dolar gönderip gerçekten göndermesini beklemek biraz endişe vericiydi ama gerçekten gönderdi. Birkaç hafta sonra tüm oyunlar tam tarif ettiği gibi geldi ve çok mutlu oldum. Bir gecede gerçek bir inanana dönüştüm; hâlâ tutunduğum iyimserliğin güneş çekirdeği gibi bir anı. Jess, eğer bir yerlerdeysen, sen gerçektin. Umarım bir gün tekrar karşılaşırız
    • Bende de çok benzer bir his var
      Babam bir çelik fabrikasında çalışıyordu ve oradaki bilgisayar sorumlusuyla arkadaştı; o da evde denememiz için SQ2'nin bir kopyasını vermişti. Oyunu çılgınca oynadım ama oldukça küçük olduğum için birçok yer kafamı karıştırıyordu. Gerçekten takıldığımda babamdan, o bilgisayar sorumlusuna belirli bir noktayı nasıl geçeceğimi sormasını isterdim; o da doğrudan cevabı vermek yerine nazikçe ipucu verirdi sanırım. Aradan yaklaşık 35 yıl geçti ama o oyunla ilgili gördüğüm rüyaları bile hâlâ epey ayrıntılı hatırlıyorum. Gerçekten büyük etkisi oldu
    • Ben de aynı hissi taşıyorum ama özellikle Space Quest II için böyle
      SQ I'i çok daha sonra oynadım, SQ III de beni o kadar güçlü etkilemedi. Geri kalanlar artık EGA metin girişli oyunlar da değildi. SQ II birçok anıyı geri getiriyor; İngilizcenin bir kısmını da onunla öğrendim. Roger Wilco'ya “rub berries” yaptırabileceğimi keşfettiğimde duyduğum tatmini hatırlıyorum
    • Oyunun başlarında yaratığı kurtarırken free little dude komutunun işe yaramasına çok sevinmiştim
      Bu türde oynadığım ilk oyun buydu ve yaklaşık on yaşımdayken haftalarca başından kalkmamıştım
  • AGI motorunda rakiplerin bir sızıntıdan yararlanabileceği kadar özel bir gizli sos olduğunu sanmıyorum
    Başka örnekler de olabilir ama Hugo's House of Horrors, birkaç yıl sonra tek kişinin yaptığı AGI tarzı bir oyundu. Grafik macera türünün ilk dönemlerdeki yeniliğinin ötesinde Sierra oyunlarının başarılı olmasının nedeni, grafikleri hazırlamak ve gerçek oyunu yazmak için muazzam emek harcanmasıydı. Bu, teknolojinin hiçbir önemi olmadığı anlamına gelmez; ama nihai üründeki payı görece küçüktü

    • O dönemde bilgiye ve işe yarar örnek koda ulaşmak çok daha zordu
      Çalışan yazılımları öğrenmek ve yapmak bugünkünden katbekat zordu; üzerine inşa edilecek neredeyse hiçbir şey yoktu. MS-DOS'ta kayda değer açık kaynak çok azdı, açık kaynak oyun motoru ise daha da azdı. Böyle bir ortamda AGI kaynağı yaygın biçimde sızmış olsaydı, en azından dönemin en popüler PC oyunlarının tam olarak nasıl yapıldığını gösteren bir plan olarak epey anlamlı olabilirdi
    • Sızan kaynak kodun gerçekten değerli olup olmadığını bazen merak ediyorum
      Özellikle de anahtarlar veya arka kapılar gibi hacker'ların kötüye kullanabileceği sırlar içermeyen kodlar söz konusuysa. Sızan kodun doğal olarak lisansı yoktur; bu yüzden davadan kaçınmak istiyorsanız onu kendi ürününüzde olduğu gibi yeniden kullanamazsınız. Sonunda o kodu okuyup teknikleri anlamanız ve telif hakkı ihlali kokusu vermeyecek şekilde kendi işinize uygulamanız gerekir ki bu çoğu zaman sıfırdan yapmaktan daha zordur. Avantajlı olduğu durumlar olsa bile bunun ne kadar sık gerçek bir rekabet üstünlüğüne dönüştüğü de şüpheli. Geliştiriciler, iyi belgelenmiş ve izin verici lisansa sahip açık kaynak varken bile yeni kod yazabiliyor. Kodu okumak çoğu zaman yazmaktan daha zordur; yalnızca yeniden derlemek bile zor olabilir. Kopyalamayı biraz kolaylaştırabilir ama oyunlar genellikle birkaç gün içinde kırılıp dağıtılıyordu ve kopya koruma kodu kaynakta yer almıyor da olabilir
    • “ASM ya da C yazmadan da bir şeyler yapılabilen çağda” büyümüş birinin sözü gibi geliyor
      O dilleri konuşabilen kişi sayısı muhtemelen birkaç basamak daha azdı; onlarla tutarlı bir şey inşa edebilenlerin sayısı ise daha da azdı
    • O zamanlar iç sinir ağlarının öğrenme oranı neredeyse maksimuma çıkmıştı
      Bugün hızla düşüyor; bu yüzden şu anda karşılaştığımız şeylerin iç ağırlıkları şekillendirme gücü o zamanki kadar büyük değil
  • Değişiklik geçmişi yorumları gerçekten harika
    Kaynak kontrol araçlarının bunları net biçimde göstermesinden çok önceki bir dönemde, yüksek düzeyde özen ve zanaatkârlık sergiliyor. Açıkçası CVS/SVN/Git sonrasında bile bu birçok kişi için hâlâ net değildi. Bu yazı bana, 1986'da yazılımın gelecekte de büyük ölçüde o zamanki gibi programcıların komutları tek tek zahmetle yazmasıyla ilerleyeceğini öngören ünlü “No Silver Bullet” makalesini[1] hatırlatıyor. Orijinal yazıdaki oyun motoru kodu ve yorumlarının bugün benim yazabileceğim şeylere benzemesi, neredeyse 40 yıl sonra bile o öngörüyü destekliyor bence
    [1] https://en.wikipedia.org/wiki/No_Silver_Bullet

    • Bugün bile git commit mesajlarında çok fazla “fix” veya “stuff” görüyorum
  • Famicom sürümü Air Fortress'ın ROM'una istemeden giren şeylerin sayısı saçma derecede fazla
    Derlenmemiş ASM kodu, MS-DOS dizin listesi, oyunu derlemek için kullanılan EXE'lerden birine ait dizeler ve daha fazlası var. Japonya kartuşu 128+128KB idi. Daha sonra ABD NES sürümünü yaparken grafik verilerinin 128KB'lık bölümünün büyük kısmının yinelenen grafikler veya kullanılmayan veriler olduğu, gerçekten benzersiz grafiklerin yaklaşık 36KB tuttuğu görüldü. Sonlardan birindeki gezegen görseli kaldırılarak grafikler 32KB'a indirildi ve 128+128KB kartuş yerine 128+32KB kartuş olarak piyasaya sürüldü
    Kaynak: https://tcrf.net/Air_Fortress

  • Bu tür durumlar gerçekten çok sık yaşanıyordu
    The Cutting Room Floor'da yanlışlıkla dahil edilmiş kodun az miktarda bulunduğu örneklerden büyük bölümünün bulunduğu örneklere kadar yaklaşık 500 kayıt listeleniyor
    https://tcrf.net/Category:Games_with_uncompiled_source_code

    • Hızlıca kontrol edince, bu belirli Space Quest II diskindeki AGI yorumlayıcısının derlenmemiş kodu vakası henüz orada yok gibi görünüyor
      Ben de aynı sonuca mı varıyorum merak ediyorum. King's Quest III diskinde de aynı şey olmuştu ve aslında Space Quest II vakasıyla neredeyse aynı dönemde gerçekleşmiş gibi görünüyor
  • En sevdiğim kısım, bir nesil boyunca diskte duran kaynak kodu kimsenin keşfetmemiş gibi görünmesi
    “Şaşırtıcı biçimde, ne Sierra'nın ne rakiplerinin ne de müşterilerin bunun yaşandığını fark ettiği anlaşılıyor; ancak onlarca yıl sonra keşfedildi. Bilinen ilk keşif, Ekim 2016'da çevrimiçi kullanıcı NewRisingSun tarafından yapıldı.” Bu bana Tetris ve Super Mario Bros. ile ilgili yakın dönemdeki atılımları da hatırlatıyor. Çocukken bu oyunları oynadığımda, onlarca yıl sonra unutulmuş kalıntılar olarak kalacaklarını ve en adanmış meraklılar dışında kimsenin onları çalıştıramayacağını düşünürdüm. Ama internet ve emülatörler bu erken dönem oyunlara ve bilişime yeni bir hayat verdi

    • Son cümle cevabı veriyor gibi
      Silinmiş dosyaları bulanlar mutlaka olmuştur; ancak internet yaygınlaşmadan önce olduğu için bunun geniş kitlelere ulaşmamış veya kayda geçmemiş olması muhtemel
    • Eski yazılımları korumak için flux imaging gibi modern araçlar kullanıp kusursuz disk kopyaları oluşturulmasını sağlayan insanlar var
      Bu tür diskler imajlanırken boş alanda kalan verileri birileri fark etmiş olabilir
  • 1987 ile 1993 arasında iki Mac uygulaması için yaklaşık dokuz master disk hazırladım
    Her zaman yeni disketler kullandım ve diskin doğru olduğundan emin olmak için uzun bir kontrol listem vardı. Neyse ki hepsi sorunsuz çıktı; özellikle bazıları 100 bin disk üretmek için kullanıldı. Artık kimsenin böyle şeyler yapmak zorunda olmaması iyi

    • Bugün de benzer şeyler yapıyoruz aslında, sadece adı Docker katmanı
      Şöyle katmanlar gördüm: base, araçları ekle, kaynak kodunu ekle, derle, kaynak kodunu sil, ek araçları sil, yayınla. “Docker imajı neden bu kadar büyük? Neyse, depolama alanı ucuz zaten...” gibi bir durum. Çok aşamalı build gibi kolay çözümler de var ( https://docs.docker.com/build/building/multi-stage/ ). Ama mevcut Docker imajı görünümünün önceki tüm katmanları içerdiğini bilmiyorsanız, ara sıra hata yapılabiliyor
  • Yayın çıktılarının elle hazırlandığı dönemlerde, yayınlanması amaçlanmayan artıklar sık sık pakete girerdi
    Kesilmiş içerik[1] veya debug sembolleri[2] gibi şeyler. Tersine mühendisliğini yaptığım bir video oyununun demo sürümü veri arşivinin içinde gizli debug sembolleri tesadüfen bulduğumda beklenmedikti ama çok işime yaradı. Günümüzde CI/CD, otomatik build’ler ve diğer modern geliştirme pratikleri sayesinde bunun daha az yaşanması muhtemel
    [1] https://tcrf.net
    [2] https://www.retroreversing.com/games/symbols

    • CI/CD gibi iyi pratiklerin oyun geliştirmede sanıldığı kadar yaygın olmayabileceğinden şüpheleniyorum
    • CI/CD pipeline’ı ters yönde de etki edebilir
      Hata yoksa binlerce satırlık konsol çıktısına kimse bakmaz. Nihai yayın paketinde gereksiz şeyler fazlasıyla yer alsa bile testlerin geçmesi muhtemeldir. Bu yüzden içgüdüm tam tersini söylüyor. Daha sık yaşanıyor olabilir; en azından CI/CD’nin bunu manuel build’e göre daha olası hâle getirmesi de mümkün. Başka etkenler de olabilir