Layar yang tak bisa ditamatkan: bug level 256 Pac-Man dan sebuah byte yang kehabisan angka
Di level 256, layar Pac-Man pecah jadi dua: separuh kiri normal, separuh kanan kekacauan huruf dan angka acak. Ini bukan kerusakan mesin, melainkan sebuah bug matematis yang menjadikannya level yang mustahil ditamatkan.
Saya pertama kali mendengar tentang “kill screen” Pac-Man dari cerita mulut ke mulut di antara sesama penggemar arcade, jauh sebelum saya benar-benar melihat gambarnya. Katanya, kalau ada orang yang cukup hebat untuk terus bermain sampai level yang sangat jauh, layarnya akan tiba-tiba pecah menjadi setengah normal dan setengah kekacauan total, dan permainan tidak bisa dilanjutkan sama sekali. Waktu itu saya kira ini legenda arcade belaka, sejenis mitos yang dibumbui. Ternyata ia nyata, dan yang lebih menakjubkan, penyebabnya bukanlah mesin yang rusak, melainkan sebuah keterbatasan matematis yang sangat spesifik di dalam kode game itu sendiri. Kisah level 256 Pac-Man adalah salah satu contoh paling terkenal tentang bagaimana sebuah batas angka yang tersembunyi bisa menghentikan sebuah dunia digital.
Sebuah byte yang kehabisan ruang
Pac-Man dibuat oleh Namco dan dirilis pada 1980, dirancang oleh tim yang dipimpin Toru Iwatani. Seperti semua game pada masa itu, ia berjalan pada perangkat keras yang sangat terbatas, dan setiap potong informasi harus disimpan dengan hemat. Nomor level tempat pemain berada disimpan dalam sebuah byte, yaitu satu unit data yang hanya mampu menampung angka dari nol sampai dua ratus lima puluh lima. Itu adalah batas keras: sebuah byte tunggal tidak bisa mewakili angka lebih dari dua ratus lima puluh lima.
Selama pemain bermain di dalam rentang itu, semuanya baik-baik saja. Masalah muncul tepat ketika permainan mencapai level yang bila dihitung menyentuh angka dua ratus lima puluh enam, satu angka melampaui kapasitas byte. Ketika nilai itu melampaui batas, ia tidak berhenti dengan rapi, melainkan “membungkus” kembali, sebuah peristiwa yang dalam pemrograman disebut luapan atau overflow. Angka yang seharusnya dua ratus lima puluh enam berperilaku kacau karena tidak muat, dan kekacauan itulah yang memicu bug di layar.
Kenapa hanya separuh layar yang rusak
Bagian yang paling khas dari kill screen ini adalah bentuknya: separuh kiri layar tetap tampil normal, sementara separuh kanan berubah menjadi tumpukan tile acak, huruf, dan angka yang tak berarti. Penyebabnya berkaitan dengan cara game menggambar buah-buahan kecil di bagian bawah layar sebagai penanda level.
Rutin penggambar buah ini memakai nomor level untuk menentukan berapa banyak buah yang digambar. Karena luapan tadi, di level yang bermasalah rutin ini seolah diperintahkan menggambar dua ratus lima puluh enam buah, jauh melampaui jumlah yang wajar. Setelah menggambar sejumlah buah pertama dengan benar, program kehabisan data buah yang sah dan mulai membaca potongan memori lain yang berisi data permainan acak, lalu menampilkannya sebagai tile di layar. Data acak yang ditafsirkan sebagai gambar inilah yang memenuhi separuh kanan layar dengan kekacauan, menimpa area yang seharusnya menampilkan labirin. Separuh kiri lolos karena sudah tergambar sebelum kekacauan itu dimulai.
Level yang mustahil ditamatkan
Akibat kerusakan tampilan ini, separuh kanan labirin menjadi kacau sehingga titik-titik yang harus dimakan tidak lengkap dan tidak bisa dijangkau semua. Karena pemain tidak mungkin menghabiskan semua titik yang diperlukan untuk maju, level 256 menjadi mustahil diselesaikan. Inilah sebabnya ia disebut kill screen, layar yang mematikan, karena secara efektif ia adalah ujung dari permainan. Tidak ada level dua ratus lima puluh tujuh; permainan berhenti di dinding yang tak bisa dilewati ini.
Puncak yang bernama permainan sempurna
Justru keberadaan batas ini melahirkan sebuah tantangan legendaris di kalangan pemain ahli, yaitu apa yang disebut permainan sempurna atau perfect game. Untuk mencapainya, seorang pemain harus melewati seluruh level dari awal hingga level 256 tanpa pernah kehilangan satu nyawa pun, sambil memakan setiap titik, setiap energizer, setiap buah, dan setiap hantu biru yang mungkin dimakan di sepanjang jalan. Skor maksimum mutlak yang bisa dicapai dengan cara ini adalah tiga juta tiga ratus tiga puluh tiga ribu tiga ratus enam puluh poin, sebuah angka yang menjadi semacam gunung tertinggi bagi para pemain Pac-Man.
Permainan sempurna pertama yang diklaim tercatat pada akhir 1990-an, meski identitas dan keabsahan sebagian klaim rekor Pac-Man di kemudian hari menjadi bahan perdebatan yang sampai kini belum sepenuhnya reda. Karena itu, saya memilih menahan diri dari menyebutnya sebagai kepastian dan cukup mencatat bahwa angka skor maksimum itu nyata dan bahwa mencapai level 256 adalah batas alami permainan. Bagian yang tidak diperdebatkan justru yang paling saya sukai: bahwa gunung tertinggi dalam Pac-Man ditentukan bukan oleh keterampilan manusia yang tak terbatas, melainkan oleh sebuah byte yang, pada angka dua ratus lima puluh enam, sederhana saja kehabisan ruang untuk menghitung. Setiap kali saya membayangkan layar yang pecah dua itu, saya teringat bahwa di balik keceriaan labirin kuning ini bersembunyi sebuah batas matematis yang keras, menunggu sabar di ujung yang hampir tak seorang pun mencapainya.
Sumber
1UP Ditulis oleh Reza Mahendra. Reza Mahendra tumbuh di depan kabinet ding dong dan tidak pernah benar-benar beranjak. Ia menulis tentang gim arcade sebagai budaya dan rancangan, memadukan ingatan lapangan dengan sumber yang bisa ditelusuri.