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.

Editing User:Quietust

Jump to navigation Jump to search

Warning: You are not logged in.
Your IP address will be recorded in this page's edit history.


The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
 
==About==
 
==About==
Not your average Dwarf Fortress player, is interested in reverse-engineering the game in order to figure out ''exactly'' how things work. Has a nearly completely documented disassembly of versions 0.23.130.23a (because the freely available IDA Pro 5.0 doesn't work as well with newer versions) and 0.28.181.40d (using the Mac version, which was compiled with unusually low optimization settings) and managed to locate (and fix) multiple bugs that still exist in the currently released version. Is a member of the DFHack development team and can be found in the #dfhack IRC channel on Freenode as well as in the Bay 12 Forums.
+
Not your average Dwarf Fortress player, is interested in reverse-engineering the game in order to figure out ''exactly'' how things work. Has a nearly completely documented disassembly of version 0.23.130.23a (because the freely available IDA Pro 5.0 doesn't work as well with newer versions) and managed to locate (and fix) multiple bugs that still exist in the currently released version. Is a member of the DFHack development team and can be found in the #dfhack IRC channel on Freenode as well as in the Bay 12 Forums.
  
 
==Wiki Modifications==
 
==Wiki Modifications==
 
===Namespace Links===
 
===Namespace Links===
This wiki previously made use of a [https://www.qmtpro.com/~quietust/misc/ns_link-1.17.0.diff MediaWiki patch] to automatically direct links from particular namespaces to other specific namespaces unless indicated otherwise - in this case, links in the "DF2012" and "DF2012 Talk" namespaces automatically pointed to "DF2012", "v0.31" and "v0.31 Talk" pointed to "v0.31", "40d" and "40d Talk" pointed to "40d", and "23a" and "23a Talk" pointed to "23a". This functionality has since been converted into an [https://github.com/DF-Wiki/NamespaceLinks extension].
+
This wiki previously made use of a [http://www.qmtpro.com/~quietust/misc/ns_link-1.17.0.diff MediaWiki patch] to automatically direct links from particular namespaces to other specific namespaces unless indicated otherwise - in this case, links in the "DF2012" and "DF2012 Talk" namespaces automatically pointed to "DF2012", "v0.31" and "v0.31 Talk" pointed to "v0.31", "40d" and "40d Talk" pointed to "40d", and "23a" and "23a Talk" pointed to "23a". This functionality has apparently since been integrated into MediaWiki itself.
  
 
===DFRawFunctions===
 
===DFRawFunctions===
Line 64: Line 64:
 
*Siegers try and fail to renew campfires{{bug|6482}}
 
*Siegers try and fail to renew campfires{{bug|6482}}
 
**0x1800D7 : E8 A4 8D F1 FF 8B 10 -> 66 8B 5C 24 18 89 C2
 
**0x1800D7 : E8 A4 8D F1 FF 8B 10 -> 66 8B 5C 24 18 89 C2
*Vermin fish in aquariums cancel updates of remaining vermin{{bug|6116}}
+
*Vermin fish in aquariums/ponds cancel updates of remaining vermin{{bug|6116}}
 
**0x23BD2F : 19 -> 08
 
**0x23BD2F : 19 -> 08
 
*Art images of creatures are not valued properly by civilizations{{bug|6440}}
 
*Art images of creatures are not valued properly by civilizations{{bug|6440}}
Line 70: Line 70:
 
*Pikemasters are given skill levels in Axe instead of Pike{{bug|3273}}
 
*Pikemasters are given skill levels in Axe instead of Pike{{bug|3273}}
 
**0x273E0 : 27 -> 33
 
**0x273E0 : 27 -> 33
*Failed merchant visits do not save their results correctly in history
 
**0x3778D8 : 10 -> 28
 
**0x3778DE : 0C -> 24
 
**0x3778EB : 10 -> 28
 
**0x3778F1 : 0C -> 24
 
**0x377900 : 10 -> 28
 
**0x377906 : 0C -> 24
 
**0x377915 : 10 -> 28
 
**0x37791B : 0C -> 24
 
**0x37792F : 10 -> 28
 
**0x377935 : 0C -> 24
 
*Placing designations causes things to happen in the background{{bug|1697}}
 
**0x111E9F : F6 -> C0
 
*Human civilizations always send Guild Representatives, never Merchant Barons/Princes
 
**0x357740 : 57 -> 56
 
*[[40d:Magma flow|Magma flow]] tiles at the bottom of [[40d:magma pipe|magma pipe]]s don't animate like they did in older versions
 
**0x503630 : 0F 94 C1 -> 90 89 F1
 
*Dead shrubs render with the "live shrub" tile
 
**0x503866 : 88 -> 89
 
  
 
=====Improvements=====
 
=====Improvements=====
*Allow fortress mode attacks from Semi-megabeasts as well as full Megabeasts
 
**0x372040 : 0F -> 10
 
**0x372049 : 8A 42 0F C0 E8 07 3A C3 -> 66 8B 42 0F 66 A9 80 01
 
 
*Make Herbalists drop gathered shrubs on the ground (instead of hauling them back to a stockpile)
 
*Make Herbalists drop gathered shrubs on the ground (instead of hauling them back to a stockpile)
 
**0x4728AA : FF 6A FF 6A 00 55 -> 01 90 90 90 8B CD
 
**0x4728AA : FF 6A FF 6A 00 55 -> 01 90 90 90 8B CD
 
**0x4728B3 : 39 C1 -> 99 C3
 
**0x4728B3 : 39 C1 -> 99 C3
*Make Farmers drop gathered crops on the farm plot (instead of hauling them back to a stockpile)
 
**0x346060 : FF 6A FF 6A 00 53 -> 01 90 90 90 8B CB
 
**0x346069 : 83 89 -> E3 8B
 
*Make the "Dwarves Stay Inside" order check for "Inside" tiles rather than "Subterranean" ones
 
**0x1E6881 : 80 00 -> 00 01
 
**0x1E6885 : 84 -> 85
 
**0x1E7E8C : 80 00 -> 00 01
 
**0x1E7E8F : 75 -> 74
 
**0x2FC4B7 : 80 00 -> 00 01
 
**0x2FC4BA : 75 -> 74
 
**0x4BA08C : 80 00 -> 00 01
 
**0x4BA08F : 75 -> 74
 
**0x4BA14C : 80 00 -> 00 01
 
**0x4BA14F : 74 -> 75
 
**0x4E2C70 : 80 00 -> 00 01
 
**0x4E2C73 : 74 -> 75
 
  
 
====DFHack-40d====
 
====DFHack-40d====
Line 149: Line 111:
 
Version [[23a:Main Page|0.23.130.23a]] was quite different from the game as it exists today - it lacked many of the features present in the game today, but it had numerous gameplay elements that have since been discarded.
 
Version [[23a:Main Page|0.23.130.23a]] was quite different from the game as it exists today - it lacked many of the features present in the game today, but it had numerous gameplay elements that have since been discarded.
  
====Utilities====
+
====Dwarf Manipulator====
* [http://dffd.wimbli.com/file.php?id=2248 Dwarf Manipulator] - the predecessor of the well-known DFHack plugin (based on [http://www.bay12forums.com/smf/index.php?topic=53113.0 Valdemar's prototype]), implemented as a standalone console application specifically for 23a. The only other tool available, Dwarf Foreman, was incapable of assigning labors for individual dwarves unless you gave each dwarf its own custom profession.
+
Just like Dwarf Therapist, but using a text-based interface (based on [http://www.bay12forums.com/smf/index.php?topic=53113.0 Valdemar's prototype]). The only other tool available, Dwarf Foreman, was incapable of assigning labors for individual dwarves unless you gave each dwarf its own custom profession. Download [http://dffd.wimbli.com/file.php?id=2248 here]. Also available as a DFHack plugin.
* [http://dffd.wimbli.com/file.php?id=2380 2D Forbidder] - a tool which allows manually forbidding/reclaiming, chasming, or melting the currently viewed item, almost just like in the 3D version. Also incorporated into DFHack-23a.
+
 
* [http://dffd.wimbli.com/file.php?id=2848 2D Autoforbid] - a tool which automatically forbids items carried in the inventories of foreign units.
+
====2D Forbidder====
 +
A tool which allows manually forbidding/reclaiming, chasming, or melting the currently viewed item, almost just like in the 3D version. Download [http://dffd.wimbli.com/file.php?id=2380 here]. Also available as a DFHack-23a plugin.
 +
 
 +
====2D Autoforbid====
 +
A tool which automatically forbids items carried in the inventories of foreign units. Download [http://dffd.wimbli.com/file.php?id=2848 here].
  
 
====EXE Patches====
 
====EXE Patches====
Line 255: Line 221:
 
**0x2D096F : 2A D0 -> 31 D2
 
**0x2D096F : 2A D0 -> 31 D2
 
**0x2D0A9D : 2A D3 -> 31 D2
 
**0x2D0A9D : 2A D3 -> 31 D2
*Pikemasters are given skill levels in Axe instead of Pike{{bug|3273}}
+
*Pikemasters are given skill levels in Axe instead of Pike
 
**0x2A5144 : 2A -> 36
 
**0x2A5144 : 2A -> 36
 
*Entity recipes trigger discoveries incorrectly{{bug|6472}}
 
*Entity recipes trigger discoveries incorrectly{{bug|6472}}
Line 281: Line 247:
 
**0x2AE3AD : 9E -> 98
 
**0x2AE3AD : 9E -> 98
 
**0x2AE3F6 : 90 90 90 90 90 90 90 90 90 90 -> 03 03 01 03 03 02 02 03 03 01
 
**0x2AE3F6 : 90 90 90 90 90 90 90 90 90 90 -> 03 03 01 03 03 02 02 03 03 01
*Some jobs will attempt to use forbidden items
 
**0x0F6B9D : 04 -> 0C
 
**0x0F7493 : 04 -> 0C
 
**0x107BC3 : 04 -> 0C
 
**0x1081F1 : 04 -> 0C
 
**0x108771 : 04 -> 0C
 
*Failed merchant visits do not save their results correctly in history
 
**0x24EE49 : 10 -> 28
 
**0x24EE69 : 0C -> 24
 
**0x24EE82 : 10 -> 28
 
**0x24EE9E : 0C -> 24
 
**0x24EEB6 : 10 -> 28
 
**0x24EED2 : 0C -> 24
 
**0x24EEEA : 10 -> 28
 
**0x24EF06 : 0C -> 24
 
**0x24EF25 : 10 -> 28
 
**0x24EF41 : 0C -> 24
 
  
 
=====Improvements=====
 
=====Improvements=====
Line 349: Line 298:
 
*Allow fortress mode attacks from Semi-megabeasts as well as full Megabeasts
 
*Allow fortress mode attacks from Semi-megabeasts as well as full Megabeasts
 
**0x0248F1B : E8 80 76 DC FF -> 8A 42 10 24 30
 
**0x0248F1B : E8 80 76 DC FF -> 8A 42 10 24 30
*Prevent married dwarves (especially the Baron, Count, and Duke) from having [[23a:children|children]] (due to there being no child cap)
+
*Allow milking of tame purring maggots (instead of only "live" ones, which invariably get eaten)
**0x0FEADD : 0F 85 -> 90 E9
 
*Prevent [[23a:wagon|wagon]]s from waiting for creatures to move aside
 
**0x21DF9F : A4 -> 00
 
**0x21E130 : 86 -> 00
 
**0x21E296 : 93 -> 00
 
*Allow milking of tame purring maggots (instead of only "live" ones)
 
 
**0x0F16A1 : 18 -> 58
 
**0x0F16A1 : 18 -> 58
 
**0x22E93C : FF 10 83 F8 34 75 -> E9 24 02 00 00 74
 
**0x22E93C : FF 10 83 F8 34 75 -> E9 24 02 00 00 74
Line 365: Line 308:
 
**0x2B22FC : 00 -> 01
 
**0x2B22FC : 00 -> 01
 
**0x2B22FF : ED B6 -> AD BD
 
**0x2B22FF : ED B6 -> AD BD
*Make Farmers drop gathered crops on the farm plot (instead of hauling them back to a stockpile)
 
**0x228A28 : FF -> 01
 
**0x228A2A : FF -> 00
 
**0x228A2C : 00 -> 01
 
**0x228A31 : BB 4F -> 7B 56
 
*Make Fisherdwarves drop caught fish on the ground (instead of hauling them back to a stockpile)
 
**0x2B10CE : FF 6A FF 57 -> 01 57 6A 01
 
**0x2B10D4 : 18 C9 -> D8 CF
 
**0x2B13E1 : FF 6A FF 57 -> 01 57 6A 01
 
**0x2B13E7 : 05 C6 -> C5 CC
 
  
 
====DFHack-23a====
 
====DFHack-23a====
Line 412: Line 345:
  
 
====Body Parser====
 
====Body Parser====
Run [[User:Quietust/parsebody.php|parsebody.php]] from either your save directory or the game's root directory (only supports 0.47.05 or earlier) and all creature bodies will be examined for consistency. Warnings about unconnected shoulders, elbows, wrists, hips, knees, and ankles are to be expected on armless/legless creatures{{bug|4095}}, but others may indicate fundamental problems in your creature definitions.
+
Run [[User:Quietust/parsebody.php|parsebody.php]] and specify your save directory as a parameter (or omit it to use the current working directory) and all creature bodies will be examined for consistency. Warnings about unconnected shoulders, elbows, wrists, hips, knees, and ankles are to be expected on armless/legless creatures{{bug|4095}}, but others may indicate fundamental problems in your creature definitions.
  
 
====23a Text Utility====
 
====23a Text Utility====

Please note that all contributions to Dwarf Fortress Wiki are considered to be released under the GFDL & MIT (see Dwarf Fortress Wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Cancel Editing help (opens in new window)