v83 客戶端是為 Windows XP 設計的 DirectX 8 程式,在 Windows 8/10/11 上執行會遇到幾個已知的相容性問題。這些都不是伺服器的問題,純粹是客戶端跟現代 Windows API 對不上。
| 症狀 | 影響系統 | 原因 |
|---|---|---|
| 啟動時「Parameter is incorrect」(-2147)閃退 | Win8 / 10 / 11 | DirectInput8Create() 時序問題 |
| 打開背包(Inventory)就當機 | 主要在 Win11 | 登錄機碼衝突 |
| 無法正常全螢幕 | Win10 / 11 | DWM 與 DirectX 8 全螢幕模式不相容 |
問題一:啟動閃退「Parameter is incorrect」(-2147)
為什麼會這樣
v83 客戶端在全螢幕模式啟動時會觸發解析度切換,這個切換發生的當下,DirectInput8Create() 的呼叫在圖形環境還沒準備好前就先執行了,導致收到無效參數而崩潰——本質上是新舊 Windows 顯示初始化流程的時序沒對上。
解法A:改成視窗模式(最簡單,推薦)
避開全螢幕解析度切換,就能從根本繞開這個問題。有兩種做法:
方法1:登錄機碼(不用改exe,全版本通用)
- 按
Win+R輸入regedit開啟登錄表編輯器 - 導覽到
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Wizet,沒有的話手動新增MapleStory子資料夾 - 在
MapleStory底下新增一個字串值,命名為EFT,值設為Whaosksckd - 儲存後重新啟動客戶端,按
Alt+Enter即可切換視窗/全螢幕模式
此機碼技巧已在 KMS v1.2.1、JMS131-186、GMS46 驗證有效。也可以把上述操作存成
.reg檔案直接雙擊匯入,比手動點選更快。
方法2:直接修改客戶端的視窗模式地址(進階,效果較確定)
用 OllyDbg 或 HxD 開啟 exe,跳至位址 009F7A9B,將該處指令改為 MOV EAX, 0(HxD 直接改位元組為 B8 00 00 00 00),儲存後客戶端會直接以視窗模式啟動。這個地址修改是 v83 專用,其他版本地址不同。
視窗模式對現代顯示器其實更好用,也更方便 Alt-Tab 切換,大多數私服預設都改成視窗模式。
解法B:dinput8.dll 代理修復(Hook方式)
用一個代理 dinput8.dll 攔截 DirectInput8Create 的呼叫,在真正呼叫前加入 Sleep(2000) 延遲,讓圖形環境有時間完成初始化。這個方案已經有現成的「v83 Custom Localhost Win8/10 fix」版本可以直接下載替換,不需要自己動手改。也可以直接用 Ezorsia V2,它已經內建這個修復。
Sleep方案只是提高成功率、不是100%有效,電腦效能較差時可能還是會偶爾閃退,方案A的視窗模式更穩定。
解法C:MapleDos(暫時方案)
如果沒辦法改 exe,可以用 MapleDos 這個小工具:它會持續監控遊戲視窗,偵測到 -2147 錯誤對話框跳出就自動關閉並重試,直到成功啟動為止。這只是靠反覆重試繞過問題,不是真正修復,比較適合暫時應急。
問題二:Win11 打開背包就當機
原因
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Wizet 底下如果同時存在 Maple(舊殘留機碼)和 MapleStory(客戶端實際讀取)兩個子資料夾,Win11 的機碼存取方式和舊版不同,讀取背包相關設定時會失敗並直接崩潰。這和有沒有用系統管理員身分執行無關,即使用管理員權限執行一樣會當機。
解法:刪除 Wizet 登錄機碼
- 按
Win+R輸入regedit - 導覽到
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Wizet - 右鍵
Wizet資料夾 → 刪除(只刪這個資料夾,不要動其他機碼) - 重新啟動客戶端,會自動重建正確的
MapleStory子資料夾結構,背包就能正常打開
如果找不到這個路徑,改檢查 HKEY_CURRENT_USER\Software\Wizet 是否有同樣的衝突結構,一樣刪除即可。
常見問題排查順序
不想深入研究技術細節的話,照這個順序處理:
- 改用已內建修正的「v83 Custom Localhost Win8/10 fix」版本,或直接用 Ezorsia V2
- Win11 玩家打開背包崩潰 → 刪除
Wizet登錄機碼 - 仍有 -2147 問題(少數硬體)→ 用 MapleDos 輔助重試
如果你在架站,也可以把「檢查並自動刪除 Wizet 舊機碼」這件事寫進自己的登入器啟動流程裡,玩家就完全不用手動操作 regedit——這部分屬於自製登入器開發,會在路線 B 另外說明。