v50 Steam/Premium information for editors
  • 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.
This notice may be cached—the current version can be found here.

Difference between revisions of "Memory hacking"

From Dwarf Fortress Wiki
Jump to navigation Jump to search
m (Unrating page for DF2014 (m: 104/225))
(clear 0.34 stuff, add some offsets for 0.40.02 SDL)
Line 1: Line 1:
{{Migrated_article}}
 
 
{{quality|unrated}}
 
{{quality|unrated}}
  
Line 10: Line 9:
  
 
|-
 
|-
! 0.34.01 legacy
+
! 0.40.01 legacy
| 4749a0ac0ac6f3e866f416bc60c0d19c
+
|  
| 4F390718
+
|  
 
|-
 
|-
! 0.34.01 SDL
+
! 0.40.01 SDL
| 8d50fce62595a6f78398ba1902e7c23b
+
|  
| 4F391A33
+
|  
  
 
|-
 
|-
! 0.34.02 legacy
+
! 0.40.02 legacy
| c3072eeb18a7c0e61747a2468f0a80d2
+
|  
| 4F3F76BF
+
|  
 
|-
 
|-
! 0.34.02 SDL
+
! 0.40.02 SDL
| f32b834b14108118119c0314d33dac19
+
| 11a7da1fda05dfc826655d8aff4e9f9b
| 4F3F88BC
+
| 53BEF285
 
 
|-
 
! 0.34.03 legacy
 
| ecc7acf5aa5e0d81c2f55cdad14823ca
 
| 4F4CC161
 
|-
 
! 0.34.03 SDL
 
| 24a3aafd5c1415ed1a0b1020fb70f0a1
 
| 4F4CD85B
 
 
 
|-
 
! 0.34.04 legacy
 
| e8d3e0c6622c88b572b727d2373e8162
 
| 4F4D8635
 
|-
 
! 0.34.04 SDL
 
| 41d065b8187ec76b908541a1fb6bce1e
 
| 4F4D9726
 
 
 
|-
 
! 0.34.05 legacy
 
| 65e376aba31a9b6f2fe2c0e0282cb1d7
 
| 4F55E19C
 
|-
 
! 0.34.05 SDL
 
| 01c0a10b1291f5d0b58f25a35722a416
 
| 4F55F23E
 
 
 
|-
 
! 0.34.06 legacy
 
| d87a411de87fd42fd755fbd8a2a54175
 
| 4F6C279C
 
|-
 
! 0.34.06 SDL
 
| cd9de11f650938408f810443a16a4c6f
 
| 4F6C34CA
 
 
 
|-
 
! 0.34.07 legacy
 
| 17b407e2b1e179eca349ce3dab532073
 
| 4F758B28
 
|-
 
! 0.34.07 SDL
 
| 7e574bedd5ffe13d7cb6cf8f55e27ccf
 
| 4f7592fe
 
 
 
|-
 
! 0.34.08 legacy
 
| 6a60a120fde2c5e89c9dc6fdbcc2abe3
 
| 4FB0CBAD
 
|-
 
! 0.34.08 SDL
 
| 5d65238944ebdccb4221890b1b504189
 
| 4FB0CCBA
 
 
 
|-
 
! 0.34.09 legacy
 
| 107f5d2c98dbb479c4133234dfdb7f83
 
| 4FB4BCDA
 
|-
 
! 0.34.09 SDL
 
| 195417b9a9ee0ec062a0949489e70b2f
 
| 4FB4C506
 
 
 
|-
 
! 0.34.10 legacy
 
| 92062f40505d2b2f9323569c20d77c41
 
| 4FB9FC18
 
|-
 
! 0.34.10 SDL
 
| d2ddce3bcac9114272484b6ff4295fd2
 
| 4FBA073A
 
  
 
|}
 
|}
Line 107: Line 34:
 
|- bgcolor="#ddd"
 
|- bgcolor="#ddd"
 
! Description
 
! Description
! 0.34.01 legacy
+
! 0.40.01 legacy
! 0.34.02 legacy
+
! 0.40.02 legacy
! 0.34.03 legacy
 
! 0.34.04 legacy
 
! 0.34.05 legacy
 
  
 
|-
 
|-
 
! cursor_xyz
 
! cursor_xyz
| colspan="2" rowspan="2" | BF5518
+
| colspan="1" rowspan="2" |  
| colspan="3" rowspan="2" | BF1518
+
| colspan="1" rowspan="2" |  
  
 
|-
 
|-
Line 123: Line 47:
 
