v83 原生只有 800×600 解析度,在現代螢幕上非常小。這篇整理直接修改客戶端 exe 的做法(靜態修改),把解析度改成 1024×768、1280×720 等尺寸。

如果不想碰 Hex 編輯,直接用支援遊戲內即時調整解析度的 Kaentake 會更省事——本篇比較適合想理解原理、或想自己客製解析度數值的讀者。

靜態修改 vs 動態解析度

本篇介紹的是靜態修改:直接改 exe 裡的位元組,改完固定在某個解析度,每次要換解析度都要重新修改一次 exe。若想要「遊戲內直接選解析度」的動態效果,純 localhost 做不到,得靠 DLL 注入(如 Kaentake、Ezorsia V2)在執行期動態處理。

解析度數值換算

所有地址的解析度值都以小端序(Little Endian)4 bytes 填入:

解析度WidthWidth(LE 4 bytes)HeightHeight(LE 4 bytes)
800×600(原始)0x32020 03 00 000x25858 02 00 00
1024×7680x40000 04 00 000x30000 03 00 00
1280×7200x50000 05 00 000x2D0D0 02 00 00
1280×9600x50000 05 00 000x3C0C0 03 00 00

必改:核心解析度地址

這兩個地址是客戶端初始化畫面時使用的,必須修改,否則其他地址改再多,遊戲還是以 800×600 啟動:

地址說明
0x009F7B1D + 1screenHeight(高度值)
0x009F7B23 + 1screenWidth(寬度值)

OllyDbg 操作步驟(以 1024×768 為例):

  1. Ctrl+G 輸入 9F7B1D,會看到類似 PUSH 258 的指令(258 是 600 的十六進位)
  2. 右鍵 → Assemble → 改為 PUSH 300(768 = 0x300
  3. 移到 9F7B23,同樣改為 PUSH 400(1024 = 0x400
  4. 右鍵 → Copy to executable → All modifications → Save file

選改:截圖記憶體地址

截圖功能會分配一個大小為 4 × 寬 × 高 的緩衝區。解析度改變後如果沒同步更新這裡,玩家截圖時會直接崩潰:

地址說明
0x00744DA6 + 1截圖 buffer 大小 = 4 × screenWidth × screenHeight

以 1024×768 為例:4 × 1024 × 768 = 3,145,728 = 0x300000,填入 00 00 30 00。如果你的私服不提供截圖功能,可以先跳過這個地址。

選改:UI 位置地址

以下地址控制各種 UI 元素的位置計算,若不修改,部分 UI 顯示位置會偏移或跑出畫面外:

地址說明1024×768 對應值
0x009F7078 + 1screenHeight(UI layout)00 03 00 00
0x009F707D + 1screenWidth(UI layout)00 04 00 00
0x009E2E85 + 1-(screenHeight/2)80 FE FF FF
0x009E2E8B + 1-(screenWidth/2)00 FE FF FF
0x008D1FF4 + 1screenHeight-22(底部欄位置)EA 02 00 00
0x008D1FF9 + 1screenWidth(底部欄寬度)00 04 00 00
0x008DE8E5 + 2-(screenWidth-150)(右側面板)96 FC FF FF
0x008DE8EE + 2-(screenHeight-102)(底部面板)66 FD FF FF
0x00BE2738screenWidth/200 02 00 00
0x00BE2DF0screenWidth/2(第二處)00 02 00 00
0x00BE2DF4screenHeight/280 01 00 00

若要改成其他解析度,公式都一樣,換算成小端序4 bytes填入即可。

快速流程總結

text
📋 複製
1. 備份 localhost.exe → localhost_backup.exe
2. 用 OllyDbg 開啟 localhost.exe
3. 改核心地址(必改):9F7B1D、9F7B23
4. 改截圖地址(建議):744DA6
5. 改UI位置地址(可選,UI跑位再改):對照上表逐一修改
6. Copy to executable → Save file
7. 啟動測試,確認解析度與UI都正常

常見問題排查

只改核心地址,遊戲還是800×600:用HxD重新開啟exe確認9F7B1D的值是否真的變了,若沒變通常是「Copy to executable」沒做完整。

新解析度啟動但UI跑位:對照UI位置地址表逐一修改,直到顯示正常。

截圖時崩潰:確認744DA6的值等於4 × 寬 × 高

要改多高的解析度:v83所有UI都是為800×600設計的,建議最多改到1280×960或1280×720,太高的話UI會顯得過小、難以操作。