Vlog Pembangunan | Berkontribusi | Matriks | Forum | Patreon

Ini adalah dekompilasi lengkap dari LEGO Island (Versi 1.1, Bahasa Inggris). Hal ini bertujuan untuk menjadi seakurat mungkin, mencocokkan instruksi yang dikompilasi ulang dengan kode mesin asli sebanyak mungkin. Tujuannya adalah untuk menyediakan basis kode yang bisa diterapkan yang dapat dimodifikasi, ditingkatkan, dan di-porting ke platform lain di kemudian hari.

Keduanya ISLE.EXE Dan LEGO1.DLL sepenuhnya didekompilasi dan, sejauh pengetahuan kami, secara fungsional identik dengan aslinya. Namun, pekerjaan masih berlangsung untuk meningkatkan akurasi, penamaan, dokumentasi, dan struktur kode sumber. Meskipun mungkin masih ada bug yang belum terselesaikan yang tidak ada di retail, game tersebut harus dapat dimainkan sepenuhnya dengan binari yang berasal dari kode sumber ini.

Karena berbagai kerumitan yang berkaitan dengan kompiler, binari ini tidak cocok byte-demi-byte dengan executable asli. Kami tetap berharap hal ini dapat diselesaikan suatu saat nanti.

Proyek ini menggunakan CMembuat membangun sistem, yang memungkinkan tingkat fleksibilitas yang tinggi mengenai kompiler dan lingkungan pengembangan. Untuk hasil yang paling akurat, disarankan Microsoft Visual C++ 4.20 (kompiler yang sama yang digunakan untuk membuat game asli). Karena kami mencoba mencocokkan keluaran kode ini dengan executable asli sedekat mungkin, semua kontribusi akan dinilai dengan keluaran kompiler ini.

Instruksi ini akan menguraikan cara mengkompilasi repositori ini menggunakan Visual C++ 4.2 ke dalam biner yang sangat akurat di mana sebagian besar fungsinya sesuai dengan instruksi ritel. Jika mau, Anda dapat mencoba menggunakan kompiler lain, tetapi risikonya Anda tanggung sendiri dan tidak akan dibahas dalam panduan ini.

Anda perlu menginstal perangkat lunak berikut:

  • Microsoft Visual C++ 4.2. Ini dapat ditemukan di banyak situs yang mengabaikan perangkat lunak, tetapi penginstalnya mungkin sedikit meragukan pada versi Windows modern. Untuk kenyamanan, tersedia versi portabel yang dapat diunduh dan digunakan dengan cepat.
  • CMembuat. Salinannya sering kali disertakan dengan beban kerja “Pengembangan desktop dengan C++” di versi Visual Studio yang lebih baru; namun, ini juga dapat diinstal sebagai aplikasi mandiri.
  1. Buka Prompt Perintah (cmd).
  2. Dari Visual C++ 4.2, jalankan BIN/VCVARS32.BAT x86 untuk mengisi jalur dan variabel lingkungan lainnya untuk kompilasi dengan MSVC.
  3. Buatlah folder untuk menyimpan objek yang dikompilasi, seperti a build folder di dalam repositori sumber (folder tempat Anda mengkloning/mengunduh).
  4. Di Prompt Perintah Anda, cd ke folder build.
  5. Konfigurasikan proyek dengan CMake dengan menjalankan:
