Geçtiğimiz haftalarda, retro oyun dünyası başta olmak üzere kod çözümleme camiasında dikkat çeken bir takım gelişmeler ardı ardına yaşandı. GoldenEye 007, Super Smash Bros. Melee ve Halo: Combat Evolved gibi efsaneleşmiş yapımların kaynak kodları, topluluk projeleriyle büyük ölçüde yeniden oluşturuldu. Böylece bu oyunları emülasyona muhtaç kalmadan, farklı platformlarda yerel olarak çalıştırmak ve çok daha iyi performansla karşılaşmak mümkün hâle geldi.
Oyun dünyası merceğinin dışından da bakarsak, Adobe’un fahiş fiyatlarla erişilebilen ve endüstri standardı hâline gelen Photoshop, Premiere ve After Effects gibi programlara açık kaynaklı alternatifler ücretsiz olarak piyasaya çıktı. Bu yazının temelini oluşturan TechSpot makalesinde ele alınan bir diğer konu ise COBOL gibi eski yazılım dillerini kullanan kurumsal sistemlerin yapay zekâ yardımıyla analiz edilmesi ve modernleştirilmesi. Bu çalışmalar, bankacılık ve ödeme sistemleri gibi hizmetlerin yeni teknolojilere daha iyi uyarlanmasına katkı sağlıyor ve gündelik hayatımızı kolaylaştırabiliyor.
Bu çabaların arkasında yalnızca gönüllü geliştiriciler değil, aynı zamanda uzun süreler mesai yapan yapay zekâ ajanları da bulunuyor. Peki, yıllar sürebilecek bir Decomp projesi bu kadar kısa sürede nasıl tamamlanabiliyor?
Decompilation Nedir ve Yapay Zekâ Bu İşte Neden Bu Kadar İyi Çalışıyor?

Meseleyi kavramak için önce decompilation kavramına ve nasıl işlediğine bakmamız gerekiyor. Decompilation için derlenmiş, yani makinenin çalıştırabileceği hâle getirilmiş bir programı inceleyerek insanların okuyup değiştirebileceği kaynak koda mümkün olduğunca yakın, okunabilir bir yapı elde etme çabası diyebiliriz. Her decompilation çalışmasının özgün kaynak kodu tamamen aynı biçimde geri getireceği garanti edilemez amaç oldukça yakın bir çıktı almaktır.
Son dönemdeki oyun projelerinin büyük bir kısmı ise bu işin daha kesin ölçütlere dayanan türü olan eşleşen decompilation yöntemini izliyor. Amaç, yeniden yazılan kodu derlediğimizde orijinal programla tamamen aynı dosyayı elde etmek. Çıktı dosyanın kendisiyle gerekirse bayt bayt karşılaştırılıyor ve aynıysa kod eşleşmiş sayılıyor.
Bu yöntem, yapay zekâ ajanlarının verimli çalışmasına oldukça elverişli; çünkü ajan, eşleştirmeye çalıştığı kodu otomatik olarak sınayabiliyor, sonuç eşleşmezse yeniden deneyebiliyor ve bu döngüyü bir insan müdahalesine göre çok daha hızlı tekrarlayabiliyor. Böylece protokolde doğrudan müdahale olmadan ve her adımı incelemesi gerekmeden kısa sürede büyük bir ilerleme kaydedilebiliyor.

Snowboard Kids 2 Decomp projesinde çalışan bir topluluk üyesi, kullandığı yapay zekâ ajanını otomatik bir deneme döngüsüne bağladı. Geliştiricinin bildirdiğine göre ajan, gözetimsiz çalıştığı üç hafta içinde önceki üç ayda kaydedilen ilerlemeden daha fazlasını sağladı.
Bu ilerlemeyi yalnızca yapay zekâya bağlamak doğru olmaz. Bugünkü projelerin çoğu, gönüllülerin uzun yıllar boyunca oluşturduğu birikimin üzerinde yükseliyor. Ghidra, N64Recomp ve objdiff gibi araçlar da bu sürecin temelindeki kod inceleme ve karşılaştırma aşamalarını kolaylaştırıyor. Yapay zekâ ise yıllardır süren çalışmaların özellikle tekrarlı ve yorucu kısımlarını haftalar, hatta günler içinde tamamlamaya yardımcı olabiliyor.
Recompilation ve Sonsuz Potansiyeli
1997’de Nintendo 64 için yayınlanan GoldenEye 007’nin yaklaşık beş yıl süren decompilation çalışması yakın zamanda tamamlandı. Ardından geliştiriciler, Windows, Linux ve Steam Deck’te çalışan yerel bir PC portu yayınladı. Bu noktada statik yeniden derleme (static recompilation) devreye giriyor: Oyunun konsol için hazırlanmış makine kodu, hedef platformda çalışabilecek koda çevriliyor. Böylece oyun, konsol donanımını çalışma sırasında yazılımla taklit etmek yerine, hedef platformun donanımından daha doğrudan yararlanabiliyor. Aradaki dönüştürme protokolüyle uğraşmak zorunda kalmayan cihaz ise emülasyona göre çok daha iyi bir performans sunabiliyor.

