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

Kesalahan disk master Space Quest II

  • 22 Mei 2024
  • Tampilan luar disk ini tidak menunjukkan sesuatu yang istimewa, tetapi data yang tersimpan di dalamnya berisi sesuatu yang hampir pasti tidak diketahui oleh Sierra On-Line dan tidak ingin mereka sertakan.
  • Jika Anda memiliki floppy disk 720KB dalam koleksi game petualangan Sierra, Anda tidak sendirian.
  • Versi 2.0D dan 2.0F dari Space Quest II ternyata tidak langka.

Hanya daftar direktori biasa

  • Jika melihat daftar file pada disk, tidak ada yang tampak istimewa.
  • Daftar versi 2.0D tidak berbeda dari disk game Sierra lainnya.
  • Stempel waktu menunjukkan bahwa file data utama game (PICDIR, LOGDIR, VIEWDIR, SNDDIR, VOL.0, VOL.1) dibuat pada 14 Maret 1988.
  • File .OVL dibuat pada 15 Maret 1988, dan kode interpreter AGI dibuat pada 18 Maret 1988.
  • Hal yang tidak biasa dalam daftar direktori adalah ruang "tidak terpakai" pada disk lebih besar daripada ruang yang terpakai. Tercatat 302.918 byte digunakan dan 402.432 byte ditandai sebagai tidak digunakan.

Menggunakan editor heksadesimal

  • Untuk melihat lebih detail apa yang ada di dalam disk, diperlukan alat bernama editor heksadesimal.
  • Pada 1980-an, Norton Utilities sering digunakan, dan saat ini HxD Hex Editor buatan Maël Hörz adalah alternatif yang sangat baik.
  • Pada floppy disk DOS yang baru diformat, sektor yang tidak digunakan seharusnya terisi dengan nilai byte 0xF6.
  • Disk 2 dari Space Quest II versi 2.0D sesuai dengan kondisi ini, tetapi disk 1 tidak memiliki sektor yang diisi byte 0xF6.
  • Sektor yang tidak digunakan pada disk 1 justru terisi sesuatu yang tampak seperti kode sumber C.
  • Ini sangat mengindikasikan bahwa disk master sebelumnya digunakan untuk tujuan lain, lalu file-file dihapus tanpa diformat ulang dengan benar.

Kode sumber interpreter AGI

  • Jika melihat data di editor heksadesimal, isinya tampak seperti teks.
  • Ketika teks ASCII itu disalin ke editor teks, hasilnya terlihat seperti kode sumber C.
  • Ada dua fungsi yang didefinisikan, satu bernama DisplayStatusLine, dan satu lagi StatusLineOn.
  • Fungsi DisplayStatusLine tampaknya menampilkan baris teks yang menunjukkan skor saat ini dan status suara.
  • Kode sumber ini merupakan bagian dari interpreter AGI.
  • Jika menggulir lebih jauh ke sektor tak terpakai lain di editor heksadesimal, ada sangat banyak kode sumber.
  • Kode sumber ini disimpan dalam sektor-sektor berurutan, sehingga mudah diekstrak.
  • Totalnya terbagi menjadi 93 file: 75 file kode sumber C, 16 file kode sumber bahasa assembly, dan 2 file DOS BAT.
  • Totalnya lebih dari 15.000 baris kode, dan sebagian besar file lengkap.
  • Disk game Space Quest 2 ini memuat sekitar 70% dari kode sumber interpreter AGI milik Sierra On-Line.

Riwayat perubahan file sumber

  • Beberapa file sumber memiliki riwayat perubahan dalam komentar header.
  • Sebagai contoh, komentar header file sumber ANIMATE.C memuat nama file, penjelasan fungsi, nama compiler (MWC), dan riwayat perubahan.
  • Para programmer mengidentifikasi diri mereka menggunakan inisial.
  • JAS adalah Jeff Stephenson, programmer utama yang mengerjakan kode interpreter AGI, sedangkan DCI adalah Chris Iden.
  • Robert Heitman juga disebutkan, tetapi fokusnya terutama pada alat grafis.

Peta memori AGI.EXE

  • Disk 1 SQ2 2.0D 720KB juga berisi peta memori dari berkas eksekusi AGI.EXE.
  • Peta memori itu menyediakan daftar modul dan file sumber yang membentuk interpreter AGI.
  • Total 98 file sumber disebutkan, dan 71 di antaranya disertakan secara lengkap di disk SQ2.
  • Ini berarti sekitar 70% kode sumber interpreter AGI termuat di disk SQ2.

Kekayaan intelektual Sierra

  • Pada 1984, Sierra On-Line sedang berjuang keras untuk mempertahankan bisnisnya.
  • Keberhasilan King’s Quest berperan besar dalam mengubah nasib mereka.
  • Sistem game petualangan AGI dan game-game yang dibuat dengannya merupakan sumber pendapatan utama Sierra On-Line.
  • Kode sumber interpreter AGI adalah kekayaan intelektual inti Sierra.
  • Fakta bahwa 70% kode sumber itu tersalin massal dan dikirim ke pelanggan adalah kesalahan besar.

