RuneTranslate が AliceSoft System 系ゲーム(Rance、Evenicle…)に対応
RuneTranslate が AliceSoft の System 3.x および System 4 のゲーム — Rance シリーズ、Evenicle、Daiakuji をはじめとする広大なカタログ — を英語と30以上の言語に翻訳できるようになりました。純粋な TypeScript で .ald / .afa アーカイブを読み込み、System39.ain(System 3.x)またはゲームごとの .ain(System 4、zlib 圧縮および MT19937 暗号化コンテナを含む)からメッセージテキストを抽出し、loose-file 上書き方式で翻訳済みコピーを書き出します。できたてのベストエフォート対応です — 数行だけ翻訳して書き出したビルドを確認してから共有してください。
RuneTranslate が、日本の PC ゲームで最大規模かつ最も要望の多かったカタログのひとつを読めるようになりました。AliceSoft の System エンジン — Rance シリーズ全体、Evenicle、Daiakuji、闘神都市シリーズ、そして数十年分のリリースを動かしてきたエンジン系です。Rance のゲームフォルダを開いて、.ald ファイルの山と、中身が何も読めない System39.ain や Rance6.ain を目にし、セリフが一体どこにあるのか見当もつかなかったことがあるなら — それがこのエンジンです。RuneTranslate はこれを検出し、純粋な TypeScript でアーカイブを開き、メッセージテキストがどこに隠れていても見つけ出し、ゲームが自力で読み込む翻訳済みコピーを書き出します。RuneTranslate が対応する最新のエンジンであり、14個目です。
これはできたてのエンジンなので、正直なところから先にお伝えします。AliceSoft 対応は作られたばかりです。抽出とバイト単位で正確な書き戻しは実機 — Rance 5D、Sengoku Rance、Rance VI — で検証済みですが、完全に翻訳したビルドを起動してゲーム内で正しく表示されるか確認する最後の段階は、まだ検証中です。ですのでまず何よりも、RuneTranslate を AliceSoft のゲームに向けて、検出されない・開けない・ゲームが読み込めないものが書き出される、といったことがあれば、ぜひお知らせください。その方法は末尾で説明します。
AliceSoft の「System」エンジンとは実際に何か
AliceSoft は自社で独自エンジンを開発し、ほぼすべての作品に使ってきました。実のところ、これはひとつのブランドの下にある2つのエンジンです。
- System 3.x — 往年のタイトル群。小さなインタープリタ(
alice.exe/System39.exe)がコンパイル済みのシナリオファイルを実行し、System39.ainのインデックスと、データを収めた.aldアーカイブがそろっています。 - System 4 — 現代のタイトル群。
System40.exeインタープリタが、ゲームごとの.ainを実行します。これはまるごとコンパイルされたプログラムイメージであり、.aldやより新しい.afaアーカイブと並んで存在します。
どちらもプレイヤーに見えるテキストを、Notepad では開けない場所に保存しています。これこそが、この膨大なカタログが通常の機械翻訳ツールの手の届かないところにあり続けてきた理由です。
AliceSoft のゲームが翻訳しづらかった理由
- セリフは探しそうな場所にありません。 System 3.x では、コンパイル済みのシナリオファイル(
.SCO)にはセリフがまったく含まれておらず、各メッセージを番号で参照しているだけです。実際の行はSystem39.ainのMSGIセクションにあり、そのセクションはビット回転がかけられているため、普通のテキスト検索では何も見つかりません。 - System 4 はすべてを包み込みます。
.ainは完全なコンパイル済みプログラムで、2種類のコンテナのいずれかで出荷されます。zlib 圧縮されたもの(「AI2」形式)か、完全に暗号化されたもの(ファイル全体にかかる MT19937 キーストリーム)です。読めるものにたどり着くには、まずコンテナを解く必要があります。 - テキストはスクリプトではなくプログラムの中にあります。 解いた後も、メッセージプールと文字列プールはバイトコード、関数、グローバル、型テーブルの間に埋もれています。それらを見つけるには、プログラム構造全体をセクションごとにたどるしかありません。
- すべての文字列がセリフとは限りません。 行の中にはフォーマット文字列、デバッグテキスト、そしてゲームロジックが依存する識別子が混ざっています。そのひとつをうっかり翻訳すると、どこかが静かに壊れます。
それが、RuneTranslate が今あなたの代わりに行う作業です — アーカイブリーダー、難読化解除、コンテナ展開、プログラム走査、そしてセリフをエンジン内部の文字列と見分けるガードまで。
RuneTranslate が今できること
RuneTranslate は AliceSoft を一級のエンジンとして扱い、パイプライン全体を純粋な TypeScript で処理します — GARbro も、外部ツールも、Python サイドカーも不要で、インストールするものは何もありません。
- `.ald` / `.afa` アーカイブを直接読みます。 Alice Linked Data と Alice File Archive のコンテナを自前で開き、中身を一覧表示します。
- System 3.x:隠れたメッセージを見つけます。
System39.ainのMSGIセクションを難読化解除し、すべての行をエディタに一覧表示します。 - System 4:両方のコンテナを展開します。
.ainが zlib 圧縮の AI2 形式でも暗号化されたものでも、RuneTranslate はそれを展開し、プログラムイメージを走査して、メッセージプール(セリフ)と文字列プールを取り出します。 - セリフと機構を見分けます。 フォーマット指定子、デバッグ文字列、識別子は表示されますがデフォルトで除外され — 手動で選ぶ赤い行として示されます — プログラムが依存するものをうっかり翻訳してしまうことがありません。
- 参照を壊さずに書き戻します。 ゲームのバイトコードは各行を位置ではなくインデックスで指しているため、翻訳は何文字であっても、すべてがきちんと整合します。書き出し時にはメッセージデータを書き直し — System 3.x はその場で、System 4 は元のコンテナを再パックして — 何も変更していなければ結果はバイト単位で同一です。
日本語 → 英語が最も得意ですが、30以上の言語のいずれも対象にできます — スペイン語、フランス語、ドイツ語、ポルトガル語、ロシア語、中国語、イタリア語、トルコ語、ベトナム語など。
必要なもの
- Windows 版 RuneTranslate — 無料。すべてのエンジンとプロバイダがアンロックされています(無料プランは機能ではなく速度が絞られます)。
- AliceSoft のゲームフォルダ — インタープリタ(System 3.x なら
alice.exe/System39.exe、System 4 ならSystem40.exe)、System39.ainまたはゲームごとの.ain、そして.ald/.afaアーカイブが入ったディレクトリ。 - 対象言語 — 英語、スペイン語、フランス語、ドイツ語、ポルトガル語、ロシア語、中国語、イタリア語、トルコ語、ベトナム語、ほか20以上。
- 翻訳プロバイダを1つ。無料の Google Translate はそのまま使え、DeepL には無料枠があり、OpenAI、Anthropic、ローカルモデル、そして OpenAI 互換 API はいずれも自分の API キーを使います。Rance とその仲間はセリフが多いので、たいていは LLM(OpenAI / Anthropic)か DeepL が最も自然に読めます。
ステップ1:ゲームフォルダを開く
RuneTranslate を起動し、新規プロジェクトをクリックして、AliceSoft のゲームディレクトリを指定します。エンジン検出は自動で走ります — .ald / .afa アーカイブとともにある System39/40 インタープリタを見つけ、プロジェクトを AliceSoft と認識し、どの System バージョンかを教えてくれます。元のゲームフォルダは決して変更されません。
ステップ2:テキストの読み込み方
System 3.x のゲームでは、RuneTranslate が System39.ain の MSGI メッセージセクションを難読化解除し、すべての行を一覧表示します。System 4 のゲームでは、.ain コンテナを — zlib 圧縮でも暗号化でも — 展開し、プログラムイメージを走査して、メッセージプールと文字列プールを取り出します。どちらの場合も、エンジン内部の文字列(フォーマット指定子、デバッグテキスト、識別子)は表示されますがデフォルトで除外されるので、プレイヤーに見えるものだけを翻訳できます。
ステップ3:翻訳する
プロバイダを選んで実行します。これらのゲームでは、キャラクターの声色やこのシリーズ特有の名高い大げさなトーンには LLM(OpenAI / Anthropic)が最適で、ナレーションには DeepL が速くてクリーン、短いメニュー文字列やアイテム名には無料の Google Translate で十分です。登場人物や繰り返し出てくる用語は事前に用語集に登録しておくと、ゲーム全体で名前が同一に表示されます — Glossary 101 を参照してください。仕上げに、AI リファイナーによる任意の一手間を加えると、各行を文脈の中で読み直し、機械翻訳が残しがちな硬い直訳調の言い回しを整えてくれます。
ステップ4:すぐ遊べるコピーを書き出す
エクスポートをクリックします。RuneTranslate は、再構築した .ain をその隣に単体ファイルとして置いた、翻訳済みのゲームコピーを書き出します。アーカイブの再パックはありません — インタープリタが翻訳済みの .ain を読み込むので、ゲームはあなたの翻訳を読むだけです。実行すれば、対象言語でプレイできます。
既知の制限
- AliceSoft のテキストは Shift-JIS(cp932)です。 英語や、その他 cp932 で表現できる対象言語はきれいに書き出され — RuneTranslate は各行のフォントを正規化するので、スマート約物やアクセント付きラテン文字も生き残ります。cp932 の範囲外の文字を含む対象言語(拡張キリル、韓国語、繁体字中国語)は、まだ自動化されていないゲームフォント/エンコーディングのハックが必要です。
- 完全な翻訳のゲーム内読み込みは、まだ確認中です。 抽出と、変更なしのバイト単位で正確なラウンドトリップは Rance 5D、Sengoku Rance、Rance VI で検証済みですが、完全に翻訳したビルドを最初から最後まで起動する部分は、まだ検証中です。ですので、書き出したコピーをまず確認してください。
- System 4 は `.ain` のバージョン4と5で検証済みです。 一部の最近のタイトルが使うより新しい v8 以降のプログラム形式は、ベストエフォートで対応していますが、まだゲームでの検証はできていません。暗号化された
.afav3 のアーカイブインデックスも同様に、ベストエフォートでデコードされます。 - 画像アートに焼き込まれたテキスト — ビットマップとして描かれたタイトル画面や CG — はスクリプトのテキストではなくピクセルです。それには 画像内テキスト翻訳 を参照してください。
できたての機能です — 壊れたところを教えてください
はっきりと繰り返す価値があります。AliceSoft 対応は新しく追加されたばかりです。アーカイブリーダー、System 3.x と System 4 のテキスト抽出、そしてバイト単位で正確な書き戻しは、作り込まれユニットテスト済みで、実際の Rance ゲームで検証されています — しかし AliceSoft のカタログは数十年にわたり、私たちがまだすべて見てはいない多くの形式リビジョンがあります。ですので、RuneTranslate を AliceSoft のゲームに向けて、検出されない・アーカイブが開けない・何も抽出されない・ゲームが読み込めないものが書き出される、といったことがあれば、私たちの Discord で報告してください — ゲーム名と、どの System バージョンかこそが、私たちが最速で堅牢にするのに役立ちます。
RuneTranslate をダウンロードして、ずっと読みたかったあの Rance のゲームに向けて、試してみてください。私たちがもうひとつのアーカイブベースのエンジンをどう扱っているかを見るには、次に YU-RIS 解説 を読んでみてください。
RuneTranslate を試してみませんか?
無料プランですべてのエンジンとすべての翻訳プロバイダーが使えます。Supporter(月額 $3)ならフルスピードで翻訳できます。
Windows 版をダウンロード