28 Oktober, 2008

Translate Your SNES/GBA ROM

Mungkin anda sudah sering memainkan game-game Winning Eleven dan Grand
Theft Auto berbahasa Indonesia. Dalam artikel kali ini saya akan
memperkenalkan teknik yang bisa digunakan untuk mentraslasikan game-game
ROM NES, SNES, Genesis, Game Gear sampai Gameboy Advance ke dalam bahasa
Indonesia.

Mungkin anda sudah sering memainkan game-game Winning Eleven dan Grand
Theft Auto berbahasa Indonesia. Dalam artikel kali ini saya akan
memperkenalkan teknik yang bisa digunakan untuk mentraslasikan game-game
ROM NES, SNES, Genesis, Game Gear sampai Gameboy Advance ke dalam bahasa
Indonesia.

Anda terlebih dahulu diharapkan
mendownload software-software berikut ini :
1. Thingy32
2. TableManager
3. SearchR2
4. Transhlextion (http://www.snakeyes.org/util/general.php)
5. Tile Layer Pro
6. SNEStool

Anda dapat mendownload semua program tersebut dan berbagai program bantuan translasi lainnya di http://www.zophar.net/trans/tranutil.html kecuali Transhlextion. Walau banyak program bantuan translasi lain, kita akan berfokus pada keempat software ini untuk dapat mengerti dasar dari penerjemahannya. Bila sudah menguasai dasarnya, silakan mencoba berbagai program advanced yang ada yang mungkin dapat anda gunakan secara lebih efektif. Juga disarankan anda telah memiliki satu ROM game untuk diujicoba langsung seiring dengan membaca artikel ini. Bila anda sudah memiliki semua program tersebut, anda sudah siap untuk menerjemahkan ROM game-game klasik favorit anda!

1. You Can't Read It!
Pada awalnya, data-data didalam komputer menggunakan format binari, yaitu 0 dan 1. Untuk mempermudah dan menyederhanakannya, digunakanlah format Hexadesimal. Disinilah tabel karakter standar ASCII berperan untuk membuat komputer dapat mengenali karakter hasil kombinasi 127 nomor Hexadesimal. Dengan kata lain, komputer menggunakan kode tersebut untuk mengidentifikasi sebuah karakter. Data-data didalam ROM juga merupakan data yang berbentuk Hexadesimal seperti 00, 01, 0A, BE, sampai FF. Sayangnya, penomoran Hexadesimal dalam game tidak mengikuti kaedah tabel karakter standar ASCII, bahkan bisa dibilang tiap game memiliki tabel karakternya sendiri. Memang ada game yang memakai tabel karakter standar ASCII (misalnya Lufia-Ruin of Lore di GBA), tapi hal ini jarang sekali terjadi. Bahkan game Lufia-Ruin of Lore tersebut hanya memakai sebagian dari tabel karakter standar ASCII.

Untuk itu, sebelum mulai menerjemahkan, anda harus dapat membaca kode yang ada didalam sebuah ROM (seperti kata pepatah, "You can't translate what you can't read" ). Hal ini dapat dilakukan dengan cara membuat tabel karakternya terlebih dahulu. Selain itu, ada ciri khas dalam pemakaian bit karakter. Bila huruf A memakai bit B3, maka bisa dipastikan bit huruf B, C, dan seterusnya sampai Z ada dibelakang huruf A tersebut secara berurutan. Sehingga bisa diketahui bit huruf B adalah B4, bit huruf C adalah B5, dan seterusnya.

Untuk mengetahui bit yang menjelaskan huruf tertentu, anda bisa memakai program seperti SearchR2 (berbasis DOS). Anda harus menyiapkan ROM yang ingin anda cari alamat bit perkarakternya dan mengetahui setidaknya satu dua kata yang digunakan dalam dialog game tersebut.

Misalnya, anda sudah membuka ROM game SNES Final Fantasy III (versi Jepang Final Fantasy VI) dengan program SearchR2. Anda lalu tinggal memasukkan kata-kata yang ada dalam salah satu dialog di game tersebut, misalnya 'Esper' atau 'thief' atau 'Kefka'. Perlu diingat bahwa pencarian disini bersifat 'Case-sensitive', yaitu penggunaan huruf besar dan huruf kecil dibedakan.

Program nantinya akan mencari bit-bit yang secara relatif memiliki jarak yang sama dengan kata yang telah anda masukkan, lalu memberitahu anda karakter A atau karakter a memiliki bit apa. Anda tinggal memasukkan karakter B atau b dan karakter-karakter selanjutnya dalam bit-bit berikutnya. Ada kemungkinan anda akan mendapatkan beberapa hasil yang berbeda, tapi itu tidak apa-apa. Coba lagi dengan kata yang berbeda-beda, sampai anda mendapatkan satu hasil yang stabil dan bisa didapatkan dari semua pencarian sebelumnya.
Terkadang ada beberapa pengguna Windows XP yang bermasalah ketika membuka program SearchR2 yang berbasis DOS. Sebagai alternatif anda bisa menggunakan Transhlextion yang juga disebutkan diatas.



Transhlextion menyediakan fitur Relative Search yang mudah dan cukup powerful

Cara kerjanya kurang lebih mirip, anda tinggal meload file ROM yang anda ingin terjemahkan, lalu pergi ke menu Search -> Scan Relative.

Lalu masukkan kata yang ada dalam salah satu dialog dalam game. Hasil search akan memperlihatkan kode heksadesimal dari huruf A, huruf a, dan angka 1. Kemungkinan besar anda akan mendapat beberapa hasil yang berbeda satu sama lain, tapi tidak mengapa. Anda bisa menggunakan kata-kata lain sampai ditemukan satu hasil yang konsisten. Keuntungan dari penggunaan program Transhlextion ini adalah kita bisa menyimpan hasil temuan kita untuk dibandingkan lagi nantinya (tidak manual seperti SearchR2). Selain itu, program ini juga dapat langsung menggenerate tabel karakter (Thingy) sesuai dengan hasil yang kita temukan.

Untuk lebih mempermudah, setelah anda menemukan kode untuk huruf kunci (a dan A), maka anda tinggal menyalakan program Table Manager dan memasukkan huruf a dan A pada posisi yang sesuai dengan hasil Scan Relative sebelumnya. Setelah itu anda bisa save hasil table karakter yang anda buat untuk digunakan lagi nanti oleh program translasi berikutnya.



Penempatan huruf pada table manager

2. Replace, and Replace, and Replace, and ....
Bila anda sudah memiliki tabel karakternya, anda sudah bisa mulai mengubah isi ROM game klasik favorit anda tersebut. Sebenarnya anda bisa juga menggunakan Transhlextion untuk melakukan proses translasi, tapi ada beberapa alasan (yang akan saya kemukakan nanti) untuk lebih memakai Thingy32. Langkah-langkah yang harus anda lakukan adalah :
a. Buka program Thingy32.exe
b. Dalam menu yang terbuka, pilih ROM game yang anda ingin translate dari direktori anda
c. Dalam menu kedua yang terbuka, pilih file tabel karakter yang telah anda buat
d. Dalam menu ketiga yang terbuka, anda cukup tekan Cancel bila tidak ada rujukan tabel yang kedua (untuk kasus ini kita cuma memiliki satu tabel karakter sebagai panutan)

Setelah itu program akan terbuka dan akan terlihat lautan karakter aneh yang tidak jelas maksudnya. Daftar disebelah kiri adalah bentuk hexadecimal dari karakter yang ada disebelah kanan. Anda bisa mulai mencari lokasi kata-kata yang perlu diterjemahkan dengan menggunakan option Search.


Tampilan Thingy32

Ketikkan kata yang ingin anda cari pada awalnya (misalnya "What") dan tekan enter. Anda mungkin memerlukan waktu beberapa menit untuk menunggu pencarian anda membuahkan hasil. Bila tidak ada hasil yang ditemukan, kemungkinan besar tabel yang anda buat salah. Harap ulangi lagi langkah 1 bila hal ini terjadi. Bila anda sudah menemukan kata tersebut, seharusnya lokasinya terletak pada sebuah kumpulan kata lain yang membentuk sebuah dialog atau list menu. Anda sudah punya pedoman untuk mulai menerjemahkan kalimat-kalimat tersebut.

Ada dua cara dasar untuk menerjemahkan dialog-dialog dalam game ini, yaitu memakai Dump Script atau menerjemahkan manual secara langsung. Disinilah kelebihan Thingy32 dibanding Transhlextion, anda bisa melakukan penerjemahan langsung pada ROM dengan menggunakan tabel karakter yang sudah didapat. Selanjutnya akan dijelaskan mengenai kedua metode translasi tersebut.

A. Metode Penerjemahan Langsung
Anda tinggal menekan spasi untuk memilih bagian awal dari kata yang ingin anda terjemahkan, lalu menekan spasi lagi pada bagian akhir kalimat. Begitu menu translasi baru terbuka, anda tinggal mengetikkan kalimat terjemahan yang anda inginkan. Salah satu kemudahan yang diberikan oleh Thingy32 adalah jumlah karakter yang bisa anda ketikkan dibatasi sesuai dengan jumlah karakter yang anda pilih sebelumnya sehingga mengurangi resiko mengganggu kode heksadesimal lain yang penting. Setelah anda menekan enter, hasilnya tidak akan langsung terlihat pada kalimat disebelah kanan dan baru terlihat ketika anda meload ulang ROM anda.

Kelemahan dari metode ini adalah ketika anda sedang menerjemahkan ROM, anda harus melakukannya dengan keadaan program Thingy32 sedang aktif. Selain itu untuk mencegah kerusakan pada file ROM, anda biasanya harus mentranslasikan satu per satu kata. Hal ini tentunya agak tidak efisien terutama ketika menerjemahkan game-game berdialog panjang seperti RPG.

B. Metode Dump Script
Dalam Thingy32, anda bisa menekan tombol D pada bagian awal dialog yang ingin anda ubah, lalu menekan tombol D lagi pada bagian akhirnya. Setelah sebuah script di Dump, anda tinggal mensavenya di direktori pilihan anda. Anda tinggal membuka hasil Dumping tersebut dengan salah satu text editor, misalnya notepad, dan langsung mentranslasi isinya seperti biasa anda mengetik sebuah tulisan. Untuk mencegah kelebihan karakter yang ditulis, ada baiknya anda mengaktifkan Insert disini.


Hasil Dump Script

Setelah anda mentranslasikan keseluruhan text tersebut, anda menjalankan program Thingy32 lagi, membuka ROM, dan tabel karakter yang sebelumnya sudah anda buka, lalu anda tinggal melakukan Insert pada tempat dimana anda melakukan dump script tadi. Disini Thingy32 membantu kita dengan memperlihatkan alamat heksadesimal yang anda ganti pada teks dump script yang dibuat sehingga anda bisa langsung menuju alamat tersebut, menekan tombol I (untuk Insert script), lalu menekan tombol I lagi pada bagian akhir script. Voila! Beberapa puluh karakter heksadesimal tersebut telah digantikan dengan karakter yang telah anda ketik sebelumnya.

Anda bisa menerjemahkan langsung berpuluh-puluh kata sekaligus dengan cara ini, tapi salah satu drawback nya adalah kemungkinan karakter heksadesimal penting antar dialog terhapus atau terganti dengan karakter dialog biasa sehingga mengakibatkan kesalahan atau kerusakan pada tampilan dialog.

3. Things to always remembered by
Jangan lupa hal penting ini: Besar suatu rom tidak boleh berubah!
Anda tidak bisa menambah jumlah bit yang ada dalam sebuah rom. Jadi, bila ingin mengganti sebuah percakapan dalam game, usahakan untuk tidak melebihi kapasitas dialog yang telah ada. Kalau perlu anda menggunakan singkatan saja untuk beberapa kata yang bisa disingkat. Selain itu biasanya ada karakter bit khusus pada tiap akhir dialog yang menandakan perubahan karakter yang berbicara, perubahan balon dialog, atau melanjutkan ke percakapan selanjutnya. Anda mesti benar-benar memperhatikan hal ini.

Selain itu, anda kemungkinan besar akan mengalami kesalahan dalam proses translasinya. Tidak ada translator di dunia ini yang mampu langsung menerjemahkan dan benar hasilnya dalam sekali coba. Oleh karena itu teruslah mencoba game yang telah anda translate sedikit demi sedikit untuk memastikan tidak ada kesalahan yang terjadi. Salah satu hal vital
yang dapat membantu anda bila mengalami kesalahan adalah dengan memback up rom yang telah anda terjemahkan dengan baik. Jadi bila ada kesalahan vital yang tidak bisa/sulit anda perbaiki, anda cukup menggunakan rom yang telah dibackup sebelumnya.

4. Images to be changed
Ada beberapa komponen dalam game yang tidak bisa diterjemahkan dengan metode diatas, seperti gambar judul atau gambar papan penunjuk arah karena tulisan itu bukan dibentuk dari bit-bit melainkan gambar utuh dari sananya. Disinilah Tile Layer Pro memainkan peranan.


Sebelum ditranslate dan diubah grafiknya

Anda cukup membuka program Tile Layer Pro lalu Open ROM game yang ingin anda lihat grafik didalamnya. Disini anda bisa melihat hampir semua komponen gambar yang ada didalam game walau warnanya agak berbeda karena pallettenya tidak sesuai dengan standar gamenya dan juga urutan gambarnya terkadang agak kacau. Bersabarlah sampai menemukan gambar yang berisi tulisan tersebut.



Anda bisa mengubah gambar pada ROM seperti menggunakan Paint dengan Tile Layer Pro ini.

Setelah menemukan gambar yang dimaksud, ubahlah tulisan yang ada didalamnya secara manual dengan menggunakan tool yang sudah disediakan software tersebut. Misalnya dalam game SNES Violinist of Hameln, ada gambar penunjuk arah yang bertuliskan MAP. Anda bisa memilih gambar penunjuk arah tersebut dan mengubah secara manual tulisannya (mirip dengan program Paint di Microsoft Windows) menjadi PETA. Ukuran field dan tempat tulisannya juga perlu diperhatikan.


Sesudah ditranslate dan diubah grafiknya

5. Keep going...
Cari terjemahan dialog dalam kamus, ketik hasil terjemahannya, lalu coba kembali dalam game. Bila ada kesalahan, gunakan back up ROM sebelumnya, tapi bila berhasil, lanjutkan lagi cari terjemahan dialog selanjutnya dalam kamus. Ulangi terus lingkaran setan ini sampai anda selesai menerjemahkan semua aspek dalam game.

Jangan menyerah dan tetap tekun mencoba! Walau anda bisa mencoba menerjemahkan sebuah game sendirian, tetapi sangat disarankan untuk menerjemahkan bersama beberapa orang untuk menghindari intensitas pekerjaan yang bisa mengganggu kegiatan rutin anda. Bila anda pertama kali ini mencoba menerjemahkan sebuah game, mungkin bisa mencoba game-game action atau platform yang sederhana dan minim dialog

Ingat! Hasil kerja anda baru terasa bila anda sudah menerjemahkan KESELURUHAN aspek game, bukan hanya bagian pembuka, pertengahan, penutup, atau malah hanya menu utama saja (X_X).

6. At last it's over....now show it to the world!!
Jadi anda sudah selesai mentranslasikan sebuah game? SELAMAT!! Sekarang anda bisa disebut sebagai salah satu translator game berbahasa Indonesia. Anda bisa memajang hasil karya anda di website pribadi, blog, atau forum-forum game yang ada banyak di Indonesia. Tetapi karena ada masalah dengan undang-undang hak cipta dan hak kopi yang dimiliki game-game komersial (walaupun game SNES dan NES sudah lama tidak terdengar kabarnya, masih ada hak intelektualnya loh!), sangatlah tidak bijaksana untuk langsung menyediakan ROM yang telah anda translate tersebut.


Contoh hasil translasi

Untuk mengatasi hal ini, gunakanlah program SNEStool yang telah disebutkan diatas (untuk game NES, SNES, atau bahkan game-game Gameboy).

Yang anda perlukan cuma ROM game yang belum anda terjemahkan dan ROM game yang sudah anda terjemahkan. Langkah-langkahnya:
a. Buka SNEStool anda, pilih Create IPS.
b. Pilih Rom yang belum anda terjemahkan.
c. Pilih Rom yang sudah anda terjemahkan.
Tunggu loading sebentar lalu...Voila! File IPSnya sudah terbentuk! File IPS ini merupakan file yang berisi semua perubahan yang terjadi pada sebuah ROM. Bila anda memasangnya pada sebuah ROM yang belum diterjemahkan, maka otomatis isi ROM tersebut berubah sesuai dengan perubahan/penerjemahan yang anda lakukan. Sekarang orang yang ingin memainkan game terjemahan anda cukup memiliki/mendownload ROM gamenya, menjalankan SNEStool, lalu melakukan langkah-langkah berikut:

a. Pilih Use IPS, lalu pilih file IPS ROM yang dikehendaki.
b. Pilih ROM awal yang belum ditranslasi.
Tunggu loading sebentar lalu...Voila! ROM game tersebut sekarang sudah berhasil diterjemahkan. Jangan lupa simpan file ROM aslinya agar tidak tertukar dengan ROM yang sudah diterjemahkan.

Bagaimana? Tidak terlalu sulit bukan? Mungkin bila membaca saja anda akan merasa pusing, karena itu saya sarankan untuk membaca artikel ini sambil mencoba menerjemahkan ROM-ROM game lama favorit anda. Selamat Mencoba!

3 komentar:

Bos, tutorial diatas kan untuk rom yang textnya nggak diencript. Kalau misal textnya diencript gimana? ada saran ga buat bypass enkripsi text tadi?
Terus kalau buat gedit rom NDS kira2 tutorial diatas bisa dipakai ga?
thank you :)

Up ikut tanya... Request tutor ato list tool translasi game format 3ds dan iso bisakah om??

tanya sama pi man aja bang

Posting Komentar