|-
 
|-
 
! mouse_y
 
! mouse_y
| colspan="2" | BF551C
+
|  
| colspan="3" | BF151C
+
|  
  
 
|-
 
|-
 
! mouse_z
 
! mouse_z
| colspan="2" | BF5520
+
|  
| colspan="3" | BF1520
+
|  
 
 
|-
 
! pause_state
 
| ?
 
| ?
 
| colspan="3" | 166A27B
 
 
 
  
 
|-
 
|-
 
! window_dims
 
! window_dims
| colspan="2" rowspan="2" | 19F29C8
+
| colspan="1" rowspan="2" |  
| colspan="3" rowspan="2" | 19ee9d0
+
| colspan="1" rowspan="2" |  
  
 
|-
 
|-
Line 148: Line 65:
 
|-
 
|-
 
! window_grid_y
 
! window_grid_y
| colspan="2" | 19F29CC
+
|  
| colspan="3" | 19ee9d4
+
|  
  
 
|-
 
|-
 
! window_x (viewport_x)
 
! window_x (viewport_x)
| colspan="2" | 10323F0
+
|  
| colspan="3" | 102E3F0
+
|  
  
 
|-
 
|-
 
! window_y (viewport_y)
 
! window_y (viewport_y)
| colspan="2" | 1060600
+
|  
| colspan="3" | 105C600
+
|  
 +
 
  
 
|-
 
|-
 
! window_z (viewport_z)
 
! window_z (viewport_z)
| colspan="2" | 10605D8
+
|  
| colspan="3" | 105C5D8
+
|  
 
 
|- bgcolor="#ddd"
 
! Description
 
! 0.34.06 legacy
 
! 0.34.07 legacy
 
! 0.34.08 legacy
 
! 0.34.09 legacy
 
! 0.34.10 legacy
 
  
|-
 
! cursor_xyz
 
| colspan="1" rowspan="2" | C04518
 
| colspan="1" rowspan="2" | C09518
 
| colspan="1" rowspan="2" | C435C8
 
| colspan="2" rowspan="2" | C445C8
 
 
|-
 
! mouse_x
 
<!-- Cells rowspanned out -->
 
|-
 
! mouse_y
 
| C0451C
 
| C0951C
 
| C435CC
 
| colspan="2" | C445CC
 
 
|-
 
! mouse_z
 
| C04520
 
| C09520
 
| C435D0
 
| colspan="2" | C445D0
 
 
|-
 
! window_dims
 
| colspan="1" rowspan="2" | 1A01998
 
| colspan="1" rowspan="2" | 1A06998
 
| colspan="1" rowspan="2" | 1A41A88
 
| colspan="2" rowspan="2" | 1A42A88
 
 
|-
 
! window_grid_x
 
<!-- Cells rowspanned out -->
 
|-
 
! window_grid_y
 
| 1A0199C
 
| 1A0699C
 
| 1A41A8C
 
| colspan="2" | 1A42A8C
 
 
|-
 
! window_x (viewport_x)
 
| 10413F0
 
| 10463F0
 
| 1080518
 
| colspan="2" | 1081518
 
 
|-
 
! window_y (viewport_y)
 
| 106F600
 
| 1074600
 
| 10AE728
 
| colspan="2" | 10AF728
 
 
|-
 
! window_z (viewport_z)
 
| 106F5D8
 
| 10745D8
 
| 10AE700
 
| colspan="2" | 10AF700
 
  
 
|}
 
|}
Line 243: Line 92:
 
|- bgcolor="#ddd"
 
|- bgcolor="#ddd"
 
! Description
 
! Description
! 0.34.01 SDL
+
! 0.40.01 SDL
! 0.34.02 SDL
+
! 0.40.02 SDL
! 0.34.03 SDL
 
! 0.34.04 SDL
 
! 0.34.05 SDL
 
! 0.34.06 SDL
 
 
 
|-
 
! can_save
 
| ?
 
| 15C8752
 
| colspan="2" | 15C1752
 
| 15C2752
 
| 160E752
 
  
 
|-
 
|-
 
! cursor_xyz
 
! cursor_xyz
| colspan="1" rowspan="2" | C0E848
+
| colspan="1" rowspan="2" |  
| colspan="1" rowspan="2" | C0F848
+
| colspan="1" rowspan="2" | 1D0CD40
| colspan="2" rowspan="2" | C08848
 
| colspan="1" rowspan="2" | C09848
 
| colspan="1" rowspan="2" | C55848
 
  
 