Bagaimana ini bisa terjadi?

  • Saat versi game baru siap, dibuat disk master "salinan produksi" untuk digunakan pada mesin duplikasi disk FormMaster.
  • Mesin ini menyalin setiap byte pada disk.
  • Disk 1 dari Space Quest II versi 2.0D dan 2.0F digunakan tanpa diformat.
  • Akibatnya, ratusan ribu disk SQ2 ikut memuat 70% dari kode sumber interpreter AGI.

Nyaris lolos dari krisis

  • Hampir pasti ini adalah kesalahan yang tidak disengaja.
  • Sierra, pesaing, dan pelanggan semuanya tidak menyadari fakta ini.
  • Hal ini pertama kali ditemukan pada Oktober 2016 oleh pengguna online NewRisingSun.
  • Karena ini terjadi di akhir era AGI, dampaknya tidak menjadi masalah besar.
  • Ini adalah kisah arkeologi digital yang menarik, dan memungkinkan kita melihat bagaimana Sierra On-Line menulis interpreter AGI.

Bagi yang tertarik, kode sumber interpreter AGI yang diekstrak telah diunggah ke repositori GitHub: https://github.com/lanceewing/agi

AGILE, interpreter AGI berbasis web, patut dilihat. Implementasi ini dipandu oleh kode sumber AGI asli.


Opini GN⁺

  • Nilai arkeologi digital: Artikel ini menunjukkan pentingnya arkeologi digital. Perangkat lunak dan data lama memiliki nilai historis dan teknis.
  • Pelajaran dari kesalahan keamanan: Peristiwa ini menekankan pentingnya keamanan dan pengelolaan data. Saat menangani data sensitif, verifikasi menyeluruh dan pemformatan yang benar selalu diperlukan.
  • Bukti kemajuan teknologi: Kode sumber interpreter AGI menunjukkan kemajuan teknis pengembangan game pada 1980-an. Ini dapat menjadi inspirasi bagi pengembang modern.
  • Kekuatan open source: Dengan dibukanya kode sumber asli, pengembang modern mendapat kesempatan untuk mempelajarinya dan memanfaatkannya dalam proyek baru.
  • Risiko bagi pesaing: Jika kode sumber ini ditemukan oleh pesaing pada masa itu, keunggulan kompetitif Sierra On-Line bisa sangat terganggu. Ini mengingatkan pentingnya melindungi kekayaan intelektual perusahaan.

1 komentar

 
GN⁺ 2024-05-24
Komentar Hacker News

Ringkasan kumpulan komentar Hacker News

  • Double Dragon II: The Revenge for DOS (1989)

    • Game ini didistribusikan dalam dua floppy disk, dan salah satu disk berisi seluruh source code dalam file arsip yang sudah dihapus. Tidak terlihat dengan perintah DIR, tetapi mudah dipulihkan.
  • Reverse engineering ROM synthesizer

    • Saat baru-baru ini melakukan reverse engineering pada ROM synthesizer, ditemukan sebagian tabel simbol firmware dan blok kode sistem pengembangan di ROM Yamaha DX9. Penemuan seperti ini memberi pemahaman yang mendalam tentang alat pengembangan di masa lalu.
  • Kenangan game masa kecil

    • Game ini adalah bagian penting dari masa kecil, dan dalam kehidupan sekarang sulit merasakan jenis "koneksi" yang sama. Space Quest 2, 3, 4 terasa seperti bagian dari DNA.
  • Rahasia engine AGI

    • Diperkirakan tidak ada rahasia khusus di engine AGI yang cukup berharga bagi pesaing untuk memanfaatkan kebocoran. Game Sierra sukses karena banyak upaya dicurahkan pada grafik dan penulisan cerita.
  • Memory map dan source code

    • Dengan memory map, sebagian source code, dan alat reverse engineering, kemungkinan seluruhnya bisa direkonstruksi.
  • HxD Hex Editor

    • Salah satu alat modern yang bagus adalah HxD Hex Editor buatan Maël Hörz. Pengguna macOS juga layak mencoba Hex Fiend.
  • ROM Air Fortress

    • Versi Famicom dari Air Fortress tanpa sengaja menyertakan banyak data. Kartrid Jepang berukuran 128+128KB, sedangkan versi NES Amerika diperkecil menjadi 128+32KB.
  • Artefak rilis manual

    • Di masa lalu, artefak yang dirilis secara manual sering kali masih memuat data yang tertinggal. Berkat CICD modern dan sistem build otomatis, hal seperti ini semakin jarang terjadi.
  • Penemuan source code

    • Tidak ada yang menyadari bahwa source code ikut tersimpan di disk. Ini mengingatkan pada penemuan baru-baru ini terkait Tetris dan Super Mario Bros. Berkat internet dan emulator, game lama mendapatkan kehidupan baru.
  • Komentar riwayat perubahan

    • Komentar riwayat perubahan menunjukkan detail dan craftsmanship. Ini mengingatkan pada esai 'No Silver Bullet' dan menyiratkan bahwa software masih ditulis baris demi baris oleh programmer.