Rahasia Pendaratan di Kapal Induk pada Top Gun NES
(relaxing.run)- 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
1 komentar
Komentar Hacker News
Informasi untuk mendaratkan pesawat dengan benar semuanya ada di manual
Kecepatan dan ketinggian yang dibutuhkan bukan rahasia, hanya saja kebanyakan anak tidak membaca manual
Kesulitan sebenarnya dari game ini berasal dari mesin fisika yang setengah realistis. Kakak saya yang waktu itu sekolah penerbangan bisa mendarat dengan mudah lalu mengajarkan caranya kepada saya
Kecepatan dan ketinggian harus dikendalikan dengan throttle dan sudut pitch, jadi tidak bisa hanya menekan tombol mesin atau air brake begitu saja
Tips dari kakak saya adalah, saat menukik tajam kecepatan tidak akan berkurang, jadi angkat hidung pesawat sedikit lalu buka air brake untuk mengurangi kecepatan, setelah itu ratakan lagi. Game ini memodelkan hal itu dengan cukup akurat
Blog ini dibuat sulit dijelajahi arsipnya
Tidak ada tautan ke tulisan lain, dan selain postingan ini, aksesnya tertutup
blag/posts maupun blag menghasilkan error 403, dan halaman root hanya berisi satu foto gunung
Tidak ada feed RSS juga. Bukan keluhan, kalau memang itu desain yang disengaja ya saya hormati
Mendarat di kapal induk tidak terlalu sulit, tapi pengisian bahan bakar di udara benar-benar susah. Saya cuma berhasil beberapa kali
Video game
Jadi teringat kalimat legendaris “This business will get out of control…”
Game ini juga pernah dibahas di video Angry Video Game Nerd
Video terkait
Tautan YouTube
Saya tidak main Top Gun, tapi dulu sering main Turn and Burn: No Fly Zone di SNES
Sampai sekarang pun tetap mengejutkan melihat seberapa jauh grafik berkembang setiap kali ganti generasi
Transisi NES→SNES juga mirip skalanya. Dari PS1→PS2→PS3, karena era 3D sudah mapan, perubahan jadi makin bertahap
Banyak orang bilang pendaratan Top Gun itu sulit, tapi docking satelit di Captain Skyhawk jauh lebih susah
Harus docking di tengah ledakan efek demoscene dari RARE
Sebagai perbandingan, ada yang membagikan contoh kode penentuan pendaratan yang ditulis dalam Python
Berdasarkan ketinggian, kecepatan, dan arah, kode itu mengembalikan TOO_SLOW_OR_TOO_LOW, TOO_FAST_OR_TOO_HIGH, dan sebagainya
Saya suka sekali main-main simulator seperti ini
Di X‑Plane, bahkan memungkinkan mendaratkan 737 di kapal induk. Caranya: bawa bahan bakar hanya untuk 30 menit, turunkan flap semaksimal mungkin, lalu aktifkan rem parkir tepat sebelum menyentuh landasan
Tentu saja 737 secara spesifikasi resmi butuh landasan yang jauh lebih panjang, tetapi jika kapal induk melaju melawan arah angin, bisa didapat angin sakal lebih dari 40 knot
Waktu kecil saya main game ini, tapi tidak pernah sekalipun berhasil mendarat di kapal induk. Itu tugas kakak-kakak
Suatu hari di tempat penitipan sepulang sekolah, ada teman yang katanya jago mendarat di game ini, jadi kami menyusun operasi kolaboratif
Saya menangani pertarungannya, dia menangani pendaratannya, dan bersama-sama kami menamatkan Top Gun dan The Second Mission hanya dalam beberapa jam
Sampai sekarang itu tetap jadi kenangan indah sebagai salah satu dari sedikit game NES yang berhasil saya tamatkan bersama teman tanpa cheat atau Game Genie