3 poin oleh GN⁺ 2024-05-09 | 1 komentar | Bagikan ke WhatsApp

Kode baru ditemukan di NES Tetris

  • Para peretas menemukan cara untuk memprogram ulang NES Tetris dari dalam game
  • Metode ini dapat membantu para pemburu skor tinggi yang ingin menghindari crash saat permainan berakhir

Cara menjalankan kode

  • Dengan memanfaatkan "kill screen" di NES Tetris, dimungkinkan untuk mengodekan perilaku baru ke versi Tetris yang berjalan di perangkat keras dan kartrid yang tidak dimodifikasi melalui metode kompleks untuk memanipulasi memori
  • Glitch "arbitrary code execution" serupa juga pernah ditemukan di game seperti Super Mario World, Paper Mario, dan The Legend of Zelda: Ocarina of Time
  • Metode dasar untuk memasukkan kode eksternal ke NES Tetris setidaknya telah dipublikasikan sebagai teori sejak 2021
  • Metode ini menjelaskan secara rinci cara membuat Tetris mulai membaca tabel skor tingginya sebagai instruksi kode mesin

Serunya menggunakan port controller

  • Crash di NES Tetris terjadi ketika pemroses skor game membutuhkan waktu terlalu lama untuk menghitung skor baru di antara frame
  • Ketika jeda ini terjadi, sebagian kode kontrol terputus oleh rutinitas penulisan frame baru lalu melompat ke bagian RAM yang tidak dimaksud untuk mencari instruksi berikutnya
  • Saat dijalankan di Famicom, konsol versi Jepang, pemain dapat memanipulasi lompatan ini berkat cara Tetris memproses input potensial

Mengoding di tabel skor tinggi

  • Untuk metode kontrol lompatan dari Displaced Gamers, pemain harus menahan "atas" pada controller ketiga, dan kanan, kiri, serta bawah pada controller keempat
  • Ini membuat kode lompatan dikirim ke area RAM yang menyimpan nama dan skor untuk daftar skor tinggi game, memberi pemain permukaan RAM yang lebih besar untuk dimanipulasi langsung
  • Menempatkan "(G" di bagian target tabel skor tinggi dapat memaksa game untuk melompat ke area lain dari tabel skor tinggi
  • Dari sana, nama dan skor mulai dibaca secara berurutan sebagai opcode untuk CPU NES
  • Namun, karena hanya ada 43 simbol yang tersedia di area input nama dan hanya 10 digit yang dapat menjadi bagian dari skor tinggi, hanya sebagian dari instruksi opcode NES yang tersedia yang dapat "dikodekan" di tabel skor tinggi
  • Karena tidak ada sistem penyimpanan cadangan baterai, peretas harus secara manual meraih skor tinggi ini dan memasukkan nama yang rumit setiap kali memulai Tetris

Opini GN⁺

  • Sangat mengejutkan bahwa versi NES dari Tetris memiliki fungsi tersembunyi seperti ini. Tampaknya hal ini tidak ditemukan pada masanya, dan menarik bahwa baru terungkap sekarang setelah beberapa dekade berlalu.
  • Menarik juga bahwa peretasan seperti ini dimungkinkan dengan memanfaatkan expansion port pada Famicom. Mungkin ini bukan fitur yang dimaksudkan Nintendo, tetapi ini menunjukkan keunggulan Famicom yang lebih kaya fitur dibanding NES.
  • Gagasan memanfaatkan bug seperti ini untuk justru menyisipkan kode yang mencegah crash juga sangat cerdik. Secara teori, ini memungkinkan permainan terus berjalan sehingga akan sangat membantu tantangan skor tinggi.
  • Namun, keharusan melakukan pengaturan yang rumit setiap kali game dimulai membuat metode ini tampak kurang praktis. Agar benar-benar berguna, sepertinya dibutuhkan cara yang lebih otomatis.
  • Bagaimanapun, metode ini tampaknya lebih menarik bagi kalangan penggemar berat pemburu skor tinggi atau orang yang tertarik pada pemrograman daripada pengguna umum. Sulit dibayangkan menjadi sesuatu yang dipakai secara luas.

1 komentar

 
GN⁺ 2024-05-09
Komentar Hacker News

Ringkasan:

  • Dalam novel Stross, 'Accelerando', ada kalimat yang menyebut tujuan akhir peretasan adalah "meretas struktur ruang-waktu untuk menemukan apa yang ada di bawahnya", dan itu mengingatkan pada eksploit ini.
  • Merasa malu karena tidak memiliki semangat hacker untuk melakukan sesuatu hanya demi bersenang-senang, tanpa tujuan praktis apa pun.
  • Kartrid NES berjalan dari ROM, tetapi eksploit ini membuat CPU melompat ke RAM yang digunakan untuk menyimpan tabel skor tertinggi.
  • Bertanya-tanya berapa lama lagi sampai seseorang berhasil menjalankan Doom di Tetris.
  • Ingin membuat komputer raksasa dari sabuk di dalam Factorio lalu memicu segment fault agar bisa keluar dari game.
  • Merasa waktunya terbuang dengan sangat baik.
  • Penemuan ACE di game lama sangat menarik. Beberapa tahun lalu melihat ini di Super Mario World dan terobsesi memikirkan bagaimana hal itu bisa terjadi.
  • Menyenangkan melihat orang-orang yang benar-benar cerdas mencurahkan banyak waktu dan usaha untuk sesuatu yang sama sekali tidak berguna.
  • Mungkin saat ini tidak ada alasan untuk menyuntikkan kode ke NES Tetris, tetapi itu bukan intinya. Intinya adalah mencari tahu apa yang mungkin dilakukan, dan apa yang bisa dipaksa dilakukan oleh kode lama serta komputer primitif.
  • Mengejutkan bahwa Tetris baru bisa dibobol setelah selama ini. Ini menandai era baru run any% yang bertujuan menjalankan ending/kredit secepat mungkin.
  • Ocarina of Time sudah memiliki eksploit ACE selama bertahun-tahun. Game itu sudah dirusak sedemikian rupa hingga bisa "diselesaikan" hanya dalam beberapa menit dengan memanipulasi memori game dan mengedit warp pintu masuk tertentu.
  • Yang paling menakjubkan adalah orang-orang mengedit memori dengan tangan hanya menggunakan beberapa tombol dan sebuah joystick analog.
  • Kemampuan menjalankan kode arbitrer selalu lebih menarik daripada apa yang dilakukan setelah itu.
  • Membongkar game untuk mengetahui kapan dan di mana semua ini dilakukan, lalu mencari tahu di mana bisa dimanipulasi untuk memasukkan instruksi berikutnya, adalah tingkat dedikasi yang patut dihormati.
  • Menghabiskan waktu pada NES/SNES di tahun 2024 terasa seperti bukti bahwa Nintendo memakai trik kontrol mental/psikologis yang tidak etis pada anak-anak.
  • Orang-orang ini memang berbakat, dan tampaknya tidak ada alasan rasional untuk memilih proyek ini.