Skip to content

Locale Emulator + Steam 整合(日系遊戲轉區)

透過 PowerShell + ps2exe,將需要轉區的日系遊戲包裝成 .exe,加入 Steam 庫並正確追蹤遊玩時間。

概述

日系遊戲(尤其是視覺小說與同人 RPG)通常以 Shift-JIS 編碼處理檔案路徑,在非日文 Windows 系統上直接啟動會出現亂碼或閃退。Locale Emulator 以 hook 方式攔截系統 locale 呼叫,讓遊戲認為系統語言是日文,而不需要真的更改 Windows 系統語言設定。

為了讓 Steam 正確追蹤遊玩時間並顯示遊戲名稱,需要將「用 Locale Emulator 啟動遊戲」這個動作包裝成 .exe,作為 Steam「非 Steam 遊戲」加入庫。直接加入 .bat 在含中文 / 日文路徑時會有亂碼問題;透過 PowerShell + ps2exe 轉換可完全避免此問題。

核心內容

前置需求

工具說明
Locale Emulator轉區工具,需已安裝(GitHub: xupefei/Locale-Emulator)
PowerShell 5+Windows 內建,無需額外安裝
ps2exe.ps1 轉換為 .exeInstall-Module ps2exe -Scope CurrentUser

流程概覽

  1. 確認 LEProc.exe -run 能正常啟動遊戲
  2. 用 PowerShell 建立 .ps1 啟動腳本(UTF-8 with BOM 編碼)
  3. ps2exe 將 .ps1 轉換為 .exe(-noconsole 隱藏黑色視窗)
  4. Steam → 新增非 Steam 遊戲 → 加入 .exe → 改名

為什麼必須用 UTF-8 with BOM

ps2exe 從 .ps1 讀取腳本時,如果沒有 BOM 會以 ANSI 編碼解讀,中文 / 日文路徑會變成亂碼。透過 Out-File -Encoding utf8 輸出(PowerShell 5 的 utf8 output 自動加 BOM),或 VS Code 另存選「UTF-8 with BOM」,確保編碼正確。

不要用記事本手動存檔——記事本預設以 UTF-8 without BOM 存檔,會導致路徑亂碼。

Steam 遊玩時間統計

Steam 追蹤的是 Game_launcher.exe 的執行時間。由於這個 exe 就是啟動遊戲的 process,統計基本準確,與直接用 Steam 啟動的原生遊戲體驗相近。

關鍵要點

  • Locale Emulator 以 hook 方式轉區,不需更改 Windows 系統語言
  • ps2exe 是 .ps1 → .exe 的關鍵橋樑,避免 .bat 的中文 / 日文路徑問題
  • -noconsole 參數隱藏黑色 PowerShell 視窗,讓啟動體驗與原生遊戲一致
  • 每款遊戲重複步驟二至四;ps2exe 只需安裝一次
  • 封面圖可至 SteamGridDB 下載後手動設定

部署設定參考

安裝 ps2exe

powershell
Install-Module ps2exe -Scope CurrentUser
# 出現信任提示輸入 Y

步驟一:確認 LEProc.exe 可正常啟動

powershell
& "E:\Software\Locale Emulator 程序轉區工具\Locale.Emulator.2.5.0.1\LEProc.exe" -run "C:\path\to\Game.exe"

遊戲正常啟動後繼續下一步。

步驟二:建立 .ps1 啟動腳本(UTF-8 with BOM)

powershell
$content = '& "E:\Software\Locale Emulator 程序轉區工具\Locale.Emulator.2.5.0.1\LEProc.exe" -run "C:\path\to\Game.exe"'
$content | Out-File "C:\path\to\Game_launcher.ps1" -Encoding utf8

步驟三:轉換為 .exe

powershell
ps2exe "C:\path\to\Game_launcher.ps1" "C:\path\to\Game_launcher.exe" -noconsole
參數說明
-noconsole執行時不顯示黑色 PowerShell 視窗

轉換完成後,雙擊 Game_launcher.exe 確認遊戲可正常啟動。

步驟四:加入 Steam

  1. 開啟 Steam → 左下角 新增遊戲 → 新增非 Steam 遊戲
  2. 點選 瀏覽,選取 Game_launcher.exe
  3. 加入後,右鍵該遊戲 → 內容 → 將名稱改為正確遊戲名稱
  4. 封面圖至 SteamGridDB 下載後手動設定

完整範例(もんむすくえすと!RPG)

powershell
# 步驟二:建立 ps1
$content = '& "E:\Software\Locale Emulator 程序轉區工具\Locale.Emulator.2.5.0.1\LEProc.exe" -run "C:\Users\silve\Desktop\Dp.SSD\Galgame\もんむすくえすと!RPG中章 ver2.23\Game.exe"'
$content | Out-File "C:\Users\silve\Desktop\Dp.SSD\Galgame\もんむすくえすと!RPG中章 ver2.23\Game_launcher.ps1" -Encoding utf8

# 步驟三:轉換為 exe
ps2exe "C:\Users\silve\Desktop\Dp.SSD\Galgame\もんむすくえすと!RPG中章 ver2.23\Game_launcher.ps1" `
       "C:\Users\silve\Desktop\Dp.SSD\Galgame\もんむすくえすと!RPG中章 ver2.23\Game_launcher.exe" `
       -noconsole

相關概念

來源