c60c-4au@web-4f.berkeley.edu (12/04/88)
I recently tried to run the game Ultima V by Electronic Arts on my (cheap)
PC clone and ran into problems. When I start the game, it asks for the key
disk to be put into Drive A or B. Ok fine, I do so (this is an ORIGINAL
disk, not a copy or anything). Then, it accesses drives A and B and says,
Insert the key disk in drive A or B. It never seems to recognize that the
key disk is in the drive. The drive speed on my drive is correct, so that
is not a problem. I have tried the disk on a couple of friends computers,
one with an AT and one with a true blue PC, but it works on their computers.
My computer setup is:
10 MHz IBM PC/XT clone with a V-20 chip
Hercules graphics card
640K RAM
2 disk drives
Now, since I have tried virtually everything to get it to work with no
avail, I was wondering if anyone knew how to patch the program so that it
ignores the protection. I tried using CodeView on it, and found a call to
the protection routine, but when I tried to single step the code, CodeView
got lost, so some funny stuff is going on there, and I don't know 8088 code
well enough to figure it out. So, if anyone has a patch for ULTIMA.EXE (the
file containing the protection check I think) to make it work without the
key disk, I would greatly appreciate it, since I have been waiting for Ultima
V for a LONG time...
--
Erik Talvola | "It's just what we need... a colossal negative
c60c-4au@web.berkeley.edu | space wedgie of great power coming right at us
| at warp speed." -- Star Drek
mlc@csucis.UUCP (Cipalla Mike) (12/06/88)
In article <17744@agate.BERKELEY.EDU> c60c-4au@web-4f.berkeley.edu () writes: > >I recently tried to run the game Ultima V by Electronic Arts on my (cheap) >PC clone and ran into problems. When I start the game, it asks for the key >My computer setup is: > >10 MHz IBM PC/XT clone with a V-20 chip > Your problem is with the speed your clone is running at if you somehow change this speed to 4.77 MHz you will have no problem. I had the same problem on my clone, and then I remembered reading that some software must be run on the slower of the two speeds available on my computer so I hit the switch to change the speed to 4.77 MHz while booting and I have not had any trouble running the game. After the Ultima V title is shown you can switch your clone back to 10 MHz for faster playing. Mike Cipalla
jack@turnkey.TCC.COM (Jack F. Vogel) (12/10/88)
In article <17744@agate.BERKELEY.EDU> c60c-4au@web-4f.berkeley.edu () writes: > >I recently tried to run the game Ultima V by Electronic Arts on my (cheap) >PC clone and ran into problems. When I start the game, it asks for the key >disk to be put into Drive A or B. Ok fine, I do so (this is an ORIGINAL >disk, not a copy or anything). Then, it accesses drives A and B and says, >Insert the key disk in drive A or B. It never seems to recognize that the >key disk is in the drive. The drive speed on my drive is correct, so that >is not a problem. I have tried the disk on a couple of friends computers, >one with an AT and one with a true blue PC, but it works on their computers. I hate key disk programs! I believe someone else has responded to your posting that the problem is with your clock speed and that may resolve the problem for you. But for anyone out there I will explain how the protection scheme for Ultima V works and how to defeat it. I do not do this to condone piracy or anything, in fact playing with a copied program would be near to useless anyway since you would be missing the map and all the documentation; rather it is for those of us out there that hate didling with floppies. Also note that I am not offering some nifty runnable debug script, I could but don't have sufficient motivation, if you want it unprotected you will have to work a little for it :-}. OK, the protection consists of two parts: first there is an unallocated sector on the key disk that contains some data you need to calculate a jump address used to initiate the game. Because it is not allocated by any file (linked in the FAT) it will not be copied using normal means. I don't remember what sector it is but I will tell you in a moment how to insert the data where you need it into ultima.exe. All the patching I did was with a binary editor called Superzap, you could also use Norton or some such thing. You will need to determine where the code segment begins in the ultima.exe file since this is reference point 0, all other changes will be made as offsets from that (I will refer to it as cs:0). Search for the hex string "eb 0a 00 00 00 12", eb is cs:0. The second part of the protection is that the routine that does an absolute sector read on the floppy is encrypted on the disk. When the program is executed the first thing it does is call a subroutine that takes each byte from cs:12 to cs:1df (all numbers in hex) and XOR's them with 53H, then it jumps to cs:12 and executes that code, this is the code that reads in the unallocated sector from the floppy among other things. It was in this process that you probably got lost when you tried to use Codeview, you have to do it properly or things get messed up. What the unprotect will do is bypass the floppy reading routines and then also bypass the checks, remember we will insert the data by hand. OK here goes the detail. 1: starting at cs:318 (remember you must determine this point in the binary file on disk and do all patching there) you must write in 256 bytes of 4e's and then the sequence '22 03 2d 07 00 08 3b 1b'. This is the data that is normally read from the unallocated sector. 2: make the following changes: a) cs:3a should be 27H, change it to 26H b) cs:6c should be ebH, change it to 90H c) cs:1ba should be 9eH, change it to c3H d) cs:1bb should be 40H, change it to c3H e) cs:1c0 should be 27H, change it to 26H With these simple changes ultima.exe on your hard disk will just fire up and never need a floppy. As I recall when I tried to run the whole thing from a 1.2 floppy there was one more routine that needed to be changed but I didn't write down what it was in my notes :-{ and I don't have time to run it down now, but this should work with just drive C:. REMEMBER, do this on a copy of ultima.exe and not the original. If anyone has any real problems send me mail since I don't read this group, a friend just notified me of the posting since he knew I had unprotected it. Good luck, -- Jack F. Vogel Turnkey Computer Consultants, Costa Mesa, CA UUCP: ...{nosc|uunet}!turnkey!jack Internet: jack@turnkey.TCC.COM