DOS oyunu F-15 Strike Eagle II tersine mühendislik projesi için DOS test pilotları aranıyor
(neuviemeporte.github.io)- 1989 yapımı F-15 Strike Eagle II oyununun özgün ikili dosyaları tersine mühendislikle incelenerek C kaynak kodunun yeniden oluşturulduğu proje, gerçek oynanış testi aşamasına geçti
egame,enddahil tüm çalıştırılabilir dosyaların kodu ve verileri C'ye taşındı; yalnızca assembly'e özgü kodların çoğu için C karşılıkları hazırlandı- En son sürüm
v0.9.1, özgün oyunun451.03sürümünde ve Desert Storm genişleme paketinde özgün çalıştırılabilir dosyaların yerine geçerek test edilebiliyor - Yeni çalıştırılabilir dosyalar yapılandırma ekranını atlayıp MCGA/VGA, sessiz, joystick'siz bir durumu varsayıyor; ancak görev brifingi, uçuş ve debriefing çalışmalı
- Hedef, özgün sürümdeki hataları bile koruyan bug-for-bug yeniden oluşturma olduğu için, özgün oyunda da bulunan davranışlar şu an hata raporu kapsamına girmiyor
C yeniden oluşturma projesinde son durum
- F-15 Strike Eagle II yeniden oluşturması, özgün ikili dosyaları tersine mühendislikle inceleyip 1989 yapımı oyunun C kaynak kodunu yeniden üretmeye yönelik bir hobi projesi
- Bir aydan biraz daha uzun süre önce ikinci çalıştırılabilir dosya
egamei C'ye taşımak için daha birkaç yıl gerekecek gibi görünüyordu ve üçüncü çalıştırılabilir dosyaendde hâlâ duruyordu - Şu anda şu aşamaya gelindi
- Tüm çalıştırılabilir dosyalar için C kodu yeniden oluşturma tamamlandı
- Tüm veriler assembly'den C'ye taşındı
- Yalnızca assembly'e özgü kodların çoğu için işlevsel olarak eşdeğer C karşılıkları yazıldı
- Rutinlerin ve veri yapılarının çoğuna anlamlı adlar verildi
- Yakın zamanda portlama projesi için depo dallandırması değerlendirilecek
- Yeniden oluşturulan opcode'ların özgün sürüme sadık olup olmadığı araçlarla doğrulanıyor, ancak veri yerleşimi ile ilgili hataların tamamı bu şekilde yakalanamıyor
- Artık opcode eşleşmesini doğrulamanın ötesine geçilip gerçekten çalışan bir oyunun korunması gerektiğinden dış test ihtiyacı doğdu
Test yöntemi ve bildirilecek sorunlar
- Test edilecek sürüm en güncel yayın olan v0.9.1
- Yeni çalıştırılabilir dosyaları, özgün oyunun
451.03sürümü ve Desert Storm genişleme paketi bulunan oyun klasörüne koyup özgün çalıştırılabilir dosyaların yerine geçirmek yeterli- Değiştirmeden önce yedek almak gerekiyor
- Yeni
f15.exeyerine özgünf15.comçalışmasın diye özgünf15.comdosyasını silmek gerekebilir
- Yeni çalıştırılabilir dosyalar yapılandırma ekranına girmez
- MCGA/VGA ekran varsayılır
- Ses yok
- Joystick yok
- Test sırasında sorun yaşanırsa GitHub Issues üzerinden bildirim yapılabilir
- Çökme
- Grafik bozulmaları
- Tuş girişinin çalışmaması
- Gerekirse dosbox'ta
Ctrl+F5ile alınmış ekran görüntüsü ekleme - Sorun çıkmadan önce hangi eylemlerin yapıldığını yazmak yeniden üretim ve düzeltme açısından yardımcı olur
- Bu proje bug-for-bug yeniden oluşturmayı hedeflediği için özgün oyunda da bulunan davranışlar korunmalı
- Özgün oyunda 3D nesnelerin kaybolması, ters dönmüş durumdayken yakıt bittiğinde uçağın gökyüzüne doğru düşmesi gibi sorunlar var
- Bildirmeden önce aynı sorunun özgün oyunda da ortaya çıkıp çıkmadığını kontrol etmek iyi olur
1 yorum
Hacker News yorumları
Oynanabilir bir DOS sürümü var
İlk aşama her şeyi assembly olarak tersine mühendislikle çözmekti; ikinci aşama ise assembly’yi derlenmiş C koduyla ikili düzeyde aynı olacak şekilde değiştirmekti. Bu çalışma, assembly kodu kalmayana kadar DOS üzerinde sürecek, ardından Linux ve Windows portlarına başlanacak
Tersine mühendislik yeni hataları davet etmeye çok yatkın ve bu kadar eski tersine mühendislik kodunda tüm hataları bulmak kolay değil, ama şu ana kadar her şey çalışıyor gibi görünüyor
Elinizde F-15 451.03 sürümü ve Dosbox ya da gerçek DOS varsa, açık hataları bulmaya çalışın
En güncel DOS sürümü buradan alınabilir: https://github.com/neuviemeporte/f15se2-re/releases
f15_se2-*.zipdosyaları DOS oyunu için alternatif çalıştırılabilir dosyayı içeriyorAir Force needs YOU!
Ama diğer kuvvetlerin benim sandalyeyi ne kadar sevdiğimi dillendirmesine yol açacak çok küçük ve kişisel bir takılacak nokta var
Air Force iki kelimedir
Linux portu konusunda kendinize fazla yüklenmenize gerek yok gibi. Emülatör desteği çok iyi ve yaygın kullanılıyor; orada çalışıyorsa bunu fazlasıyla başarı sayabilirsiniz
Ben kullanım kolaylığı için Lutris(https://lutris.net/) kullanıyorum
Ama düşük seviye işleri seven biri gibi görünüyorsunuz; bu da harika retro oyunları oynamaktan ziyade başlı başına bir görev olabilir
Yalnız bunun genel olarak hukuken ne kadar sorun çıkarmayacağını merak ediyorum. Bu konuda düşüncelerinizi duymak isterim
Acemi bir soru. Olumsuz algılanmasını istemem
Eski oyunları çalışır halde tutmak için zaman harcamak harika ama DOSbox gibi şeylerle emüle edilebilen oyunları neden decompile ettiğinizi merak ediyorum. Bu kadar eski oyunlar zaten çok düşük özellikli donanımlarda gayet iyi çalışmıyor mu?
Kaynak kodunuz olduğunda tüm özellikler ekleyebilir, Windows 10’a port edebilir, 4K HDR, texture’lar, yeni modeller, yeni görevler yapabilirsiniz. Sınırlar fiilen ortadan kalkar
Ayrıca sabit kodlanmış veri ofsetleri içeren assembly talimatlarına bakarak bir oyunu analiz etmek gerçekten çok zordur. C kodunda ise davranışı doğrudan okuyabilir ya da anlamak için enstrümantasyon ve debug kodu ekleyebilirsiniz
Dosya biçimlerini belgelemek, verileri inceleyip kullanılmamış medyayı bulmak, ciddi hataları tespit edip düzeltmek, modlama araçları yapmak ve çocukluğumdan aklımda kalan bir şeyin hangi tekniklerle yapıldığını anlamak istiyordum
Modern sistemlerde çalıştırma sürtünmesini azaltmak, ayrıca daha yüksek çözünürlük veya texture değiştirme gibi isteğe bağlı iyileştirmeleri de mümkün kılmak istiyordum
Sonunda bitirecek kadar sabrım olmadı ama bugün denesem belki başarabilirdim diye düşünüyorum
Ayrıca bu oyunlar çoğu zaman çok çeşitli grafik ve ses donanımlarında çalışacak şekilde yapıldığından, sürücüler fiilen oyunun içine derlenmiş durumda oluyor
[0] https://github.com/keirf/greaseweazle
Çocukken çok oynadığım bir oyun. F-19 Stealth Fighter ve F-117A Nighthawk Stealth Fighter da oynardım; bu ikisinin bu oyunun hemen öncesi ve sonrasında çıktığını bugün ilk kez öğrendim. F-14 Tomcat’i de biraz oynamıştım
Doğru anladıysam bunu çalıştırmak için orijinal oyun dosyaları gerekiyor. Bu yüzden bu uçağı yeniden kullanmaktan çok geliştirme günlüğünü okuyacağım gibi duruyor
1980’lerin sonunda Electronics Boutique’ten alıp evdeki Packard Bell 286’da oynadığımı hatırlıyorum. Kopya koruması, kılavuzdan uçağı bulup tanımlamanızı istiyordu; bunun sonucu olarak oyundaki bütün uçakları ezberlemiştim
Oyun için bir Gravis Analog joystick de almıştım, klavye overlay’i hâlâ duruyor
Bu oyunun modern bir reboot’unu gerçekten görmek isterim
Modem ayarlarını tutturmak için arkadaşımla sabit telefondan uzun uzun konuşur, sonra tekrar aramasını ister, oyunu başlatır, bağlantı yine kopar, bu kez ne olduğunu anlamak için tekrar konuşurduk
En sonunda çalıştığında o kadar durmaksızın oynadık ki arkadaşımın annesi saatlerce tek telefon hattını meşgul ettiğimiz için modemle oynamayı yasakladı
Diğer uçuş simülatörlerinde ya da uzay simülatörlerinde de benzer çok oyunculu deneyimler bulmak ve bu oyunu da yeniden çalıştırıp arkadaşıma nostalji tuzağı kurmak isterim
Bugünlerde oyun portlamak inanılmaz derecede kolaylaştı
https://robin.tooclever.org için API zamanı bazında bir günden az sürdü
Sembol isimleri olmadan decompile edilmiş bir projenin yapısını çıkarsamada AI’ın ne kadar uygun olduğunu merak ediyorum
Benim alanım değil ama source map olmayan JavaScript yapılarının amacını AI’ın oldukça iyi kavradığını görünce şaşırdım
Bazı durumlarda, araç kullanmadan bile ağır biçimde obfuscate edilmiş control flow’u doğrudan anlayabiliyor
Bu konu şimdi YouTube’a da çıktı: https://youtu.be/aIPKkOpIiF8
F15 kullanmış bir arkadaşım var, bunu ona gönderdim
Bu tür eski oyun toplulukları, sevdikleri oyunlarda dört özgürlüğü güvence altına almak için inanılmaz işler başarıyor ve gerçekten ilham veriyor
Bunu hiç oynamadım ama Jane's F/A-18’i oynadım, harika bir oyundu
Uçuş sırasında Doppler haritası oluşturup bunu SLAM fırlatmalarında kullanmak için çok zaman harcadım
Digital Integrations’ın Tornado’su ile birlikte harika bir simülatördü ve Tornado gerçekten bir reboot’u hak ediyor