17 January 2016

Terjemah Menu Tales of the World: Radiant Mythology 3


Uhh.. sepertinya judulnya kurang tepat, karna ini bakalan cuman sampel :D
Tapi biarlah, terlanjur bilang mau praktik dalam posting Mengenal Hex kemarin hahaha, malah kesulitan cari bahan yang mudah dipaham :p

Yah langsung saja, alat dan bahan, dalam praktik ini saya menggunakan:
  • Ubuntu 14.04 32-bit (OS)
  • PPSSPP 1.0.1 (Game Emulator)
  • replacer 1.0 (Tool)

Kenapa pakai PPSSPP? ini hanya untuk mendapatkan file yang akan kita gunakan dalam praktik kali ini, sebenarnya ada banyak cara lain, tapi ini salah satu cara paling mudah.
Bagaimana cara mendapatkan file game untuk PPSSPP bisa baca di sini.

Tentang replacer, tool ini digunakan untuk mempercepat proses find dan replace dari data yang sudah ada, ditulis oleh admin blog ini.

Langkah pertama mendapatkan file "EBOOT.BIN" yang akan diedit:
Nyalakan PPSSPP Settings > System > Developer tools > Dump decrypted EBOOT.BIN on game boot: diaktifkan.



Lalu load game TotW RM3nya, secara otomatis file "EBOOT.BIN" yang sudah didecrypt disimpan dalam folder [~/.config/ppsspp/PSP/SYSTEM/DUMP/] dengan nama "NPJH50353.BIN", file inilah yang akan kita pakai untuk praktik kali ini.

Dalam posting Mengenal Hex kemarin, sedikit digambarkan tentang pemetaan karakter. Terus? yup, kita akan memakai salah satu standar yang dipakai dalam encoding karakter Kanji dan Kana dengan menggunakan standar Extended Unix Code (EUC-JP) contoh tabel karakter bisa dilihat di sini.

Misal sebuah deretan nilai [a5 a2 a5 a4 a5 c6 a5 e0], jika dibaca menurut tabel:
 a5 a2 mewakili ア (a)
 a5 a4 mewakili イ (i)
 a5 c6 mewakili テ (te)
 a5 e0 mewakili ム (mu)

Jadi [a5 a2 a5 a4 a5 c6 a5 e0] kalau dibaca menurut tabel menjadi アイテム (aitemu = item) :)

Tapi bakalan repot sekali kalau harus membacanya secara manual seperti ini duh :D, anda bisa menggunakan hex editor yang mendukung encoding EUC-JP untuk mengenali karakter-karakter ini, tidak perlu melakukannya secara manual.

Di linux tidak banyak hex editor, hmm.. nah, di linux banyak sekali hex editor bahkan anda bisa menggunakan text editor bawaan untuk mengedit nilai hex, hanya saja tidak banyak yang user friendly, atau paling tidak saya yang tidak tahu banyak tentang hal ini :p, anda bisa mencari infonya di tempat lain.

Next:
Jika nilai yang ingin anda rubah sudah ada, find dan replace saja di editor yang anda pakai (PENTING: nilai yang digunakan untuk merubah tidak boleh melebihi nilai bit yang ditentukan oleh designer game, jika itu dilakukan pointer akan merujuk ke alamat bit yang tidak sesuai, yang menyebabkan crash saat menjalankan gamenya nanti).

Di sini saya hanya menggunakan LibreOffice Calc untuk membuat 2 buah tabel dalam 2 file.  File 1 berisi tabel dengan nilai yang akan dirubah dan file 2 berisi tabel dengan nilai yang digunakan untuk merubah.

File 1 dengan nama "asal.csv" dan file 2 dengan nama "ganti.csv" --menggunakan format sesuai dengan aturan replacer, karna bakalan lama kalau me-replace satu per satu, kita akan menggunakan tool ini untuk melakukannya.

Langkah selanjutnya:
  • File "NPJH50353.BIN" tadi kita rubah namanya menjadi "EBOOT.BIN" biar lebih mudah.
  • Ekstrak "replacer-v1.0.zip" yang bisa diunduh dari link di bawah.
  • Ekstrak juga "sampel-tabel-rm3.zip" jika anda belum punya tabel sendiri, atau sekedar pengen nge-test, juga bisa diunduh dari link yang sama.
  • Biar lebih mudah pindah semua file "EBOOT.BIN", "asal.csv", "ganti.csv" dan file eksekusi "replacer" ke dalam folder yang sama, misal folder "replacer-v1.0" tadi.
  • Masuk ke direktori tempat semua file tadi dengan terminal.
  • Dan jalankan dengan perintah "./replacer EBOOT.BIN" tanpa tanda kutip.
  • Dan selesai.

