Bir Hacker, ‘Super Mario Bros ‘ kaynak kodunu ayıklamak için Python’u nasıl kullandı?

1 dakika okuma süresi


4045
1.3k paylaşım, 4045 puan

Hacker Matthew Earl, Nintendo’nun kodundaki ham görsel verileri çıkarmak için Python’u kullandı.

Programcı Matthew Earl, yaklaşan bir proje için orijinal Super Mario Bros.’den seviye verilerine ihtiyaç duydu, bu yüzden bu verileri zor yoldan almaya karar verdi. Earl, her farklı seviye için arka plan görüntüsünü istedi—hareketli spritler ve yaşam toplamı ve madeni paralar gibi HUD unsurları hariç her şey…

Bu verileri elde etmenin birçok kolay ve eski yolu var ve insanlar yıllardır Super Mario Bros spriteler ile uğraşıyor.

İlk olarak Hackaday tarafından görüldüğü gibi, Earl uzun yoldan gitti. İşlenen varlıkları oyundan çıkarmak yerine Earl, kaynak kodun içine girdi ve Python’da ham varlıkları oyundan ayıklamak ve kendisini oluşturmak için bir emülatör kullandı.

Nintendo, NES veya oyunlarından herhangi biri için resmi kaynak kodunu asla serbest bırakmadı, ancak çalışkan hackerlar kodu ters çevirerek ve kendi başlarına bir araya getirerek tasarladılar.

Earl, bu kodu, Nes makinesinin montaj kodunu taklit eden py65emu adlı bir Python kitaplığı aracılığıyla çalıştırdı. Oradan, hafızadan resim işleme ünitesine giderken görsel verileri kesen ve Python kullanarak işleyen bir program oluşturdu. Earl,” ve bununla birlikte, SMB’DEN tamamen Python’da seviye görüntüleri çıkarmayı başardık ” diye yazdı.

Yoğun bir süreç gibi görünüyor, ancak Earl’ün github POST’u yıkıyor ve çalışmaları bize tüm zamanların en popüler video oyunlarından birinin iç işleyişine nadir bir pencere sunuyor.

 


Sevdin mi? Ee arkadaşlarınla paylaşsana :)

4045
1.3k paylaşım, 4045 puan

Tepkiniz Nedir?

Puahah Puahah
23
Puahah
Havalı he Havalı he
233
Havalı he
Çoh İyi Çoh İyi
210
Çoh İyi
SSARDI SSARDI
186
SSARDI
Hayırlısı Bilader Hayırlısı Bilader
163
Hayırlısı Bilader
Yok Artık! Yok Artık!
116
Yok Artık!
Melih Çelik

Sakarya University CS ~ CE Full Stack Web Developer bla bla...

0 Comments

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bir İçerik Türü Seçin
Kişisel Test
Kişilik hakkında bir şeyler çıkartmak için sorular hazırla
Önemsiz Bilgi Yarışması
Bilgiyi kontrol etmeyi amaçlayan doğru ve yanlış cevapları olan bir dizi soru hazırla
Oylamaca
Karar vermek veya seçenekleri belirlemek için oylat
Hikâye
Görsel ve metinlerin gücünü kullanın ve hikayenizi paylaşın
Liste
Klasik internet listeleri
Geri Sayım
Klasik internet geri sayımları
Açık Liste
Kendi ögeni gönder ve en iyi gönderim için oy ver
Sıralanmış Liste
Yukarı veya aşağı oy ver listenin en iyi maddesini seç
Mim
Resim yükleyin ve kendi mimlerinizi oluşturun
Video
YouTube veya Vimeo videoları paylaşın
Audio
Soundcloud or Mixcloud Embeds
Image
Photo or GIF
Gif
GIF format