Halo: Combat Evolved için yürütülen Decomp çalışması, orijinal Xbox sürümündeki kodun yüzde 99.5’ini bayt düzeyinde eşleştirdiğini belirtiyor. Bu çalışma; Windows, Linux ve Android için yerel portların yanı sıra tarayıcıdan oynanabilen bir sürümle de gündeme geldi. Yasal kaygılar nedeniyle tarayıcı sürümünde oyunculardan kendi ROM dosyalarını tarayıcıya tanıtması istendiğini de belirtmeden geçmeyelim. Yirmi yılı aşkın süre önce teknolojinin sınırlarını zorlayan ve FPS türünde iz bırakan bir oyunu tarayıcı üzerinden çalıştırabilmek, başlı başına etkileyici bir gelişme. Decompilation ve yeniden derleme çalışmaları, sınırları zorlayan projeleri hayata geçirmenin yanı sıra yeni olasılıkları da kısa sürede erişilebilir kılıyor.
Yaklaşım Oyunlarla Sınırlı Değil

Yapay zekâ ajanları sayesinde eski kurumsal yazılımları incelemek ve yeni sistemlere taşımak da mümkün hâle geliyor. Bu kapsamda bankacılık ve kurumsal sistemlerde kullanılan COBOL dilinde yazılan kodların analizinde yapay zekâdan yararlanma girişimleri ve bu çalışmalardaki sınırlamalar ele alınıyor. Özellikle eski ve yeni sistemlerin çıktılarının karşılaştırılabildiği işlemler, otomatik denetime daha elverişli.
Yazılımı yeniden oluşturmanın bir başka yolu da mevcut kodu çözümlemek yerine programın davranışını ve işlevlerini gözlemleyerek yeni bir protokol geliştirmek. Adobe uygulamalarına hazırlanan açık kaynaklı alternatifler bu yaklaşımı izliyor. Geliştirici Brandon Thomas; Photoshop, Illustrator, Premiere ve Acrobat’ın da aralarında bulunduğu yedi uygulamayı Rust diliyle oldukça başarılı bir Recomp projesi içerisinde açık kaynaklı hâle getirdi.

Uygulamaları ArtCraft adı altında bir araya getiren geliştirici, Photoshop alternatifi PhotoCraft için 135 test dosyasından 134’ünün sınandığında aynı sonuçları verdiğini belirtiyor. Bu sonuç, dosyaların bozulmadan açılıp kaydedilebildiğini gösteriyor; uygulamanın Photoshop’taki tüm özellikleri aynı biçimde sunduğunu değil. Nitekim ilk kullanıcılar temel işlevlerle ilgili sorunlar bildirdi. Benzer dosyaları açabilmekle profesyonel bir iş akışını sorunsuz biçimde karşılamak arasında önemli fark var.
Denetim Yoksa Hata Gözden Kaçabilir
Eşleşen decompilation’da derleyici, üretilen kodu sınamak için açık bir ölçüt sunuyor. Ancak grafiklerin, fizik kurallarının, ağ bağlantısının veya kullanıcı arayüzünün doğru çalışıp çalışmadığını aynı kolaylıkla ölçmek hâlâ mümkün değil. Tamamen yapay zekâyla üretildiği belirtilen Super Smash Bros. PC portunda fizik hatalarının fark edildiği aktarılıyor. Kod ilk bakışta doğru görünse bile oyun beklenmedik biçimde davranabilir; bu tür sorunların tespiti için insan müdahalesi gerekebilir.
Hukuki Sorular Hâlâ Bir Gerçek
Günümüzde yayınlanan yeniden derleme projeleri, genellikle yalnızca yeni yazılmış kodu dağıtıyor ve oyunculardan kendi oyun dosyalarını kullanmalarını istiyor. Böylece telifli oyun dosyalarının dağıtılmasından kaçınılması ve hukuki risklerin azaltılması amaçlanıyor. Ancak bu yaklaşımın hukuki sınırları henüz mahkemelerde sınanmış bir konu değil.

Bu kapsamda Activision’ın Modern Warfare 2 projesine müdahale ettiği ve Bethesda’nın yapay zekâyla hazırlanan Fallout: New York projesi için ihtarname gönderdiğini bildiriliyor. Adobe uygulamalarına alternatif yazılımlar söz konusu olduğunda da benzer sorular gündeme geliyor: Bir programın işlevlerini yeniden sunmak hangi noktada hukuki sorun yaratır? Yapay zekâyla yazılan bir uygulamanın “bağımsız” olduğu nasıl belirlenir?
Sonuç: Bu Gelişmeler Ne Anlama Geliyor?
Yapay zekâ, tersine mühendisliği oldukça basit bir işe dönüştürmedi fakat sonucu karşılaştırılabilen ve tekrarlı biçimde yürütülen işleri çok daha verimli hâle getirdi. Bu sayede unutulmuş oyunlar yeniden ele alınabiliyor, eski yazılımların işleyişi daha hızlı çözümlenebiliyor ve yeni alternatifler geliştirilebiliyor. Yakın zamanda decompilation projelerinin sayısında görülen büyük artışın nedenlerinden biri de bu.
Diğer bir yandan hız, doğruluğu veya kaliteyi tek başına garanti etmiyor. Kodun işe yarayıp yaramadığını denetlemek, kullanıcıların ihtiyaçlarını anlamak ve yazılımın bakımını üstlenmek hâlâ insan müdahalesi gerektiriyor. Eski yazılımların kodu artık daha hızlı çözülebilir hâle gelse de ortaya çıkan sonucun güvenilir olup olmadığı sorusu önemini koruyor.