Proyek reverse engineering game DOS F-15 Strike Eagle II merekrut pilot uji DOS
(neuviemeporte.github.io)- Proyek untuk merekonstruksi kode sumber C dengan mereverse engineer biner asli dari game 1989 F-15 Strike Eagle II kini memasuki tahap uji permainan nyata
- Kode dan data dari semua berkas eksekusi, termasuk
egamedanend, telah dipindahkan ke C, dan sebagian besar kode khusus assembly kini memiliki implementasi pengganti dalam C - Rilis terbaru
v0.9.1dapat diuji dengan mengganti berkas eksekusi asli pada game versi451.03dan ekspansi Desert Storm - Berkas eksekusi baru mengasumsikan MCGA/VGA, tanpa suara, dan tanpa joystick, tanpa melewati layar pengaturan, tetapi briefing misi, penerbangan, dan debriefing seharusnya berfungsi
- Karena tujuannya adalah rekonstruksi bug-for-bug yang mempertahankan bahkan bug yang sama seperti versi asli, perilaku yang juga ada di versi asli saat ini tidak termasuk sasaran laporan bug
Perkembangan proyek rekonstruksi C
- Rekonstruksi F-15 Strike Eagle II adalah proyek hobi untuk membuat ulang kode sumber C dari game tahun 1989 dengan mereverse engineer biner aslinya
- Sedikit lebih dari sebulan lalu, memindahkan berkas eksekusi kedua
egameke C tampak seperti akan memakan beberapa tahun lagi, dan berkas eksekusi ketigaendjuga masih tersisa - Saat ini, progresnya sudah mencapai tahap berikut
- Rekonstruksi kode C untuk semua berkas eksekusi selesai
- Semua data telah dipindahkan dari assembly ke C
- Implementasi pengganti C yang setara secara fungsional telah dibuat untuk sebagian besar kode yang khusus assembly
- Sebagian besar rutinitas dan struktur data telah diberi nama yang bermakna
- Sedang mempertimbangkan pemisahan repositori untuk proyek porting dalam waktu dekat
- Kesesuaian opcode hasil rekonstruksi dengan versi asli diverifikasi dengan alat, tetapi bug yang terkait dengan layout data belum tentu semuanya tertangkap
- Kini, bukan hanya perlu memeriksa kecocokan opcode, tetapi juga menjaga agar game benar-benar bisa dijalankan, sehingga pengujian eksternal menjadi diperlukan
Cara menguji dan masalah yang perlu dilaporkan
- Target pengujian adalah rilis terbaru v0.9.1
- Cukup letakkan berkas eksekusi baru di folder game yang berisi game asli versi
451.03dan ekspansi Desert Storm untuk menggantikan berkas eksekusi asli- Cadangan diperlukan sebelum mengganti
- Agar
f15.comasli tidak dijalankan alih-alihf15.exebaru, Anda mungkin perlu menghapusf15.comasli
- Berkas eksekusi baru tidak masuk ke layar pengaturan
- Mengasumsikan tampilan MCGA/VGA
- Tanpa suara
- Tanpa joystick
- Jika menemukan masalah saat pengujian, Anda dapat melaporkannya melalui GitHub Issues
- Crash
- Glitch grafis
- Input tombol tidak berfungsi
- Jika perlu, lampirkan tangkapan layar yang diambil dengan
Ctrl+F5di dosbox - Menjelaskan tindakan apa yang dilakukan sebelum masalah muncul akan membantu reproduksi dan perbaikan
- Proyek ini bertujuan pada rekonstruksi bug-for-bug, sehingga perilaku yang juga ada di game asli harus dipertahankan
- Di versi asli ada masalah seperti objek 3D yang menghilang, atau pesawat jatuh ke arah langit saat kehabisan bahan bakar dalam keadaan terbalik
- Sebaiknya periksa dulu apakah masalah yang sama juga terjadi di versi asli sebelum melapor
1 komentar
Komentar Hacker News
Ada versi DOS yang sudah bisa dimainkan
Tahap pertama adalah merekayasa balik seluruhnya ke assembler, dan tahap kedua adalah mengubah assembler itu menjadi kode C terkompilasi yang identik secara biner. Pekerjaan ini akan terus dilanjutkan di atas DOS sampai tidak ada lagi kode assembler yang tersisa, lalu setelah itu akan mulai porting ke Linux dan Windows
Reverse engineering mudah menarik bug baru, dan tidak mudah menemukan semua bug dalam kode hasil reverse engineering setua ini, tetapi sejauh ini tampaknya semuanya berfungsi
Jika Anda punya F-15 versi 451.03 dan Dosbox atau DOS asli, tolong cari bug yang masih terbuka
Rilis DOS terbaru bisa diunduh di sini: https://github.com/neuviemeporte/f15se2-re/releases
File
f15_se2-*.zipberisi executable pengganti untuk game DOSAir Force needs YOU!
Hanya saja ada satu keberatan kecil dan sangat pribadi yang akan membuat matra lain mengungkit betapa saya mencintai kursi
Air Force itu dua kata
Sepertinya tidak perlu terlalu membebani diri soal port Linux. Dukungan emulator sudah sangat bagus dan dipakai luas, jadi kalau berjalan di sana pun itu sudah bisa dianggap sukses
Saya memakai Lutris(https://lutris.net/) karena nyaman digunakan
Tapi Anda tampaknya tipe orang yang suka hal-hal level rendah, jadi ini sendiri mungkin merupakan sebuah quest, lebih dari sekadar memainkan game retro keren
Tapi saya khawatir apakah ini secara umum aman secara hukum. Penasaran bagaimana pendapat Anda soal itu
Pertanyaan pemula. Semoga tidak terdengar negatif
Bagus sekali meluangkan waktu agar game lama tetap bisa berjalan, tetapi saya penasaran kenapa perlu dekompilasi game yang masih bisa diemulasikan dengan DOSbox dan semacamnya. Untuk game setua ini, bukankah tetap bisa berjalan baik di perangkat keras berspesifikasi sangat rendah?
Kalau punya source code, Anda bisa menambahkan fitur penuh, mem-porting ke Windows 10, menerapkan 4K HDR, tekstur, model baru, bahkan misi baru. Batasannya nyaris hilang
Selain itu, sangat sulit menganalisis game hanya dari instruksi assembler dengan offset data yang di-hardcode. Kalau berupa kode C, Anda bisa langsung membaca perilakunya atau menyisipkan kode instrumentasi/debug untuk memahaminya
Saya ingin mendokumentasikan format file, mengais data untuk menemukan media tak terpakai, mengidentifikasi lalu memperbaiki bug parah, membuat alat modding, dan memahami teknik yang dipakai untuk membuat sesuatu yang membekas dari masa kecil saya
Saya juga ingin mengurangi friksi saat menjalankannya di sistem modern, sekaligus memungkinkan peningkatan opsional seperti resolusi lebih tinggi atau penggantian tekstur
Pada akhirnya saya tidak punya cukup kesabaran untuk menuntaskannya, tetapi sekarang saya merasa mungkin saja bisa
Game-game seperti ini juga sering dibuat agar bisa berjalan di berbagai perangkat keras grafis dan suara, sehingga secara praktis drivernya terkompilasi ke dalam game itu sendiri
[0] https://github.com/keirf/greaseweazle
Game yang sangat sering saya mainkan waktu kecil. Saya juga memainkan F-19 Stealth Fighter dan F-117A Nighthawk Stealth Fighter, dan baru hari ini saya tahu bahwa keduanya dirilis sebelum dan sesudah game ini. Saya juga sempat sedikit memainkan F-14 Tomcat
Kalau saya membacanya dengan benar, sepertinya ini tetap membutuhkan file game asli untuk dijalankan. Jadi kemungkinan saya akan lebih banyak membaca jurnal pengembangannya daripada menerbangkan pesawat ini lagi
Saya masih ingat membelinya di Electronics Boutique pada akhir 1980-an lalu memainkannya di Packard Bell 286 di rumah. Proteksi salinannya mengharuskan kita mencari dan mengidentifikasi pesawat dari manual, dan akibatnya saya malah hafal seluruh pesawat yang muncul di game
Saya juga membeli joystick Gravis Analog demi memainkan game ini, dan saya masih menyimpan overlay keyboard-nya
Saya benar-benar ingin melihat reboot modern untuk game ini
Saya dulu berlama-lama menelepon teman lewat telepon rumah untuk mencocokkan pengaturan modem, lalu menyuruhnya menelepon lagi, memulai game, terputus lagi, lalu menelepon lagi untuk mencari tahu kali ini apa masalahnya
Saat akhirnya berhasil, kami memainkannya tanpa henti sampai ibu teman saya melarang main modem karena jalur telepon satu-satunya dipakai berjam-jam
Saya ingin mencari multiplayer serupa di simulator terbang atau simulator ruang angkasa lain, dan mungkin menghidupkan game ini lagi untuk memancing teman saya bernostalgia
Zaman sekarang porting game jadi luar biasa mudah
https://robin.tooclever.org memakan waktu kurang dari sehari dalam hitungan waktu API
Saya penasaran apakah AI cocok untuk menyimpulkan struktur proyek hasil dekompilasi ketika tidak ada nama simbol
Ini bukan bidang saya, tetapi saya terkejut melihat AI cukup pandai memahami maksud struktur JavaScript tanpa source map
Dalam beberapa kasus, AI bahkan bisa langsung memahami alur kontrol yang sangat diobfusikasi tanpa alat bantu
Cerita ini sekarang sudah ada di YouTube: https://youtu.be/aIPKkOpIiF8
Saya punya teman yang pernah menerbangkan F15, jadi saya kirimkan ini kepadanya
Komunitas game lama seperti ini melakukan hal luar biasa untuk mengamankan empat kebebasan bagi judul yang mereka sukai, dan itu benar-benar menginspirasi
Saya belum pernah memainkan yang ini, tetapi pernah memainkan Jane's F/A-18, dan itu game yang hebat
Saya menghabiskan banyak waktu membuat peta Doppler saat terbang untuk dipakai dalam peluncuran SLAM
Itu simulator yang hebat bersama Tornado dari Digital Integrations, dan Tornado benar-benar perlu reboot