replacer-v1.0.zip dan sampel-tabel-rm3.zip
https://goo.gl/aAdV16


Tentang bagaimana cara menggunakan file "EBOOT.BIN" yang sudah dimodifikasi ini di PSP Console, atau cara memasangnya di file digital game, bisa dicari sendiri.

p.s.
Di sini saya tidak akan menyertakan file "EBOOT.BIN", don't ask why :)
Sekali lagi, ini hanyalah sampel mengenal data hex/bin untuk mempelajari cara kerja sebuah mesin ^^
Dan trahir, gomen terjemahan sampelnya messed up, cuman pakai google translate :p

---
sumber:
http://translate.google.com/
forum PPSSPP yang sudah lupa alamatnya :p
http://kohesi.blogspot.com/2016/01/mengenal-hex.html
replacer manual
http://ffhacktics.com

10 January 2016

Mengenal Hex

Hexadecimal atau sering disingkat hex, bilangan yang lebih mudah dibaca dibandingkan biner :)

Beda dengan bilangan biner yang yang kita musti ngitung jumlah digit untuk mengetahui sebuah nilai, hex bekerja seperti bilangan Arab biasa (bilangan yang kita pakai dalam kehidupan sehari-hari), yah, itu karna hex memang bilangan Arab (0-9) yang ditambah 5 angka (A-F), jadi:

Angka Arab:
0-9 yang kalau diteruskan 10 11 12 dst.

Hex:
0-9 diteruskan dengan A B C sampai F yang bernilai 15 desimal, dan diteruskan dengan 10 11 12 .. 19 1A dst.
(10 di sini bernilai 16 desimal, 11 bernilai 17, 19 bernilai 25, 1A bernilai 26 dst.)

Konversi Biner > Hex > Desimal > Oktal atau yang lain bisa lihat pakai kalkulator ilmiah :p

Hahaha seperti biasa, di sini tidak akan membahas lebih lanjut tentang teori :D

Lalu apa kegunaan bilangan-bilangan itu?
Dalam dunia komputer, yang nilai awal/dasarnya berupa angka, bilangan-bilangan itu digunakan untuk mewakili/memetakan karakter-karakter, tulisan yang kita baca di komputer itu, diolah oleh mesin dalam bentuk "nilai".

Gambarkan saja kalau kita membuat sebuah sistem pengolah teks misal:
Kita menjadikan nilai "1" sebagai karakter "a", nilai "2" sebagai karakter "b", dan nilai-nilai lain untuk mewakili spasi, baris baru dan sebagainya.
Sebagai catatan, nilai "1" yang saya maksudkan di sini adalah nilai "1" menurut mesin, bukan angka karakter "1" yang juga perlu kita petakan.

Yup, tapi jika itu dilakukan, sistem kita mungkin bisa membacanya, tapi bagaimana dengan sistem lain? hahaha, jadi repot..
Untuk mengatasi masalah ini, dibuatlah standarisasi yang dipakai untuk meng-encode data dari satu sistem ke sistem lain.

Standar yang paling sering kita pakai misal ASCII atau UTF-8 (bagi pengguna linux).
Posting berikutnya praktik mengedit file dalam bentuk hex;
dalam: Terjemah Menu Tales of the World: Radiant Mythology 3.

---
sumber: materi extra kelas 8

01 January 2016

Konversi Tanggal Unix Ke Excel?

Sekedar catatan, kadang lupa;
Biasanya dibutuhkan hanya untuk keperluan cetak, seperti tanggal dalam file hasil export dari aplikasi ini.

Di linux tanggal bisa dilihat dengan perintah:
date

atau dalam bentuk tanpa format:
date +%s



Untuk lebih jelasnya bisa lihat ini.

Dalam contoh di atas bernilai 1450926165 yang jika dikonversi ke format Excel menjadi 42362,4185763889




Contoh di atas menggunakan LibreOffice Calc dengan setting lokal Indonesia (decimal separator key (,) dan date acceptance patterns (D/M/Y;D/M))
misal:
=(((A1/60)/60)/24)+DATE(1970;1;1)+(7/24)

en kira-kira:
=(((A1/60)/60)/24)+DATE(1970,1,1)+(7/24)

Dalam kolom B, C, dan D memiliki nilai yang sama, hanya dalam format yang berbeda, di LibreOffice bisa diubah dengan CTRL+1 dalam tab Numbers.
Di Microsoft Office mungkin seperti ini.

Hanya saja dalam aplikasi ini tanggal dalam satuan millisecond yang 1s bernilai 1000ms.
jadi:
=(((A1/60000)/60)/24)+DATE(1970;1;1)+(7/24)



Mengenai bentuk, pengurangan/penambahan atau teori yang lain bisa dicari sendiri, CMIIW :p

---
sumber: berbagai sumber.