31.12.23

Patch Translasi Ninja Gaiden Trilogy (SNES)


     Ninja Gaiden Trilogy, atau Ninja Ryukenden Tomoe di versi Jepangnya, adalah game untuk Super Nintendo yang merangkum tiga game Ninja Gaiden di NES. Game ini mendapat peningkatan kualitas grafis dan musik, dan juga sedikit perubahan pada dialog maupun gameplay. Juga ada fitur password, agar tak perlu mengulang dari awal.

     Sebelumnya aku sudah menerjemahkan game Ninja Gaiden 1 dan 3 untuk NES (Ninja Gaiden 2 diterjemahkan oleh temanku, Chandra Martika alias Anubis Chan). Satu hal, untuk urutan cerita, sebenarnya Ninja Gaiden ketiga settingnya ada di antara Ninja Gaiden pertama dan kedua.

     Gunakan aplikasi seperti Lunar IPS (PC) atau Rompatcher/UniPatcher (Android).

Download
Patch Translasi (MediaFire, RomHacking)

27.12.23

Patch Translasi untuk Brigandine: The Legend of Forsena (PS1)


     Brigandine: The Legend of Forsena adalah salah satu game strategi terbaik di PS1. Meski game buatan Hearty Robin ini nampak belum selesai saat dirilis, namun sudah menyuguhkan permainan yang menarik sekaligus menantang. Dimana kita bisa memilih satu dari lima negara (enam jika termasuk Esgares yang bisa dipilih dengan cara menekan R1+L2+Start di layar memilih negara) dan menyatukan benua Forsena.

     Versi lengkap game ini ada di Brigandine: Grand Edition yang tak pernah dirilis resmi di luar Jepang (namun ada yang membuat patch bahasa Inggrisnya, dan mungkin juga akan kuterjemahkan ke depannya), di mana kita bisa memilih Esgares tanpa kode, mendapat beberapa Ksatria Rune dan monster baru, mode multiplayer, dan juga melawan Bulnoil dan Ouroboros (Snake of Chaos).

     Terjemahan kali ini adalah request salah satu teman, dan kebetulan merupakan salah satu proyek lama yang sudah lama dipending dan baru dilanjutkan setelah request. Penerjemahan diutamakan untuk dialog dan narasi cerita. Sebagian teks lain juga diterjemahkan, tapi bagian seperti deskripsi atau sebagian menu tidak diterjemahkan.

     Seperti biasa, gunakan Delta Patcher (PC) atau UniPatcher (android) untuk menerapkan patch ke ISOnya. Kalian cukup menerapkan patch pada file bin pertama (Track 01).

Download
Patch Translasi (MediaFire, RomHacking)

16.12.23

Patch Translasi untuk Disney's The Little Mermaid II (PS1)


     Disney's The Little Mermaid II adalah game yang diadaptasi dari film animasi Disney's The Little Mermaid dan Disney's The Little Mermaid II. Setengah awal game mengadaptasi film pertama, dan setengah akhir mengadaptasi film kedua.

     Ini juga merupakan game The Little Mermaid kedua yang aku terjemahkan, setelah game The Little Mermaid untuk NES. Dan ini bagian dari proyek lama yang dituntaskan demi mengurangi daftar proyek yang ada. Game ini sendiri tidak terlalu sulit, dan mestinya juga bisa dimainkan anak-anak.

     Seperti biasa, gunakan Delta Patcher (PC) atau UniPatcher (android) untuk menerapkan patch ke ISOnya. 

9.12.23

