- v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
- Use this page to report any issues related to the migration.
User:AzureLightning/Memory research
Any and all offsets and memory addresses are only valid for v0.27.169.33a.
Links[edit]
Main memory hacking research
Rick's memory research
Iluxan's memory research
Addresses[edit]
Address | Size | Type | Name | Description |
---|---|---|---|---|
008F5288 | 4 | long | Cursor X Coordinate | Number of cells EAST from the west side. Value is -30000 when cursor is not in use. |
008F528C | 4 | long | Cursor Y Coordinate | Number of cells SOUTH from the north side. |
008F5290 | 4 | long | Cursor Z Coordinate | Number of levels UP from the bottom level |
00C2F548 | 4 | long | Creature Focus | Indexes into the full creature list |
01237AD0 | 4 | long | Dwarven Race ID | Used to identify dwarves (Or it could just be the "controlling" civilization you are playing as.) |
01416A3C | 4:4 | vector | Full Creature list | List of of all creatures. There are other vectors based upon various factors |
01458568 | 4 | pointer | Map data | Points to a list of addresses measuring Block Count X long.
Those each reference a list of addresses measuring Block Count Y long. Each of those reference a list of addresses Block Count Z long. And finally, each of those addresses references a map block. |
01458580 | 4 | long | Block Count X | Number of 16x16 blocks in the X direction |
01458584 | 4 | long | Block Count Y | Number of 16x16 blocks in the Y direction |
01458588 | 4 | long | Block Count Z | Number of Z levels |
0145858C | 4 | long | Cell Count X | Number of cells in the X direction (Should be Block Count X * 16) |
01458590 | 4 | long | Cell Count Y | Number of cells in the X direction (Should be Block Count Y * 16) |
01458594 | 4 | long | Cell Count Z | Number of Z levels (Should equal the Block Count Z) |
Note: Bold addresses need to be verified. I may have remembered them wrong
Map Block[edit]
Offset | Size | Type | Name | Notes | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0000h
|
4 | pointer | Unknown | |||||||||||
000Ch
|
4:4 | vector | Vein vector | |||||||||||
005Eh
|
2 * 16 * 16 | list of shorts | Unknown | |||||||||||
0260h
|
4 * 16 * 16 | list of longs | Designation |
| ||||||||||
0660h
|
4 * 16 * 16 | list of longs | Unknown |
Is probably flags?
| ||||||||||
0A60h
|
1 * 16 * 16 | list of bytes | Unknown | |||||||||||
0B60h
|
4 * 16 * 16 | list of longs | Pathfinding | |||||||||||
1160h
|
2 * 16 * 16 | list of shorts | Unknown | |||||||||||
1360h
|
2 * 16 * 16 | list of shorts | Unknown | |||||||||||
1560h
|
2 * 16 * 16 | list of shorts | Temperature #1 | 10100 or above counts as 'Warm'. | ||||||||||
1760h
|
2 * 16 * 16 | list of shorts | Temperature #2 | |||||||||||
1960h
|
2 * 16 * 16 | list of shorts | Unknown | |||||||||||
1B60h
|
2 * 16 * 16 | list of shorts | Unknown |
Veins[edit]
Veins designate a chunk of some material, be it stone, ore or gems, that can be dug up by miners. Using a bit-mask scheme, a vein can be placed anywhere in a 16x16 map block. All it takes for a vein to exist at a given column on a given row is for the corresponding bit in the bit-mask to be 1 for the given row. I've yet to do full-on editing of these veins other than making existing tiles toggle off as well as changing the vein type. Adding to the vein doesn't seem possible yet. There is likely a stacking priority with the different grouping of rock elements.
View of the bit mask scheme
Offset | Size | Type | Name | Notes |
---|---|---|---|---|
0000h
|
4 | pointer | Vtable | |
0004h
|
2 | short | Vein type | Ore, Stone, Gems are all in the same list |
0006h
|
2*16 | list of shorts | 16-bit mask for each row in the block | Bits start from the west side of the row, going east with each bit position. |
Skills[edit]
Offset | Size | Type | Name | Notes |
---|---|---|---|---|
0000h
|
2 | short | Type | See table below. |
0002h
|
2 | short | ??? | might be experience |
0004h
|
2 | short | Rating | Range: 0(Dabbling)-15(Legendary) See table below. |
Skill Types[edit]
Colors can do with some work, as they are supposed to indicate groupings of skills.
Index | Name |
---|---|
0 | Mining |
1 | Wood Cutter |
2 | Carpentry |
3 | Engraver |
4 | Masonry |
5 | Animal Training |
6 | Animal Caretaking |
7 | Fish Dissecting |
8 | Animal Dissecting |
9 | Fish Cleaning |
10 | Butchery |
11 | Trapping |
12 | Tanning |
13 | Weaving |
14 | Brewing |
15 | Alchemist |
16 | Clothery |
17 | Milling |
18 | Threshing |
19 | Cheese Making |
20 | Milking |
21 | Cooking |
22 | Growing |
23 | Herbalism |
24 | Fishing |
25 | Furnace Operating |
26 | Strand Extraction |
27 | Weaponsmithing |
28 | Armorsmithing |
29 | Metalsmithing |
30 | Gem Cutting |
31 | Gem Setting |
32 | Wood Crafting |
33 | Stone Crafting |
34 | Metal Crafting |
35 | Glass Making |
36 | Leatherworking |
37 | Bone Carving |
38 | Wrestling |
39 | Axe User |
40 | Sword User |
41 | Knife User |
42 | Mace User |
43 | Hammer User |
44 | Spear User |
45 | Marks User |
46 | Shield User |
47 | Armor User |
48 | Seige Engineering |
49 | Seige Operating |
50 | Bowyering |
51 | Pike User |
52 | Lasher |
53 | Bow User |
54 | Blowgunner |
55 | Thrower |
56 | Mechanics |
57 | Druid |
58 | Ambusher |
59 | Architecture |
60 | Wood Burning |
61 | Lye Making |
62 | Soaping |
63 | Potash Making |
64 | Dying |
65 | Pump Operating |
66 | Swimming |
67 | Persuading |
68 | Negociating |
69 | Judging of Intent |
70 | Appraising |
71 | Organizing |
72 | Record Keeping |
73 | Lying |
74 | Intimidating |
75 | Conversationalism |
76 | Comedy |
77 | Flattery |
78 | Consoling |
79 | Pacifying |
Skill Ratings[edit]
Rank | Name Prefix |
---|---|
0 | Dabbling |
1 | Novice |
2 | no-prefix |
3 | Competent |
4 | Skilled |
5 | Proficient |
6 | Talented |
7 | Adept |
8 | Expert |
9 | Professional |
10 | Accomplished |
11 | Great |
12 | Master |
13 | High Master |
14 | Grand Master |
15 | Legendary |