|-
 
|-
Line 271: Line 105:
 
|-
 
|-
 
! mouse_y
 
! mouse_y
| C0E84C
+
|  
| C0F84C
+
| 1D0CD44
| colspan="2" | C0884C
 
| C0984C
 
| C5584C
 
  
 
|-
 
|-
 
! mouse_z
 
! mouse_z
| C0E850
+
|  
| C0F850
+
| 1D0CD48
| colspan="2" | C08850
 
| C09850
 
| C55850
 
 
 
|-
 
! pause_state
 
| ?
 
| 15C8756
 
| colspan="2" | 15C1756
 
| 15C2756
 
| 160E756
 
  
 
|-
 
|-
 
! window_dims
 
! window_dims
| colspan="1" rowspan="2" | 19265B4
+
| colspan="1" rowspan="2" |  
| colspan="1" rowspan="2" | 19275D4
+
| colspan="1" rowspan="2" |  
| colspan="2" rowspan="2" | 19205DC
 
| colspan="1" rowspan="2" | 19215DC
 
| colspan="1" rowspan="2" | 196D5EC
 
  
 
|-
 
|-
Line 306: Line 123:
 
|-
 
|-
 
! window_grid_y
 
! window_grid_y
| 19265B8
+
|  
| 19275D8
+
|  
| colspan="2" | 19205E0
 
| 19215E0
 
| 196D5F0
 
  
 
|-
 
|-
 
! window_x (viewport_x)
 
! window_x (viewport_x)
| F8B8AC
+
|  
| F8C8CC
+
|  
| colspan="2" | F858CC
 
| F868CC
 
| 0FD28CC
 
  
 
|-
 
|-
 
! window_y (viewport_y)
 
! window_y (viewport_y)
| FB9AB8
+
|  
| FBAAD8
+
|  
| colspan="2" | FB3AD8
 
| FB4AD8
 
| 1000AD8
 
 
 
|-
 
! window_z (viewport_z)
 
| FB9A90
 
| FBAAB0
 
| colspan="2" | FB3AB0
 
| FB4AB0
 
| 1000AB0
 
 
 
|-
 
! view_state
 
| ?
 
| C0F920
 
| colspan="2" | C08920
 
| C09920
 
 
 
|- bgcolor="#ddd"
 
! Description
 
! 0.34.07 SDL
 
! 0.34.08 SDL
 
! 0.34.09 SDL
 
! 0.34.10 SDL
 
 
 
|-
 
! cursor_xyz
 
| colspan="1" rowspan="2" | C5A848
 
| colspan="1" rowspan="2" | C96848
 
| colspan="2" rowspan="2" | C97848
 
 
 
|-
 
! mouse_x
 
<!-- Cells rowspanned out -->
 
|-
 
! mouse_y
 
| C5A84C
 
| C9684C
 
| colspan="2" | C9784C
 
 
 
|-
 
! mouse_z
 
| C5A850
 
| C96850
 
| colspan="2" | C97850
 
  
|-
 
! window_dims
 
| colspan="1" rowspan="2" | 19725EC
 
| colspan="1" rowspan="2" | 19AE974
 
| colspan="2" rowspan="2" | 19AF974
 
 
|-
 
! window_grid_x
 
<!-- Cells rowspanned out -->
 
|-
 
! window_grid_y
 
| 19725F0
 
| 19AE978
 
| colspan="2" | 19AF978
 
 
|-
 
! window_x (viewport_x)
 
| 0FD78CC
 
| 1013A04
 
| colspan="2" | 1014A04
 
 
|-
 
! window_y (viewport_y)
 
| 1005AD8
 
| 1041C14
 
| colspan="2" | 1042C14
 
  
 
|-
 
|-
 
! window_z (viewport_z)
 
! window_z (viewport_z)
| 1005AB0
+
|  
| 1041BEC
+
|  
| colspan="2" | 1042BEC
 
  
|-
 
! population_cap
 
| 196fa64
 
 
|-
 
! child_number_cap
 
| 196FA68
 
 
|-
 
! child_percent_cap
 
| 196FA6C
 
  
 
|}
 
|}
Line 426: Line 153:
 
|- bgcolor="#ddd"
 
|- bgcolor="#ddd"
 
! Description
 
! Description
! 0.34.01 legacy
+
! 0.40.01 legacy
! 0.34.02 legacy
+
! 0.40.02 legacy
! 0.34.03 legacy
 
! 0.34.04 legacy
 