cmake  -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo
  • Visual C++ 4.2 memiliki masalah dengan jalur yang berisi spasi. Jika Anda mendapatkan kesalahan konfigurasi atau build, pastikan CMake, repositori, atau Visual C++ 4.2 tidak berada di jalur yang berisi spasi.
  • Mengganti dengan repositori sumber. Ini bisa jadi .. jika folder build Anda ada di dalam repositori sumber.
  • RelWithDebInfo direkomendasikan karena akan menghasilkan simbol debug yang berguna untuk pekerjaan dekompilasi lebih lanjut. Namun, Anda dapat mengubahnya menjadi Release jika Anda tidak membutuhkannya. Debug build tidak disarankan karena kemungkinan besar tidak kompatibel dengan retail LEGO1.DLLyang saat ini merupakan satu-satunya cara untuk menggunakan dekompilasi ini untuk gameplay.
  • NMake Makefiles paling direkomendasikan karena akan langsung kompatibel dengan Visual C++ 4.2. Untuk build yang lebih cepat, Anda dapat menggunakan Ninja (jika Anda sudah menginstalnya), namun karena keterbatasan dalam Visual C++ 4.2, Anda hanya dapat membangun Release dibangun dengan cara ini (simbol debug tidak dapat dihasilkan dengan Ninja).
  1. Bangun proyek dengan menjalankan nmake atau cmake --build
  2. Ketika ini selesai, harus ada kompilasi ulang ISLE.EXE Dan LEGO1.DLL di folder pembuatan.
  3. Perhatikan itu nmake harus dijalankan dua kali pada kondisi tertentu, sehingga disarankan untuk selalu (re-)kompilasi menggunakan nmake && nmake.

Jika Anda memiliki IDE yang kompatibel dengan CMake, seharusnya cukup mudah untuk menggunakan repositori ini, selama Anda dapat menggunakannya VCVARS32.BAT dan atur generator ke NMake Makefiles.

Cukup letakkan yang telah dikompilasi ISLE.EXE Dan LEGO1.DLL ke dalam folder instalasi LEGO Island (biasanya C:Program FilesLEGO Island atau C:Program Files (x86)LEGO Island). Alternatifnya, LEGO Island dapat dijalankan dari direktori mana pun asalkan ISLE.EXE Dan LEGO1.DLL berada di direktori yang sama, dan kunci registri (biasanya HKEY_LOCAL_MACHINESoftwareMindscapeLEGO Island atau HKEY_LOCAL_MACHINESoftwareWow6432NodeMindscapeLEGO Island) arahkan ke lokasi yang benar untuk file aset.

Jika Anda tertarik untuk membantu atau berkontribusi pada proyek ini, lihat halaman KONTRIBUSI.

Versi Pulau LEGO manakah yang saya miliki?

Klik kanan pada LEGO1.DLLmemilih Propertiesdan beralih ke Details tab. Di bawah Version kamu juga harus melihatnya 1.0.0.0 (1.0) atau 1.1.0.0 (1.1). Selain itu, Anda dapat melihat file disk game; File 1.0 semuanya akan bertuliskan 8 Agustus 1997, dan file 1.1 semuanya akan bertuliskan 8 September 1997. Versi 1.1 sejauh ini adalah yang paling umum, terutama jika Anda tidak menggunakan versi bahasa Inggris atau Jepang, jadi itu yang paling banyak kemungkinan versi yang Anda miliki.

Harap dicatat bahwa beberapa versi lokal LEGO Island dikompilasi ulang dengan sedikit perubahan meskipun nomor versi tetap sejajar dengan versi lain; dekompilasi ini secara khusus menargetkan rilis LEGO Island versi 1.1 dalam bahasa Inggris. Anda dapat memverifikasi bahwa Anda memiliki versi yang benar menggunakan checksum di bawah:

  • PULAU.EXE md5: f6da12249e03eed1c74810cd23beb9f5
  • LEGO1.DLL md5: 4e2f6d969ea2ef8655ba3fc221a0c8fe
  • KONFIG.EXE md5: 92d958a64a273662c591c88b09100f4a

Sumber

Krystian Wiśniewski
Krystian Wiśniewski is a dedicated Sports Reporter and Editor with a degree in Sports Journalism from He graduated with a degree in Journalism from the University of Warsaw. Bringing over 14 years of international reporting experience, Krystian has covered major sports events across Europe, Asia, and the United States of America. Known for his dynamic storytelling and in-depth analysis, he is passionate about capturing the excitement of sports for global audiences and currently leads sports coverage and editorial projects at Agen BRILink dan BRI.