RuneTranslate kini menerjemahkan visual novel NScripter / ONScripter
RuneTranslate kini menerjemahkan visual novel NScripter dan ONScripter ke bahasa Inggris dan 30+ bahasa — mendekode nscript.dat yang diobfuskasi XOR-0x84, menangani teks Shift-JIS / CP932 dan jebakan parser pada baris yang diawali huruf Latin, serta menerjemahkan teks Jepang yang tercetak di layar judul, menu, dan tombol. Arahkan ke folder game, deteksi otomatis, terjemahkan, ekspor salinan siap main. Baru ditambahkan — laporkan game mana pun yang tidak mau memuat.
RuneTranslate kini menguasai salah satu dialek tertua dalam visual novel Jepang: NScripter dan kembaran open-source-nya, ONScripter. Kalau kamu pernah ingin menerjemahkan VN doujin klasik — jenis yang datang sebagai folder berisi file .dat kriptik dan skrip Shift-JIS — inilah keluarga engine yang secara historis paling menyakitkan untuk dibongkar dengan tangan, dan yang biasanya dilewati oleh alat terjemahan mesin. RuneTranslate kini mendeteksinya, membaca teks skripnya, dan bahkan menerjemahkan teks Jepang yang tergambar di layar judul dan tombol menu.
Ini adalah engine yang baru ditambahkan, jadi sebelum hal lain: jika kamu mengarahkan RuneTranslate ke game NScripter / ONScripter lalu tidak mau memuat atau tidak terdeteksi, tolong beri tahu kami. Lebih lanjut soal itu di akhir.
Apa itu NScripter dan ONScripter sebenarnya
NScripter adalah engine skrip visual novel untuk Windows yang ditulis oleh Naoki Takahashi, dikembangkan kira-kira dari 1999 hingga 2018 (rilis titik terakhirnya, 3.10.102, bertanggal Februari 2018, meski pengerjaan fitur yang berarti melambat drastis setelah awal 2000-an). Engine ini tidak pernah open source, tetapi lisensinya mengizinkan penggunaan pribadi dan komersial bebas royalti, dan itu — dipadukan dengan pemaket arsip bawaan serta bahasa skrip yang kuat dan terkenal tingkat-rendah — menjadikannya salah satu engine VN paling banyak dipakai di Jepang pada masa puncaknya. Studio komersial seperti Nekonekosoft mengandalkannya hampir sepenuhnya, dan komunitas doujin memujanya.
ONScripter adalah proyek tersendiri yang independen: reimplementasi open-source (GPL) dari runtime NScripter, dimulai pada 2002 oleh seorang programmer yang dikenal sebagai Ogapee. Dibangun di atas SDL dan bertujuan drop-in-kompatibel dengan game NScripter, tetapi berjalan di tempat yang tak pernah bisa dijangkau NScripter — Linux, macOS, BSD, Android, dan lainnya. Karena terbuka dan bisa dimodifikasi, komunitas lokalisasi berbahasa Inggris mengadopsinya sebagai engine de-facto untuk merilis game NScripter terjemahan, dan sederet fork menambahkan dukungan bahasa Barat: patch karakter 1-byte buatan Chendo pada 2004, ONScripter-EN (ONS-EN) buatan Haeleth dan Ponscripter* untuk font Unicode proporsional, pemeliharaan lanjutan oleh Uncle Mion, serta branch yang dihidupkan kembali oleh insani untuk build modern.
Jadi singkatnya: NScripter adalah engine Windows tertutup asli tempat game-game itu dibuat; ONScripter (dan ONS-EN / Ponscripter) adalah runtime terbuka lintas-platform tempat penerjemah fan benar-benar menjalankan build terjemahan mereka. RuneTranslate bekerja dari skrip dan aset game, jadi ia mencakup judul dari kedua kubu.
Kenapa game-game ini begitu sulit diterjemahkan
Dibandingkan engine modern seperti Ren'Py atau Kirikiri, NScripter / ONScripter adalah ladang ranjau berisi keanehan khas era engine-nya. Empat di antaranya membuatnya jadi tembok bagi penerjemah manual maupun alat terjemahan mesin yang naif:
- Pengkodean Shift-JIS / CP932. Skrip dan file data lawas dikodekan dalam Shift-JIS (varian Microsoft, CP932), pengkodean double-byte Jepang yang lama. Salah mendekodenya dan kamu dapat mojibake; mengkodekan ulang secara ceroboh dan sebagian runtime lama merusak memori lalu crash. Penerjemah harus mendeteksi dan membolak-balik CP932 dengan benar — skrip native modern bisa UTF-8, tetapi katalog lamanya CP932.
- `nscript.dat` yang diobfuskasi XOR-0x84. Skrip terkompilasi biasanya ada di
nscript.dat(ataupscript.datdi Ponscripter), di mana setiap byte di-XOR terhadap byte konstan0x84. Ini bukan enkripsi — dokumentasinya tegas menyatakan ini tidak memberi keamanan apa pun, hanya penjaga dari spoiler tak sengaja — tetapi kamu juga tidak bisa sekadar membukanya di editor teks. Kamu harus meng-un-XOR-nya, menyunting teks Shift-JIS di dalamnya, lalu meng-XOR-nya kembali saat menyimpan. (Sebagai alternatif, game bisa merilis skrip teks polos0.txt/.u, atau skrip di dalam arsip.nsa/.sar.) - Teks yang tercetak ke dalam gambar seni. Layar judul, menu, dan tombol sering kali berupa bitmap pra-render — NScripter bahkan mewajibkan sebagian seni berformat BMP — sehingga teks Jepang di atasnya adalah piksel, bukan string. Ekstraktor string tak bisa menyentuhnya.
- Yang halus: baris yang diawali huruf Latin di-parse ulang sebagai perintah. Parser NScripter memulai setiap baris dalam mode perintah. Secara historis itu aman karena engine hanya menerima Jepang dua-byte, sehingga setiap baris yang ditampilkan jelas berupa teks. Begitu kamu memasukkan Inggris satu-byte, sebuah baris yang diawali huruf Latin tampak persis seperti perintah skrip dan engine mencoba mengeksekusinya — merusak game. Perbaikan dari komunitas adalah penanda teks khusus (backtick `
`di ONScripter lawas; Ponscripter belakangan pindah ke^`) yang memaksa mode teks untuk sisa baris. Cari-dan-ganti Jepang dengan Inggris secara naif menghasilkan baris yang salah dibaca engine sebagai perintah.
Jebakan terakhir itulah persis alasan proyek fan awal (Gin'iro, Mizuiro) terpaksa memakai karakter Latin dua-byte — NScripter asli tak mau menerima input satu-byte sama sekali — dan alasan penerjemah generik yang tak memahami engine justru merusak skripnya.
Apa yang dilakukan RuneTranslate sekarang
RuneTranslate memperlakukan NScripter / ONScripter sebagai engine kelas satu dan menangani kedua sisi masalahnya:
- Teks skrip. Ia membaca skrip game — file teks polos lepas (
0.txtdan sejenisnya) ataunscript.datyang diobfuskasi dengan XOR0x84— mendekode dialog Shift-JIS / CP932, mendaftar setiap baris yang bisa diterjemahkan di editor, dan saat ekspor menulis kembali skrip dalam bentuk yang diharapkan engine, menerapkan ulang obfuskasi XOR0x84bila.dataslinya memakainya. Ia juga menerapkan penanda teks satu-byte secara otomatis agar Inggris terjemahanmu tidak salah dibaca sebagai perintah. (Skrip yang berada hanya di dalam arsip.nsa/.sar, tanpa salinan lepas di akar game, belum dibaca — lihat batasan di bawah.) - Teks gambar yang tercetak. Teks Jepang di layar judul, menu, dan tombol — piksel, bukan string — ditangani oleh terjemahan teks-gambar milik RuneTranslate: kotaki kata-katanya, kenali, terjemahkan dengan penyedia milikmu sendiri, dan panggang ulang hasilnya agar game memuat seni terjemahanmu.
Jepang → Inggris adalah titik manisnya — itulah inti dari seluruh sejarah terjemahan fan engine ini, dan pada skrip Shift-JIS lawas, bahasa target non-Latin dibatasi oleh apa yang bisa dirender font engine — tetapi kamu bisa menargetkan salah satu dari 30+ bahasa.
Apa yang kamu butuhkan
- RuneTranslate untuk Windows — gratis, setiap engine dan penyedia terbuka.
- Folder game NScripter atau ONScripter. Ini adalah direktori yang berisi
.exegame (atau biner ONScripter) beserta skrip dan asetnya — biasanyanscript.dat, sebuah0.txtlepas, dan satu atau beberapa arsip.nsa/.sar. - Bahasa target — Inggris, Spanyol, Prancis, Jerman, Portugis, Rusia, Tionghoa, Italia, Turki, Vietnam, dan 20+ lainnya.
- Satu penyedia terjemahan. Google Translate gratis langsung jalan; DeepL punya tingkat gratis; OpenAI, Anthropic, model lokal (Ollama / LM Studio), dan API apa pun yang kompatibel dengan OpenAI memakai kunci milikmu sendiri. Game-game ini padat dialog dan peka nada, jadi LLM (OpenAI / Anthropic) atau DeepL biasanya paling enak dibaca.
Langkah 1: Buka folder game
Jalankan RuneTranslate, klik Proyek baru, dan arahkan ke direktori game NScripter / ONScripter. Deteksi engine berjalan otomatis — ketika ia melihat nscript.dat, skrip 0.txt lepas, atau arsip .nsa milik engine, ia mengenali proyek sebagai NScripter / ONScripter. Folder game aslimu tidak pernah diubah.
Langkah 2: Bagaimana skrip dibaca
RuneTranslate membaca skrip yang dirilis game secara lepas di akarnya dan mendekodekannya untukmu:
- `nscript.dat` yang diobfuskasi — di-un-XOR terhadap
0x84dan dibaca sebagai Shift-JIS, jadi kamu tak pernah menjalankan langkahnsdecterpisah. - Skrip teks polos lepas (
0.txtdan sejenisnya) — dibaca langsung. - Gambar terarsip — ditarik dari arsip
.nsa/.sargame untuk langkah teks-gambar di bawah. (Skripnya sendiri dibaca dari file akar lepas di atas; skrip yang dikemas hanya di dalam arsip belum dibaca.)
Dialog dan teks yang ditampilkan didaftar di editor, dikelompokkan per file. Markup engine dan token perintah disamarkan di balik placeholder numerik sebelum apa pun sampai ke penyedia, lalu dipulihkan saat keluar — dan penanda teks satu-byte diterapkan di tempat yang membutuhkannya, agar engine tidak salah mengira baris Inggris terjemahanmu sebagai perintah.
Langkah 3: Terjemahkan
Pilih penyedia lalu jalankan. Untuk visual novel, LLM (OpenAI / Anthropic) paling baik untuk suara dan nada karakter, DeepL cepat dan bersih untuk narasi, dan Google Translate gratis cukup untuk string menu pendek. Susun glosarium untuk para tokoh dan istilah berulang sejak awal agar nama tampil identik di seluruh game — lihat Glosarium 101. Setelah selesai, satu putaran opsional dengan penghalus AI membaca ulang tiap baris dalam konteks dan merapikan frasa kaku dan harfiah yang cenderung ditinggalkan terjemahan mesin.
Langkah 4: Terjemahkan teks di dalam gambar
Karena begitu banyak UI NScripter berupa seni pra-render, langkah ini lebih penting di sini daripada di kebanyakan engine. Buka gambar judul atau menu di proyek, tarik kotak mengelilingi tiap potongan teks Jepang, kenali, terjemahkan dengan penyedia yang sama yang kamu pakai untuk dialog, dan saat ekspor RuneTranslate memanggang terjemahan kembali ke dalam gambar lalu menulisnya secara lepas ke salinan yang diekspor, sehingga engine memuat seni terjemahanmu di atas aslinya yang terarsip. (Folder game aslimu tetap utuh; seni terkompresi SPB dan beberapa varian gambar eksotis masih diperkuat — laporkan apa pun yang tampak janggal.) Panduan lengkap: terjemahan teks-gambar.
Langkah 5: Ekspor salinan siap main
Klik Ekspor. RuneTranslate menulis salinan terjemahan game — skrip dikodekan ulang ke Shift-JIS / CP932 dan diobfuskasi ulang dengan XOR 0x84 bila .dat aslinya memakainya, ditulis sebagai skrip lepas yang dimuat engine di atas salinan terarsip mana pun, ditambah gambar terjemahan apa pun yang ditulis lepas di sampingnya. Jalankan game dan ia dimainkan dalam bahasa targetmu, entah kamu menjalankannya di runtime NScripter asli atau di ONScripter / ONScripter-EN.
Batasan yang diketahui
- Obfuskasi XOR-0x84 sudah ditangani, tetapi game yang dilindungi dengan enkripsi kustom yang sesungguhnya (bukan obfuskasi standar) mungkin tidak mau terbuka.
- Skrip yang dikemas hanya di dalam arsip
.nsa/.sar, tanpanscript.dat/0.txtlepas di akar game, belum diekstrak — kebanyakan game merilis skrip secara lepas, tetapi sebagian tidak. - Terjemahan teks-gambar menjangkau teks Jepang yang tergambar di menu, judul, dan tombol, tetapi seni terkompresi SPB dan seni logo bergaya berat mungkin masih perlu sentuhan manual.
- Engine persisnya bisa berbeda per rilis — beberapa judul yang umum dikaitkan dengan NScripter (misalnya bagian dari seri When They Cry) dibuat di NScripter dan umum dijalankan lewat ONScripter, tetapi rilis ulang Steam / konsol tertentu terkadang direkayasa ulang. Selalu verifikasi pada salinanmu sendiri.
Ini masih baru — beri tahu kami apa yang rusak
Engine ini adalah tambahan baru, bukan yang sudah teruji medan tempur. NScripter / ONScripter punya berpuluh tahun varian, fork, dan keanehan per-studio, dan kami belum melihat semuanya. Jadi jika kamu mengarahkan RuneTranslate ke game NScripter atau ONScripter lalu tidak terdeteksi, tidak memuat, atau mengekspor sesuatu yang tak mau dibuka runtime, tolong laporkan — nama game dan cara pengemasannya (0.txt lepas, nscript.dat, arsip .nsa) justru itulah yang membantu kami memperkuatnya paling cepat.
Unduh RuneTranslate, arahkan ke VN klasik yang sejak lama ingin kamu baca, dan cobalah. Untuk melihat engine VN yang lebih modern, baca panduan Ren'Py berikutnya.
Siap mencoba RuneTranslate?
Tier gratis membuka setiap engine + setiap penyedia terjemahan. Supporter ($3/mo) membuka kecepatan penuh.
Unduh untuk Windows