1 poin oleh GN⁺ 4 jam lalu | 1 komentar | Bagikan ke WhatsApp
  • 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 egame dan end, telah dipindahkan ke C, dan sebagian besar kode khusus assembly kini memiliki implementasi pengganti dalam C
  • Rilis terbaru v0.9.1 dapat diuji dengan mengganti berkas eksekusi asli pada game versi 451.03 dan 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 egame ke C tampak seperti akan memakan beberapa tahun lagi, dan berkas eksekusi ketiga end juga 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.03 dan ekspansi Desert Storm untuk menggantikan berkas eksekusi asli
    • Cadangan diperlukan sebelum mengganti
    • Agar f15.com asli tidak dijalankan alih-alih f15.exe baru, Anda mungkin perlu menghapus f15.com asli
  • 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+F5 di 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

 
GN⁺ 4 jam lalu
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-*.zip berisi executable pengganti untuk game DOS
    Air Force needs YOU!

    • Saya veteran USAF. Saya tumbuh besar memainkan F-15 Strike Eagle II, dan sayangnya salinan saya sudah rusak sejak lama. Saya benar-benar senang melihat proyek ini
      Hanya saja ada satu keberatan kecil dan sangat pribadi yang akan membuat matra lain mengungkit betapa saya mencintai kursi
      Air Force itu dua kata
    • Bagus sekali
      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
    • Saya juga sedang merekayasa balik beberapa game sekarang. Akhir-akhir ini berkat AI jadi cukup mudah
      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?

    • Intinya bukan sekadar menjalankan game, melainkan membukanya agar bisa dimodifikasi. Menambal game dalam bentuk biner itu sangat sulit, dan pekerjaan yang lebih dari sekadar perbaikan bug sederhana hampir mustahil
      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
    • Saat saya mencoba reverse engineering game era DOS beberapa tahun lalu, alasannya ada banyak
      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
    • Banyak game berbasis floppy memiliki pola proteksi salinan disk yang memanfaatkan perilaku tak terdokumentasi dari disk drive pada masa itu. Karena itu, alat seperti Greaseweazle bahkan diperlukan untuk menyusun peta fluks magnetik penuh dari floppy yang diarsipkan
      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

    • F-19 adalah game hebat, dan salah satu judul Sid Meier favorit saya
      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
    • Apakah ini game yang bisa dimainkan kooperatif dengan teman dalam peran kursi depan/kursi belakang, atau itu yang III?
      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
    • Blog pengembangan ini termasuk yang terbaik di antara jurnal reverse engineering retro. Sangat menyenangkan untuk dibaca
    • Nama-nama seperti ini bukannya merek dagang terdaftar? Rasanya Lockheed bisa saja menjual haknya sebagai pemasukan tambahan
  • Zaman sekarang porting game jadi luar biasa mudah
    https://robin.tooclever.org memakan waktu kurang dari sehari dalam hitungan waktu API

    • Keren. Apakah ada indeks terpisah untuk game yang di-porting seperti ini atau port open source?
  • 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

    • AI itu nyaris manusia super dalam membaca dan memahami assembler. Mau hasil dekompilasi atau ada simbol, itu tidak terlalu dipedulikan, kalau tidak ada hanya jadi sedikit lebih lambat
      Dalam beberapa kasus, AI bahkan bisa langsung memahami alur kontrol yang sangat diobfusikasi tanpa alat bantu
    • Ya, sangat membantu
  • Cerita ini sekarang sudah ada di YouTube: https://youtu.be/aIPKkOpIiF8

    • Videonya keren, tapi narasi AI-nya mengganggu
  • 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

    • Dan ada juga Jane's USAF!
  • 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