Appearance
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 轉換為 .exe(Install-Module ps2exe -Scope CurrentUser) |
流程概覽
- 確認
LEProc.exe -run能正常啟動遊戲 - 用 PowerShell 建立 .ps1 啟動腳本(UTF-8 with BOM 編碼)
- ps2exe 將 .ps1 轉換為 .exe(
-noconsole隱藏黑色視窗) - 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
- 開啟 Steam → 左下角 新增遊戲 → 新增非 Steam 遊戲
- 點選 瀏覽,選取
Game_launcher.exe - 加入後,右鍵該遊戲 → 內容 → 將名稱改為正確遊戲名稱
- 封面圖至 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相關概念
- Pop!_OS 上執行 Windows 日系遊戲(Bottles / Wine) — Linux 環境的日系遊戲轉區方案(Wine + Bottles)
- PowerShell Terminal 美化指南 — PowerShell 環境設定與美化