Tutorial Menerjemahkan Game Silent Hill (Bagian 2)



     Ini adalah lanjutan dari tutorial bagian pertama tempo hari.

     Sebelumnya kita sudah membuat tabel karakter untuk game Silent Hill 2, dan jika mau, kita bisa langsung mengeditnya dengan WindHex. Tapi jika ingin mengedit dengan lebih mudah, kita bisa memakai aplikasi bernama Kruptar 7. Tutorial ini mungkin kurang bagus, karena aku sendiri kurang menguasainya.

     Pertama, kopi file ETC.MGF tempo hari, paste di lokasi lain dan ganti namanya, misal ETC.MGF.OLD. Lalu pindahkan kembali file itu ke lokasi semula. 

     Buka aplikasi Kruptar 7, dan klik icon New Project di kiri atas (bisa juga klik File->New Project, atau tekan CTRL+N). Klik kpSourceROM dan masukkan lokasi ETC.MGF.OLD. Klik kpDestinationROM dan masukkan lokasi ETC.MGF. Klik kanan pada folder Tables lalu pilih Add From File... dan masukkan lokasi tabel karakter (sh2.tbl) yang kita buat tempo hari.

     Klik kanan pada String Terminators, dan masukkan nilai kode akhir teks yang kita temukan tempo hari (FFFF). Kalian bisa mengganti nilai ini dengan mengklik nilai yang ada (misal 00) dua kali dan ganti nilainya menjadi FFFF. Lakukan hal yang sama untuk CLRF Codes (ini adalah kode untuk ganti baris) dan masukkan nilai FFFD.

     Sekarang, klik kanan pada Groups dan pilih Add Group. Lalu klik kanan pada Lists of Pointers dan pilih Add Item. Klik pada List1 (kalian bisa mengganti namanya dengan mengklik dua kali), klik ptSrcTable dan pilih tabel karakter yang digunakan (misal sh.tbl). Lakukan hal yang sama pada ptDestTable.

     Kembali ke WindHex, kita akan mencari lokasi teks/dialog dalam game. Ucapan pertama James di game ini adalah "Mary... Could you really be in this town?" Di WindHex, klik Search->Text Search dan masukkan kata kunci "Could you really". 


     Di sini kita temukan teks paling awal di bagian atas adalah "This is the road I came in on" yang ada di alamat 0x21C040. Sedang teks terakhir adalah "You'd better do something about that cough." yang ada di alamat 0x21C562.

     Kembali lagi ke Kruptar 7. Klik kanan pada List1, pilih Add Pointers... dan masukkan nilai Start offset: h21C040. Sedang untuk Finish offset: masukkan h21C562.
Di sini kalian bisa mulai mengedit teks kalau mau.

     Merasa tak puas karena tampilan teks masih belum rapi? Klik kanan pada List1 dan pilih Clear untuk menghapusnya. Kembali ke WindHex, kita lihat tiap teks selalu diawali oleh nilai hex 0080. Beralih ke Kruptar, klik kanan pada String Terminators, pilih Add Item dan tambahkan nilai 0080.

     Kembali ke langkah sebelumnya, klik kanan pada List1, pilih Add Pointers... dan masukkan nilai offset yang sama (h21C040 dan h21C562). Kali ini tampilannya akan seperti ini:
Kita bisa menghapus alamat-alamat yang tak berisi teks. Klik kanan pada alamat offset 021C081 dan pilih Remove Item, atau sorot alamat itu dengan mengkliknya dan tekan CTRL+D. Lakukan pada alamat-alamat offset lain yang tak berguna (21C0C2, 21C105, 21C12E, dll). Maka kalian akan mendapatkan 31 baris dialog seperti sebelumnya.

     Sekarang kalian bisa mengedit teks yang ada. Teks yang bisa diedit ada di sisi kanan, sisi kiri adalah teks asli. Pastikan hasil editan sama panjang dengan aslinya, tidak lebih panjang atau lebih pendek, isi dengan spasi kalau perlu. 

     Jika sudah selesai mengedit, pastikan dulu tiap baris sama panjang dengan aslinya. Lalu klik icon hijau Recalculate and Insert di kanan (atau tekan F9). Kalian juga bisa menyimpannya dengan mengklik icon Save, beri nama (misal SH2.kpx). 

     Ulangi langkah yang sama, cari alamat teks yang kalian temukan di Windhex, lihat alamatnya, dan masukkan di Kruptar. Jika kalian memahami pointer, mungkin akan lebih mudah. Jika tidak, ikuti saja cara ini. 

     Jika kalian sudah selesai menerjemahkan, atau sekedar ingin menguji hasilnya, kalian harus memasukkan kembali file ETC.MGF ke ISO Silent Hill 2. Buka Apache2 dan buka ISO Silent Hill 2, Klik kanan ETC.MGF di folder DATA dan pilih Update Selected File. Tunggu hingga selesai. Dan kalian bisa mencoba hasilnya.

     Cara ini bisa digunakan untuk menerjemahkan game-game lain, untuk konsol lain. Meski mungkin akan ada perbedaan, misal tool untuk mengekstrak atau memasukkan kembali file, tabel karakter, dan sebagainya.

6.12.23

Tutorial Menerjemahkan Game Silent Hill 2 (Bagian 1)



      Banyak yang menanyakan cara untuk menerjemahkan game. Bukannya tak mau memberi tahu, tapi pada dasarnya pengetahuan sendiri masih dangkal. Tapi akan aku usahakan untuk menjelaskannya. Translator handal mungkin punya cara yang lebih baik.

     Dalam hal ini, cara yang kutunjukkan adalah cara yang aku pakai untuk menerjemahkan game Silent Hill2 tempo hari. Ini juga bisa dipakai untuk menerjemahkan game-game lain di konsol lain, meski akan ada perbedaan di beberapa bagian (termasuk tool untuk kestrak file dari ISO).

     Adapun tool-tool yang digunakan dalam pengerjaan penerjemahan ini adalah:
-Monkey-Moore -> Untuk pencarian relatif.
-Apache2 -> Untuk ekstrak file dari ISO dan memasukkan kembali file ke ISO.
-WindHex -> Hex Editor
-Kruptar 7 -> Untuk mengedit teks game.

     Langkah pertama seperti biasa, adalah melakukan pencarian relatif. Kalian bisa memainkan game lebih dulu, atau langsung mencari situs yang menyediakan script gamenya. Dalam hal ini, kata kunci yang digunakan dalam pencarian adalah "restless".


     Hasil pencarian menunjukkan nilai a=41, artinya nilai hex 41=a, 42=b, 43=c dan seterusnya hingga . Dari sini, kita bisa membuat tabel karakter awal. Kalian bisa menggunakan tabular, atau dengan fitur dari Windhex (Tools->Table Maker). Simpan tabel ini, misal dengan nama sh2.tbl.

     ISO Silent Hill 2 berukuran lebih dari 3,6 GB, dan mustahil memakai hex editor untuk mengedit file sebesar ini. Kita punya pilihan, apakah memotong-motong ISO jadi file-file yang lebih kecil, atau mengekstrak file dari ISO. Di sini kita ambil pilihan kedua.

     Buka ISO Silent Hill 2 dengan Apache2, kita akan mendapati file-file seperti ini.

     Ada banyak file di dalam ISO, dan kita harus menguji file mana yang menyimpan script dialog dan teks dalam game. Di sini, kita ekstrak folder yang kita duga berisi teks, yakni folder DATA, dengan mengklik klanan folder itu dan pilih "Extract". Lalu kita buka file itu dengan Monkey-Moore dan kembali mengulang pencarian dengan kata kunci yang sama dengan sebelumnya (restless). 

     Hasilnya menunjukkan jika file ETC.MGF yang berisi teks dalam game. Maka file inilah yang kita edit. File ini cuma berukuran 2,41MB, jadi amat mempermudah kita mengeditnya. Buka file ETC.MGF ini dengan WindHex, dan jangan lupa buka juga tabel karakter yang kita buat sebelumnya. Kita akan melengkapi tabel karakter kita.
     Klik Search->Text Search (atau tekan CTRL+F), dan di kolom pencarian masukkan kata "restless" (tanpa tanda kutip). 

     Kita dapati antar kata dipisahkan oleh nilai 00, ini adalah nilai untuk spasi. Klik Tools->Table Editor, dan masukkan '00= ' untuk memberi nilai hex 00 untuk spasi. Dan jika kita menyimak dialog dalam game atau membaca script gamenya, kita akan temukan kalimat "In my restless dreams, I see that town. dst). Artinya nilai hex 29 di alamat CF292 adalah untuk huruf I. 29=I, berarti 21=A, 22=B, 23=C dst. Edit lagi tabel karakter dan masukkan nilai-nilai tadi.

     Ulangi langkah tadi, bandingkan antara script game dengan tampilan di hex editor untuk melengkapi tabel karakter kita. Maka kita akan mendapati jika nilai 0C adalah untuk tanda koma (,), 0E untuk tanda titik, 07 untuk tanda petik ('). Teruslah melengkapi tabel dengan menambahkan nilai yang kita ketahui.

*Pada dasarnya, nilai hex untuk tabel karakter Silent Hill 2 adalah nilai kode ASCI dikurang 20. Misal kode ASCII untuk A adalah 41, di sini jadi 21. Kode ASCII untuk a adalah 61, di sini jadi 41. Kode ASCII untuk tanda seru (!) adalah 21, di sini jadi 01. Tapi ini unik untuk Silent Hill 2, dan akan berbeda untuk game-game lain.

     Kita juga menemukan bahwa nilai hex FFFD adalah nilai kode ganti baris, dan FFFF adalah kode untuk akhir teks. Ingat nilai ini, karena kita akan banyak memakainya nanti. kalian juga bisa memasukkan nilai ini dalam tabel karakter. Aku biasa memakai tanda \ untuk ganti baris, dan || untuk akhir teks. Kita bisa menggeser posisi kode ganti baris, tapi jangan menggeser posisi kode akhir teks, karena seringkali akan membuat game hang.

     Sebenarnya di sini pun kita sudah bisa mengedit teks dalam game ini. Tapi untuk lanjutannya, aku akan berusaha menjelaskan cara memakai tool Kruptar 7 untuk mengedit teksnya, dengan segala keterbatasan kemampuanku.