Oyun

Super Mario Bros dünya rekoru teorik hedefe 4 kare uzakta. Aynı yıl oyunda yepyeni bir açık bulundu

Super Mario Bros 1985'ten beri oynanıyor, kare kare inceleniyor, dünya rekoru teorik hedefin dört karesi gerisinde. Buna rağmen 2026'da oyuna kendi kodunuzu çalıştırma yolu bulundu — ve iz, bambaşka bir oyundan geldi.

Eski tüplü televizyonda 8-bit Mario sahnesi; ekranın bir köşesi soyulmuş, altından devre şeması ve onaltılık kod görünüyor

Super Mario Bros'un any% dünya rekoru şu anda 4 dakika 54,332 saniye. Niftski'nin 13 Ağustos 2026'da yaptığı koşu Speedrun.com'da hâlâ birinci sırada.

Bu rakamın yanına şunu koyun: mevcut RTA kuralları altında teorik olarak ulaşılabilir kabul edilen süre 4:54,265. Yani insan rekoru, o hedefin yalnızca dört karesi — yaklaşık 67 milisaniye — gerisinde.

Bir not: bu mutlak bir matematiksel sınır değil. Araç destekli koşularda sol ve sağ tuşuna aynı anda basarak elde edilen 4:54,032 gibi daha hızlı süreler var; ama bu girdi standart NES kumandasıyla yapılamıyor ve RTA kurallarında yasak.

1985 yapımı bir oyundan bahsediyoruz. Oyunun kodu yıllardır ayrıntılı biçimde disassemble edilmiş, her karesi analiz edilmiş, on yıllardır optimize ediliyor. Böyle bir sistemde keşfedilecek yeni bir şey kalmadığını düşünürsünüz.

2026'da kalmadığı anlaşıldı.

Kutsal kâse: oyunu yeniden programlamak

Bir koşucu ekibi — threecreepio, OnehundredthCoin, HappyLee, Simplistic6502 ve Kosmic — Super Mario Bros'un Famicom Disk System sürümünde arbitrary code execution (keyfi kod çalıştırma) yapmanın yolunu buldu.

Bunun ne demek olduğunu Kosmic şöyle özetliyor: bu glitch, oyunun hangi kodu çalıştıracağını seçmenizi sağlıyor. Yani oyuncu, yalnızca kumanda girdileriyle oyunu yeniden programlayabiliyor.

Speedrunning topluluğunda böyle bir açığa "kutsal kâse" denmesinin nedeni bu: tek bir hatayı sömürmek değil, sistemin kontrolünü ele geçirmek.

Mekanizma: kod olmayan belleği kod diye çalıştırmak

Zincir kabaca şöyle işliyor.

Meşhur Minus World'e (dünya -1) erişiliyor; oyuncu Luigi'yle oynarken bir Buzzy Beetle'ı kontrol ediyor. DuplicateEnemyObj hatası üzerinden belirli bellek adreslerine yazılıyor ve zincir başlıyor.

Program akışı, normal oyun kodunun dışına çıkarak PPU yazmaçlarının eşlendiği $2060 bölgesine sıçrıyor. Burada CPU normal program talimatlarını okumuyor; grafik donanımının yazmaç okumalarından dönen değerleri komut baytları gibi yorumlamaya başlıyor. Ekip bu davranışı kontrol edilebilir hâle getirerek önce oyun kodundaki belirli bir baytı değiştiriyor: $9C9D adresine $08 yazılması PowerUpObjHandler içinde bir PHP komutu oluşturuyor ve dönüş adresi yönetimini bozuyor. Ardından yürütme RAM'e taşınıyor ve kumanda girdilerinden oluşan bir payload çalıştırılabiliyor.

Kısacası: kumanda girdileri belleğe yazmanın bir yolu olduğuna göre, oyuna dışarıdan program yüklemiş oluyorsunuz.

NES kumandasından çıkan kablo, üzerinde onaltılık baytlar yazan bir delikli şerit gibi konsolun içindeki bellek yongasına akıyor

İz, başka bir oyundan geldi

Hikâyenin en ilginç kısmı burası.

Bu keşfin başlangıcı Super Mario Bros değildi. Bir oyuncu, Nintendo Switch üzerinden Super Mario Bros: The Lost Levels oynarken oyunu çökertti. Mario speedrunning topluluğu bu çökmeyi duyunca, ne olduğunu anlamaya ve aynı şeyin orijinal oyunda tekrarlanıp tekrarlanamayacağını bulmaya çalıştı.

Ekibin kendi kaydına göre araştırma Mart 2025'te başladı. Nisan-Ekim 2025 arası denemeler sonuç vermedi; ekip Aralık 2025'te toplandı ve PPU yazmaçları üzerinden çözüm 2026'nın ilk aylarında bulundu. Gönderim 31 Mart 2026 tarihli.

