「夜明け前より瑠璃色な」がエラーも出ずに終了するのをレジストリで直す(英語でインストールされたWindows)

この記事は約4分で読めます。

はじめに

 「夜明け前より瑠璃色な -Brighter than dawning blue-」と「夜明け前より瑠璃色な -Moonlight Cradle-」をWindows 11にインストールしたところ、どちらもエラー表示もなく終了してしまった。

 メインの自作PCのWindows11では普通に動くのに、GMKtecのミニPCでは起動しなかった。orz

 原因は、Windowsのインストール言語が英語だったことだった。表示は日本語(GMKtecは初期セットアップの画面上は日本語で表示されていたが、OS自体は英語でインスコされていたらしい。罠過ぎるよママン…)にしていても、ゲームはそこを見ていたらしい。Windows11のインストール言語をレジストリを書き換えて日本語にしたら動くようになったので、手順をメモしておく。正式な手順ではないので、試す場合は自己責任で。
 一番いいのは日本語のWindows11インストールメディアを作ってクリーンインストールすること。ただ、こっちはボンディングやらKonomiTVやらセットアップ済みでそんなことはやってられないので、無理やりレジストリ書き換えで対応した。

環境

  • Windows 11 Pro(Build 26300)
  • 英語でインストールしたWindowsに日本語を追加して使用(表示言語、システムロケールともに日本語)

症状

 BGI.exe を起動しても、約1秒後にウィンドウも出ないまま終了する。終了コードは0で、イベントビューアーにもエラーは記録されない。何も手がかりがない。

原因

 Claudeに起動時の動きを追わせたところ、ゲームは起動直後にWindowsの言語を次の3項目で調べていて、1つでも日本語でなければ、メッセージも出さずに終了していた。

確認している項目この環境の値
GetUserDefaultLCID(ユーザーのロケール)日本語
GetSystemDefaultLangID(システムのロケール)日本語
GetSystemDefaultUILanguage(システムの既定の表示言語)英語

 ややこしいのは3つ目で、システム表示言語の設定はすでに ja-JP だったのに、この値は英語のままだった。レジストリの InstallLanguage が 0409(英語)で、インストール言語と同じ値が返っていたようだ。で、ゲーム側はこれが日本語以外だと問答無用で落ちる仕様でハマっていた。

対処:InstallLanguageを日本語に書き換える

 管理者のPowerShellで操作する。念のため、先に復元ポイントを作っておく。

  1. 今の設定をデスクトップに保存する
  2. InstallLanguage を 0411(日本語)に書き換える
  3. Windowsを再起動する
  4. BGI.exe を直接起動する
reg export "HKLM\SYSTEM\CurrentControlSet\Control\Nls\Language" "$env:USERPROFILE\Desktop\Nls_Language_backup.reg"
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Nls\Language" /v InstallLanguage /t REG_SZ /d 0411 /f

 再起動後は GetSystemDefaultUILanguage の値が日本語に変わり、起動ツールなどを使わなくてもMoonlight Cradleが BGI.exe から直接起動した。

 元に戻すときは、値を 0409 にして再起動する。

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Nls\Language" /v InstallLanguage /t REG_SZ /d 0409 /f

注意点

 書き換わるのはレジストリの値だけで、Windowsの中身は英語ベースのままである。レジストリの値とシステムの不一致で、大型アップデートや修復で不具合が出たり、レジストリの値が英語に戻ったりする可能性がある。(記事を一通り書き終わって読み直してたら怖くなってきた。早めにOS入れ直そうかな…)

 日本語版のISOで上書きインストールする方法も調べたが、言語が違うと「アプリも保持」を選べないという報告が多く、実質的に入れ直しになりそうなのでやめた。

 Windowsの設定を変えたくない場合は、ゲームのプロセスにだけ「日本語」と返す小さな起動パッチツールをClaudeに作らせる手もある。実際にBrighter than dawning blueはこの方法でも起動した。

まとめ

 エラーも出さずに終了するゲームは、壊れているとは限らず自分で判断して終了していることがある。特にAugust製のゲームが無言で落ちるときは、InstallLanguage を確認してみると良さげ。

コメント