! 0.34.05 legacy
 
  
 
|-
 
|-
 
! map_data
 
! map_data
| colspan="2" | 18AD878
+
|  
| colspan="3" | 18A9878
+
|  
 +
 
  
 
|-
 
|-
 
! [[#map_info struct|map_info]]
 
! [[#map_info struct|map_info]]
| colspan="2" rowspan="2" | 18AD890
+
|  
| colspan="3" rowspan="2" | 18A9890
+
|  
 
 
|-
 
! map x_count (blocks)
 
<!-- Cells rowspanned out -->
 
 
 
|-
 
! map y_count (blocks)
 
| colspan="2" | 18AD894
 
| colspan="3" | 18A9894
 
 
 
|-
 
! map z_count (blocks)
 
| colspan="2" | 18AD898
 
| colspan="3" | 18A9898
 
 
 
|-
 
! map x_count (tiles)
 
| colspan="2" | 18AD89C
 
| colspan="3" | 18A989C
 
 
 
|-
 
! map y_count (tiles)
 
| colspan="2" | 18AD8A0
 
| colspan="3" | 18A98A0
 
 
 
|-
 
! map z_count (tiles)
 
| colspan="2" | 18AD8A4
 
| colspan="3" | 18A98A4
 
  
|- bgcolor="#ddd"
 
! Description
 
! 0.34.06 legacy
 
! 0.34.07 legacy
 
! 0.34.08 legacy
 
! 0.34.09 legacy
 
! 0.34.10 legacy
 
 
|-
 
! map_data
 
| 18BC840
 
| 18C1840
 
| 18FC818
 
| colspan="2" | 18FD818
 
 
|-
 
! [[#map_info|map_info]]
 
| 18BC858
 
| 18C1858
 
| 18FC830
 
| colspan="2" | 18FD830
 
  
 
|}
 
|}
Line 500: Line 175:
 
|- bgcolor="#ddd"
 
|- bgcolor="#ddd"
 
! Description
 
! Description
! 0.34.01 SDL
+
! 0.40.01 SDL
! 0.34.02 SDL
+
! 0.40.02 SDL
! 0.34.03 SDL
 
! 0.34.04 SDL
 
! 0.34.05 SDL
 
! 0.34.06 SDL
 
  
 
|-
 
|-
 
! map_data
 
! map_data
| 17E1498
+
|  
| 17E24B8
+
| 2996f24
| colspan="2" | 17DB4B8
+
 
| 17DC4B8
 
| 18284C8
 
  
 
|-
 
|-
 
! [[#map_info struct|map_info]]
 
! [[#map_info struct|map_info]]
| colspan="1" rowspan="2" | 17E14B0
+
|  
| colspan="1" rowspan="2" | 17E24D0
+
| 2996f3c
| colspan="2" rowspan="2" | 17DB4D0
 
| colspan="1" rowspan="2" | 17DC4D0
 
| colspan="1" rowspan="2" | 18284E0
 
 
 
|-
 
! map x_count (blocks)
 
<!-- Cells rowspanned out -->
 
 
 
|-
 
! map y_count (blocks)
 
| 17E14B4
 
| 17E24D4
 
| colspan="2" | 17DB4D4
 
| 17DC4D4
 
| 18284E4
 
 
 
|-
 
! map z_count (blocks)
 
| 17E14B8
 
| 17E24D8
 
| colspan="2" | 17DB4D8
 
| 17DC4D8
 
| 18284E8
 
 
 
|-
 
! map x_count (tiles)
 
| 17E14BC
 
| 17E24DC
 
 
 
|-
 
! map y_count (tiles)
 
| 17E14C0
 
| 17E24E0
 
 
 
|-
 
! map z_count (tiles)
 
| 17E14C4
 
| 17E24E4
 
 
 
|- bgcolor="#ddd"
 
! Description
 
! 0.34.07 SDL
 
! 0.34.08 SDL
 
! 0.34.09 SDL
 
! 0.34.10 SDL
 
 
 
|-
 
! map_data
 
| 182D4C8
 
| 1869738
 
| colspan="2" | 186A738
 
  
|-
 
! [[#map_info struct|map_info]]
 
| 182D4E0
 
| 1869750
 
| colspan="2" | 186A750
 
  
 
|}
 
|}
Line 629: Line 242:
 
|- bgcolor="#ddd"
 
|- bgcolor="#ddd"
 
! Description
 
! Description
! 0.34.01&ndash;10
+
! 0.40.01&ndash;02
  
 
|-
 
|-
! block_events
+
! map_data_map_x_offset
| 0004
 
 
 
|-
 
! block_burrows
 
| 0014
 
 
 
|-
 
! local_feature
 
| 0020
 
 
 
|-
 
! global_feature
 
| 0024
 
 
 
|-
 
! block_items
 
| 0038
 
 
 
|-
 
! block_flows
 
| 0048
 
 
 
|-
 
! block_vegetation
 
 
| 0060
 
| 0060
 
|-
 
! map_data_map_x_offset
 
| 0070
 
 
|-
 
|-
 
! map_data_map_y_offset
 
! map_data_map_y_offset
| 0072
+
| 0062
 
|-
 
|-
 
! map_data_map_z_offset
 
! map_data_map_z_offset
| 0074
+
| 0064
  
 
|-
 
|-
 
! map_data_tiletype_offset
 
! map_data_tiletype_offset
| 007a
+
| 006a
  
 
|-
 
|-
 
! map_data_designation_offset
 
! map_data_designation_offset
| 027c
+
| 026c
  
 
|-
 
|-
 
! map_data_occupancy_offset
 
! map_data_occupancy_offset
| 067c
+
| 066c
  
 
|-
 
|-
 
! map_data_0a60_offset
 
! map_data_0a60_offset
| 0A7c
+
| 0A6c
  
 
|-
 
|-
 
! map_data_pathfinding_offset
 
! map_data_pathfinding_offset
| 0D7c
+
| 0D6c
  
 
|-
 
|-
 
! map_data_1160_offset
 
! map_data_1160_offset
| 117c
+
| 116c
  
 
|-
 
|-
 
! map_data_1360_offset
 
! map_data_1360_offset
| 137c
+
| 136c
  
 
|-
 
|-
 
! map_data_temperature1_offset
 
! map_data_temperature1_offset
| 157c
+
| 156c
  
 
|-
 
|-
 
! map_data_temperature2_offset
 
! map_data_temperature2_offset
| 177c
+
| 176c
  
 
|-
 
|-
 
! map_data_1960_offset
 
! map_data_1960_offset
| 197c
+
| 196c
  
 
|-
 
|-
 
! map_data_1b60_offset
 
! map_data_1b60_offset
| 1B7c
+
| 1B6c
  
 
|}
 
|}
  
 
[[Category:Hacking]]
 
[[Category:Hacking]]

Revision as of 12:48, 11 July 2014

Version identification

Version MD5 hash PE timestamp
0.40.01 legacy
0.40.01 SDL
0.40.02 legacy
0.40.02 SDL 11a7da1fda05dfc826655d8aff4e9f9b 53BEF285


General offsets

Legacy versions

Description 0.40.01 legacy 0.40.02 legacy
cursor_xyz
mouse_x
mouse_y
mouse_z
window_dims
window_grid_x
window_grid_y
window_x (viewport_x)
window_y (viewport_y)


window_z (viewport_z)



SDL versions

Description 0.40.01 SDL 0.40.02 SDL
cursor_xyz 1D0CD40
mouse_x
mouse_y 1D0CD44
mouse_z 1D0CD48
window_dims
window_grid_x
window_grid_y
window_x (viewport_x)
window_y (viewport_y)


window_z (viewport_z)



Map data

Legacy versions

Description 0.40.01 legacy 0.40.02 legacy
map_data


map_info



SDL versions

Description 0.40.01 SDL 0.40.02 SDL
map_data 2996f24


map_info 2996f3c



map_info struct

Type Name Description
int32 block_count_x Size of the current map region in 16x16 blocks.
int32 block_count_y
int32 block_count_z Should be the same as tile_count_z
int32 tile_count_x Size of the current map region in tiles.
int32 tile_count_y
int32 tile_count_z
int32 region_x Position of the current map region within the world as a whole.
int32 region_y
int32 region_z Base Z-level - add this to Z coordinates to get the Z-level displayed on the screen

Map block data offsets

Description 0.40.01–02
map_data_map_x_offset 0060
map_data_map_y_offset 0062
map_data_map_z_offset 0064
map_data_tiletype_offset 006a
map_data_designation_offset 026c
map_data_occupancy_offset 066c
map_data_0a60_offset 0A6c
map_data_pathfinding_offset 0D6c
map_data_1160_offset 116c
map_data_1360_offset 136c
map_data_temperature1_offset 156c
map_data_temperature2_offset 176c
map_data_1960_offset 196c
map_data_1b60_offset 1B6c