- Analisis reverse engineering terhadap sistem pendaratan kapal induk di Top Gun untuk NES mengungkap syarat penilaian pendaratan yang akurat
- Agar pendaratan berhasil, dibutuhkan ketinggian 100~299, kecepatan 238~337, dan membidik lurus ke arah depan kapal induk
- Tampilan “Alt. 200 / Speed 288” pada MFD di dalam game sebenarnya menunjukkan nilai tengah dari rentang yang diizinkan
- Kecepatan dan ketinggian disimpan di memori dalam bentuk BCD (binary-coded decimal), dan fungsi penilaian dijalankan pada alamat tertentu
- Ini merupakan contoh penguraian logika internal yang presisi pada game lama, berguna untuk pembelajaran analisis dan debugging game retro
Syarat Dasar Penilaian Pendaratan
- Agar pendaratan berhasil, dibutuhkan ketinggian 100~299, kecepatan 238~337, dan arah yang tepat menuju kapal induk
- Ketiga syarat ini semuanya diperiksa saat urutan pendaratan berakhir
- Tampilan “Alt. 200 / Speed 288” pada layar game adalah nilai tengah dari rentang yang benar-benar diizinkan, sehingga cocok dijadikan target oleh pemain
- Ketinggian dan kecepatan disesuaikan melalui input throttle dan sudut pitch, sedangkan arah tidak memiliki indikator terpisah dan hanya diberi umpan balik lewat peringatan “Right! Right!”
Struktur Memori dan Variabel Internal
- Alamat memori utama dan isi yang disimpan
- $40–$41: kecepatan (format BSD), rentang yang diizinkan 238–337
- $3D–$3E: ketinggian (format BSD), rentang yang diizinkan 100–299
- $FD: arah (Heading), dalam rentang -32 ~ +32, dan nilai 0–7 memungkinkan pendaratan
- $9E: menyimpan hasil penilaian pendaratan, nilai 0 berarti berhasil
- Kecepatan dan ketinggian disimpan sebagai BCD (Binary Coded Decimal) untuk menyederhanakan tampilan di layar
- Contoh: 1234 disimpan dalam bentuk 0x1234 (desimal 4660)
Rutin Penilaian Pendaratan
- Fungsi pada alamat $B6EA memeriksa status pendaratan dan mencatat hasilnya ke $9E
- Rutin ini membandingkan ketinggian, kecepatan, dan arah secara berurutan; jika keluar dari syarat, ia mengembalikan nilai kode yang berbeda
- Contoh: jika terlalu tinggi atau terlalu cepat maka kode 8, jika terlalu rendah atau terlalu lambat maka kode 4
- Jika semua syarat terpenuhi, nilainya disetel ke LDX #00 dan diproses sebagai berhasil
Debugging dan Kode Cheat
- Dengan kode Game Genie AEPETA, pendaratan selalu dinilai berhasil
- Kode ini melewati rutin penilaian yang sebenarnya dan memaksa hasil dicatat sebagai status sukses
Kesimpulan
- Sistem pendaratan di NES Top Gun bukan sekadar kontrol sederhana, melainkan tersusun dari logika penilaian berbasis angka yang akurat
- Melalui reverse engineering, kita dapat memastikan dengan jelas struktur memori internal dan cara percabangan kondisi pada game retro
- Sebagai contoh yang menunjukkan presisi desain game klasik, temuan ini sangat bernilai sebagai referensi untuk analisis logika game dan penelitian restorasi
Belum ada komentar.