Ultima Underworld Character Editor ---------------------------------- by Phat Tran June 16, 1992 ------------- This editor was written for Ultima Underworld version F1.50S, but it will probably work for other versions as well. To see what version you have, enter the Abyss and press Alt-F7. The version information will scroll up in the message area. To install UWEditor, just copy it into your UnderWorld directory. For example, mine is d:\games\uw. DON'T copy it into the SAVEx subdirectories! Type UWEDITOR at the DOS prompt to start it. This editor decodes the file PLAYER.DAT based on a hunch of mine, one which may not apply universally. If the decoder messes up, it will require you to tell it a value for one of the attributes so that it can get its bearings again. Once it knows what one attribute is, it will most certainly be able to decode the rest. If you have any problems with it, feel free to contact me either on NaNet (the games conference) or the Internet (cdexcms@watdcs.uwaterloo.ca). [Note: my Internet account may not be around for long.] If you have the patience, you can also mail me at 81 Lennox Cr. Kitchener, Ontario Canada N2N 2P5 UWEditor is completely free, but don't let me stop you from sending me your loose change! Knock yourself out! How it works: ------------- =========================================================================== BBS: System EX-10 Canada Date: 06-16-92 (15:59) Number: 58 From: PHAT TRAN Refer#: NONE To: ALL Recvd: NO Subj: Underworld Editor Conf: (58) Games-Int --------------------------------------------------------------------------- I spent last night hacking away at the PLAYER.DAT file in one of my saved games, trying to get myself out of a trap (I was locked in a room with an unbashable porticulis(sp), and no lever in sight!). What I did was nudge my character up against the porticulis, saved my game, and hex-edited PLAYER.DAT, changing my east-west position so that when I loaded up my game again, I was on the other side of the porticulis! It's a neat trick for getting past certain pitfalls. If you're ever in the same predicament, the bytes that determine your east-west position are found at sector 0, offset 85-86 of PLAYER.DAT, least-significant byte first. If you're trapped by a north-south door, let me know and I'll try to locate the bytes for the north-south position. While dissecting the PLAYER.DAT file, I also found which bytes determined each of my character's attributes. The bytes at offset 31 to 55 (decimal) determine your strength, dexterity, intelligence, attack, defense, ..., appraise, swimming, vitality, and mana attributes. However, the guys at Origin encoded the data by XORing each byte with a corresponding term from the sequence n + 0, n + 3, n + 6, n + 9, and so on, where n is a number that is derived from you character's name (and so is different for each person). For my mage, the table of attributes and coding term goes as follows (remember, it's different for each character): Attribute Offset Coding Term (Decimal) (Hex) Strength 31 4a Dexterity 32 4d Intelligence 33 50 Attack 34 53 Defense 35 56 Unarmed 36 59 . . . Mana 41 68 . . . Any of the skills left out are in the same order as they are listed on the character panel. . . . . Appraise 52 89 Swimming 53 8c Vitality 54 8f 'These are "reservoir" attributes, Mana 55 92 'not skills. As you can see, each coding term is 3 greater than the previous coding term. If you know one of your attributes, then you can easily find out the coding term for that attribute, and then extrapolate to find the coding term for each of the other attributes. For example, my mage has strength 20 (dec), and the byte at offset 31 decimal, which holds my strength, in PLAYER.DAT is 5e (hex). To find the coding term, I would exclusive-or 20 decimal (which is 14 hex) with 5e hex: 14 XOR 5e = 4a (which is the coding term!). Add three to 4a, and I would get 4d, the coding term for the next attribute, and so on. If I want to change my strength to 50 decimal or 32 hex, I would XOR it with 4a: 32 XOR 4a = 78 hex, which I would change the byte at offset 31 into. If you want to edit your character using the above method, here are a few pointers: -Normally, praying at a shrine will not increase a skill above 30, so if you want to be partially honest, don't give yourself a skill above that. -Your mana reservoir is determined by your mana skill, and your vitality is a combination of several, as of yet unknown, factors. Don't change your mana and vitality directly since they will be reset the next time you pray at a shrine. Instead, change your mana skill and your strength, etc., then pray at a shrine and your vitality and mana reservoirs will increase in capacity. -Increasing your strength will increase your carrying capacity. -You should always pray at a shrine after editing your character to "register" your new attributes with the game. -Very high skills may "wrap around" so that you may be worse off than before. Don't raise any skill above 50! -Don't go overboard and max out everything--you'll just end up wrecking the game for yourself. If anyone's interested, I gave my mage a strength attribute of 50, so that he now has a carrying capacity of about 93 units! I also fudged his lore, sword, and mana skills. With a mana skill of 30, my mana reservoir is now at 127/127! I once had it up to 255/255, but didn't feel secure with it since it was way over the game's design limit. Well, I hope this information will be useful to some of you. If you have any questions, just ask. I'll work on an editor utility if there's demand for it, though I'm still a neophyte DOS programmer. In the meantime, enjoy! Phat Tran. --- þ SLMR 2.1a þ