Locating map dimensions in executable
Posted: Thu Nov 01, 2012 2:16 pm
There is simple method, how you can find and change map dimensions in client.
You need only hex editor (I'm using PSPad HEX).
1) Find constatnt "Felucca" in executable.
2) Get it's offset and add $40000 (IMAGE_BASE)
3) Result number is address of Felucca that you need to find. Rever it by bytes (addesses has 4 bytes. So: $12345678 will be $78563412).
4) Find that reverted number in client. This is pointer to map definition structure.
structure is:
Pointer (4Bytes) - Address of map name
Cardinal (4Bytes) - Map width
Cardinal (4Bytes) - Map Height
Cardinal (4Bytes) - Main map width // Extra height and width is "Dungeons"
Cardinal (4Bytes) - Main map height
24 Bytes - Unknown.
Cardinal (4Bytes) - Map rules ? (1 for Felucca, 0 for others)
And it repeats for every map.
So, if you change this numbers and makes map with new dimensions... You can play on it. Currently UO: Quintessence used it (for now they are in closed alpha, but must be opened near to new year).
PS: I'm not a member of stuff of that shard.
PPS: Sorry for my English.
You need only hex editor (I'm using PSPad HEX).
1) Find constatnt "Felucca" in executable.
2) Get it's offset and add $40000 (IMAGE_BASE)
3) Result number is address of Felucca that you need to find. Rever it by bytes (addesses has 4 bytes. So: $12345678 will be $78563412).
4) Find that reverted number in client. This is pointer to map definition structure.
structure is:
Pointer (4Bytes) - Address of map name
Cardinal (4Bytes) - Map width
Cardinal (4Bytes) - Map Height
Cardinal (4Bytes) - Main map width // Extra height and width is "Dungeons"
Cardinal (4Bytes) - Main map height
24 Bytes - Unknown.
Cardinal (4Bytes) - Map rules ? (1 for Felucca, 0 for others)
And it repeats for every map.
So, if you change this numbers and makes map with new dimensions... You can play on it. Currently UO: Quintessence used it (for now they are in closed alpha, but must be opened near to new year).
PS: I'm not a member of stuff of that shard.
PPS: Sorry for my English.