Dec 092017
 
Unprotect for Pool of Darkness.
File POD-UNP.ZIP from The Programmer’s Corner in
Category Unprotects for Games and Such
Unprotect for Pool of Darkness.
File Name File Size Zip Size Zip Type
IN 62 54 deflated
OUT 877 297 deflated
POD-UNP.BAT 65 51 deflated
POD-UNP.TXT 5907 1722 deflated

Download File POD-UNP.ZIP Here

Contents of the POD-UNP.TXT file


To begin copy the file GAME.EXE to a floppy disk.

WORK ONLY WITH THE FLOPPY !!!!!!


change your current directory to the floppy


COPY GAME.EXE GAME.ORG
This will save the original game to the same floppy.

below is a bat file I used to modify the file

line 1 is needed because debug will not let you write or save files with the
extension of .exe or .com......

line 2 is an input file called in and I saved the output of debug in the out
file to check it later

line 3 is another check to make sure nothing except what I wanted was changed.


POD-UNP.BAT rename game.exe game
debug game out
comp game game.org




The file below is a DEBUG input file to modify my pool of radiance game file

line 1 searches for the code to to compare after the call to the sub routine
which asks for the word on page whatever under the heading whatever.

line 2 was the location of the code in the file where the code was found and I
disassembled it to make sure

line 3 edits the JNZ instruction to read JMP

line 4 I again disassembled the code to make sure the change was where I
wanted it

line 5 writes the change back to disk

line 6 quits debug {WITHOUT THIS LINE DEBUG WILL HANG AND yOU HAVE TO REBOOT}


s 0 l ffff 3c 01 74 08 b0 00
u 502
IN e 504 eb
u 502
w
q


The code below was the output from DEBUG. As you can see the JNZ instruction
was changed to a JMP instruction at address 107d:0504. The Musical notes are
the lines from the in file and the rest are debug generated.


-s 0 l ffff 3c 01 74 08 b0 00

107D:0502

-u 502

107D:0502 3C01 CMP AL,01
107D:0504 7408 JZ 050E
107D:0506 B000 MOV AL,00
107D:0508 50 PUSH AX
107D:0509 9A00007006 CALL 0670:0000
107D:050E C606DF7D01 MOV BYTE PTR [7DDF],01
107D:0513 7404 JNZ 0519
107D:0515 FE06DF7D INC BYTE PTR [7DDF]
107D:0519 A0DF7D MOV AL,[7DDF]
107D:051C 30E4 XOR AH,AH
107D:051E 8BF8 MOV DI,AX
107D:0520 80BDBAC500 CMP BYTE PTR [DI+C5BA],00
-e 504 eb

-u 502

107D:0502 3C01 CMP AL,01
107D:0504 EB08 JMP 050E
107D:0506 B000 MOV AL,00
107D:0508 50 PUSH AX
107D:0509 9A00007006 CALL 0670:0000
107D:050E C606DF7D01 MOV BYTE PTR [7DDF],01
107D:0513 7404 JNZ 0519
107D:0515 FE06DF7D INC BYTE PTR [7DDF]
107D:0519 A0DF7D MOV AL,[7DDF]
107D:051C 30E4 XOR AH,AH
107D:051E 8BF8 MOV DI,AX
107D:0520 80BDBAC500 CMP BYTE PTR [DI+C5BA],00
-w

Writing 0FACB bytes
-q




As a further check I compared the original file and the modified file and
found the change took place 100H bytes lower which is because DEBUG loads a
non .exe file starting at address 100H.

This patch is one byte but when playing the game the copy
protection still comes up on screen. It doesnt care if you give the right
answer or three carraige returns. although with the right answer it will
operate on the first carraige return.
Those of you who are some what familiar with patches may want to
jump over the call to the routine. Be aware however some of the code
especially the address portion of the call is relocatable and might change
during the load and execute. This may get rid of the copy protection call
completely and then it will not show up at all. This is the way it worked when
I unprotected THE CURSE OF THE AZURE BONDS and SECRET OF THE SILVER BLADES.

The files included are the files I used and should work for you.
To test the conversion. Copy the file GAME back to the POD directory as
GAME.EXE and try it. If it didn't work just copy the file GAME.ORG back to the
POD directory as GAME.EXE.

IN
OUT
POD-UNP.BAT
Enjoy



 December 9, 2017  Add comments

Leave a Reply