Yani kırk yıldır incelenen bir sistemde yeni bir açığın izi, o sistemin kendisinden değil komşu bir üründen geldi. Kalite tarafında bu çok tanıdık bir durum: bir hattın sorununu çoğu zaman o hatta bakarak değil, benzer bir hatta çıkan tuhaf bir sonuç sayesinde fark edersiniz.

Ölçüm araçları hakkında da öğretici bir ayrıntı var. Süreçte mevcut emülatörlerin PPU davranışını yeterince doğru modellemediği noktalar ortaya çıktı: OnehundredthCoin, BizHawk 2.11'de $2004 okuması sonrası ikincil OAM indeksinin sıfırdan okunmasına dair bir hata buldu. Emülatör doğruluğu üzerine yaptığı çalışma ve BizHawk tarafındaki düzeltme, açığın güvenilir biçimde test edilebilmesinde kritik rol oynadı.

Kısacası: açığı bulmak için önce ölçüm aracını düzeltmek gerekti.

Tezgâhta iki kartuş: Lost Levels çatlamış ve dumanı tütüyor, yanındaki Super Mario Bros'a büyüteç tutulmuş; büyütecin camında hairline çatlağı onarılıyor

Rekor kırmıyor — ve bunu doğru aktarmak gerekiyor

Bazı başlıklar bu keşfi "speedrun rekorlarını kıracak" diye duyurdu. Durum tam tersi.

Yayımlanan ACE koşusunun süresi 5:29,957 — yani oyunu normal şekilde bitirmekten yaklaşık 35 saniye daha uzun. Keşfin mevcut hâli hiçbir speedrun kategorisinde zaman kazandırmıyor.

İnsan eliyle yapılabilirliği konusunda da temkinli olmak gerekiyor: şu ana kadar yayımlanmış uygulama araç destekli bir koşu (TAS); insanın gerçek zamanlı olarak uyguladığı doğrulanmış bir koşu bulunmuyor. Gereken hassasiyet nedeniyle mevcut yöntem RTA için pratik görünmüyor.

Bu, keşfi küçültmüyor. Sadece ne olduğunu doğru yere koyuyor: bu bir hız başarısı değil, bir sistem anlama başarısı.

Emülatörde kalan bir numara da değil

Yeni açık yalnızca teorik bir emülatör kurgusu değil. Kosmic, koşuyu gerçek Famicom Disk System donanımında en az üç kez doğruladı.

Ancak ekibin kendisi bir uyarı düşüyor: başarı oranı %100 değil. CPU-PPU senkronizasyonu, PPU okuma davranışı ve konsol revizyonları arasındaki farklar tutarlılığı düşürüyor; daha fazla test gerekiyor.

Yöntemin nereye varabileceği de açık bir soru. Ekipten Simplistic6502'nin ifadesiyle, oyunu bir video oynatıcıya çevirmek gibi daha gösterişli uygulamalar "yalnızca zaman meselesi" — ama bu yöntemle henüz yapılmadı, şimdilik teorik.

Asıl mesele: optimizasyon ile keşif aynı şey değil

Bu hikâyeyi ilginç kılan şey, iki rakamın yan yana durması.

Bir tarafta, teorik hedefe dört kare kalmış bir dünya rekoru. Bu, bilinen bir yolun olağanüstü optimizasyonu. Her kare, her piksel, her girdi zamanlaması binlerce kez denenmiş.

Diğer tarafta, aynı yıl bulunmuş daha önce bilinmeyen bir exploit zinciri. Bu ise bilinen yolun dışındaki durum uzayı.

İkisi farklı faaliyet. Bir süreci mevcut yordamı içinde ne kadar iyileştirirseniz iyileştirin, o yordamın dışında kalan davranışları görmüyorsunuz. Test kapsamınız yordamı kapsıyorsa, kapsam raporu %100 gösterse bile sistemi tükettiğiniz anlamına gelmiyor.

Super Mario Bros bunun ders kitabı örneği: milyonlarca oyuncu, kırk yıl, ayrıntılı disassembly, kare kare analiz. Ve durum uzayı hâlâ tüketilmemiş.

Karanlık bir haritada tek bir parlak, iyice aşınmış yol; yolun dışında geniş, keşfedilmemiş boş alan ve köşede küçük bir bayrak

Sonuç

Speedrunning'e mesafeli bakanlar için bu tür haberler genellikle "insanlar neden bununla uğraşıyor" kategorisine giriyor. Ama burada yapılan şey, bir sistemin belgelenmemiş davranışını bir yılı aşan kolektif bir çabayla ortaya çıkarmak — hem de emülatörün kendi hatalarını düzelterek.

Kırk yıllık, üzerinde bu kadar çalışılmış bir yazılımda hâlâ bulunacak bir şey varsa, geçen ay yayımlanmış herhangi bir yazılım için ne düşünmemiz gerektiği de ortada.

EtiketlerKalite

İlgili yazılar

Tüm yazılar