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.
- Buka Prompt Perintah (
cmd
). - Dari Visual C++ 4.2, jalankan
BIN/VCVARS32.BAT x86
untuk mengisi jalur dan variabel lingkungan lainnya untuk kompilasi dengan MSVC. - Buatlah folder untuk menyimpan objek yang dikompilasi, seperti a
build
folder di dalam repositori sumber (folder tempat Anda mengkloning/mengunduh). - Di Prompt Perintah Anda,
cd
ke folder build. - 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 menjadiRelease
jika Anda tidak membutuhkannya.Debug
build tidak disarankan karena kemungkinan besar tidak kompatibel dengan retailLEGO1.DLL
yang 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 menggunakanNinja
(jika Anda sudah menginstalnya), namun karena keterbatasan dalam Visual C++ 4.2, Anda hanya dapat membangunRelease
dibangun dengan cara ini (simbol debug tidak dapat dihasilkan denganNinja
).
- Bangun proyek dengan menjalankan
nmake
ataucmake --build
- Ketika ini selesai, harus ada kompilasi ulang
ISLE.EXE
DanLEGO1.DLL
di folder pembuatan. - Perhatikan itu
nmake
harus dijalankan dua kali pada kondisi tertentu, sehingga disarankan untuk selalu (re-)kompilasi menggunakannmake && 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.
Klik kanan pada LEGO1.DLL
memilih Properties
dan 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