Teleporting Anywhere, via hex editor - 09/04/03 06:19 PM
This is a translation of a post by Barnabus in the german forum, who was assisted by Flash with a lot of the detail on locations. It describes how to change your character's position (using a hex editor to alter information stored in a file in the saved game folder), which will even let you return to Rivertown from the wastelands. Original post; Hex - Hexereien
NOTE: Either there is a data format difference between the English and German game versions, or Barnabus and myself do not entirely agree on the definition of horizontal and vertical. The coordinates taken from that post are listed here in the opposite order.
Please read this post through before attempting, and make sure you follow the steps below carefully.
You will need a hex editor for this, such as the freeware program Hackman (though for that editor you'll need to stick to verion 7.x; later freeware versions have a low file size limit).
- A mistake, typo or out-of-range value when editing the data file can cause the game to either crash to desktop or completely lock up, forcing a re-boot. Make a backup before hex editing anything.
- The data.000 file basically defines your character (stats, skills, experience points, class, gender, etc.) and keeps track of all NPC locations and status, in addition to storing your own location. Without a valid, working data.000 file, the saved game will be useless.
If you use this technique to explore, it could be handy to take both teleporter stones with you. If you end up in a place you shouldn't be, you may be able to toss a teleporter somewhere and teleport out. In some cases, it may not make sense to carry both, or it may not be possible.
1) Save the game under a new name before attempting this, or make a copy of the saved game folder. It couldn't hurt to also make a backup of the data.000 file in the new saved/copied game folder.
2) Browse to the saved game folder you wish to modify '..\Divine Divinity\Run\savegames\NameOfSave', and open the data.000 file in a hex editor.
3) Search for the text string AgentsV (ASCII mode search), hex value 41 67 65 6E 74 73 56.
4) Just a bit below this will be the text string new npc; click on the 'c' and the corresponding hex value will be highlighted as well.
5) Immediately after this value is a constant 00 03 00 00 00. The next two bytes, 00 28, show the horizontal (east-west) position of your character, then a constant 00 00, followed by two bytes, 30 E4, showing the vertical (north-south) position.
- The origin of the coordinate system used by the game is in the north west corner of the map, with the Y axis (vertical) being positive downwards. Increasing the value of the X coordinate (horizontal) will move your character to the east, while increasing the Y coordinate (vertical) will move south.
- In each two byte pair of data, the second byte has a much greater effect on position than the first. This allows the game to store exact character positions, but if you are just trying get past a wall, etc. you may not need the worry about the first byte at all.
6) The value that indicates which map you are on is further down in the file. In Hackman click on the arrow button at the bottom of the scroll bar to move down the file one 'page' at a time; don't try to drag the scroll bar or click below it, you will go past the spot you need.
A couple pages below the new npc will be two lines of FF. After the second line, there will be a constant 00 00 00 00, followed by a repeat of the X and Y character positions. Do not change these values, or the game will crash. This is followed by a constant 00 00 and then the map indicator 00.
- 00 - Farmlands
- 01 - Verdistis and Council Hall
- 02 - Dark Forest
- 03 - Black Ring dungeon
- 04 - Wastelands
7) After making the required changes, save and close the file. You do not have to shut down the hex editor if you want to play around with this, but you should close the file so the editor and game are not trying to access the file at the same time.
8) Start Divinity (if required) and load the game. If all went according to plan, you should now be somewhere else, hopefully where you were aiming. :winkwink:
And since a picture is worth a thousand words.....
Below are the maximum values of the coordinates for each corner of each map. You will not be able to use every value between these, and trying to exceed them will cause the game to crash. The underground level of the wastelands and the ground level of the Black Ring dungeon are not used in the game.
. Map .
A few locations;
Map 00 ; X=20 61 ; Y=30 B5 -> Dreamworld
Map 00 ; X=60 4B ; Y=F0 38 -> small treasure room in the castle
Map 00 ; X=40 76 ; Y=F0 8B -> and the church has to hide something after all
Map 01 ; X=40 28 ; Y=D0 82 -> cellar in the house of Dante
Map 01 ; X=60 15 ; Y=F0 84 -> cellar room beneath Verdistis guard house
Map 01 ; X=40 11 ; Y=30 84 -> Cellar room under house of Martin
Map 01 ; X=40 0D ; Y=D0 86 -> cellar room under Lucius
Map 01 ; X=A0 0C ; Y=90 84 -> cellar room south of Corinna's house
Map 01 ; X=40 E0 ; Y=70 83 -> cellar room above Dante's house
Map 01 ; X=C0 32 ; Y=10 81 -> cellar room in Patrick's house
Map 01 ; X=60 2C ; Y=30 96 -> Penumbras SM-Studio
Map 04 ; X=40 25 ; Y=00 8A -> a dungeon in the Wastelands
Other locations, mostly mundane.
Some of these are intended as an alternate method for the bugs described in;
FIX for the Missing Catacombs Portal.
|Ars Magicana teleporter|
|catacombs portal, at stairs down to level 2|
|castle armoury (dragon shield)|
|Elrath's house, inside door, front room|
|Elrath's house, down stairs|
|Elrath's house, down stairs, lab|
|Mardaneus' house, inside front door|
|Nericons garden, inside gate|
|Nericons garden, treasure room (portal)|
|Ducal inn, under hatch|
|Ducal inn, past the thieves' guild door|
|gong, in the council hall|
|imp world, entrance (bee / wasp garden)|
|imp's house, inside|
|easter egg, at portal stone|
|treasure cave entrance|
|warrior's guild teleporter|
|black ring, down the stairs at entrance|
|black ring entrance|
|past swamp, SW corner of island|
|wastelands, start location|