名稱:倉庫番-玩家復仇版 (Sokoban - Revenge,中文版) 簡介:大宇1995年出品的益智解謎遊戲,共有306關,玩家必須依各關倉庫 內的地形,將各箱子推到指定的位置上。除了遊戲內定的關數外,玩家 也可以自行設計關卡。本遊戲和一代史上完整版可說是幾乎一模一樣, 所差異的只是關卡的設計不同而已。整個遊戲為一單純的益智解謎遊戲, 是否好玩要看玩家的喜好而定。 保護:顏色密碼,破解碼不明。 修改:DosBox當機問題: 1.不可將執行檔解壓縮,因為遊戲一開始會載入主程式檔到EMS解壓出字形,若 先行解壓,會造成字形資訊不正確,使得搜尋字形資訊的程式當掉。因此必 須撰寫常駐程式來解決。 2.DosBox第一個當機點,是在遊戲程式控制8042鍵盤控制器觸發int 09h,然後 檢視BIOS資料區裡的40:97資訊是否有正確設立。DosBox似乎沒有正確處理到 此一情形,因而導致當機,故常駐程式可以定時設定40:97的資訊來騙過遊戲 程式。 3.0.74版DosBox在執行本遊戲主程式的int 15h呼叫時,中途會跳到不正確的位 址造成改到部份程式碼內容,因而造成當機。故常駐程式亦必須攔掉int 15h。 以下為避免當機的常駐程式碼,將程式前面的16進位數值依次寫入一個COM執行 檔中(共69 byte),並於play.bat一開始的地方便執行本常駐程式,便可以在 DosBox程式裡正常地玩了。 EB14 jmp $start $int1C: 50 push ax 1E push ds B84000 mov ax,40h 8ED8 mov ds,ax 800E970010 or byte ptr [97h],10h 1F pop ds 58 pop ax $1C_addr: EA00000000 jmp 0:0 $int15: CF iret $start: 0E push cs 1F pop ds B81C35 mov ax,351Ch CD21 int 21h 891E1101 mov [$1C_addr+1],bx 8C061301 mov [$1C_addr+3],es B81C25 mov ax,251Ch BA0201 mov dx,$int1C CD21 int 21h B81525 mov ax,2515 BA1501 mov dx,$int15 CD21 int 21h BA1501 mov dx,$start CD27 int 27h 操作:滑鼠左鍵 = 移動人物 滑鼠右鍵 = 選擇箱子移動位置 滑鼠右鍵+左鍵 = 開始移動箱子