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 23a:Known bugs and issues
Jump to navigation
Jump to search
Warning: You are not logged in.
Your IP address will be recorded in this page's edit history.
You are editing a page for an older version of Dwarf Fortress ("Main" is the current version, not "23a"). Please make sure you intend to do this. If you are here by mistake, see the current page instead.
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: | ||
{{Quality|Fine|20:30, 30 April 2013 (UTC)}} | {{Quality|Fine|20:30, 30 April 2013 (UTC)}} | ||
{{av}} | {{av}} | ||
− | + | This is a list of '''known bugs and issues'''. | |
+ | Do '''NOT''' post theories, observed problems or unverified hiccups here. | ||
== Known bugs == | == Known bugs == | ||
A number of significant bugs exist in this version of Dwarf Fortress, and while Toady has fixed some of them in later versions, he will obviously never fix them in this version. To address this, a number of '''binary patches''' have been written which will fix some of the most significant bugs in this version of the game. | A number of significant bugs exist in this version of Dwarf Fortress, and while Toady has fixed some of them in later versions, he will obviously never fix them in this version. To address this, a number of '''binary patches''' have been written which will fix some of the most significant bugs in this version of the game. | ||
− | + | To apply a binary patch, open "dwarfort.exe" in a hex editor (such as [http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm XVI32]), jump to the address listed, verify that the sequence of bytes on the left are correct, then overwrite them with the sequence of bytes on the right. | |
− | |||
− | To apply | ||
=== Artifact holders === | === Artifact holders === | ||
Line 16: | Line 15: | ||
The underlying problem is that when the game compares the dwarf carrying the artifact to the dwarf who created it (to prevent a hauler from hiding or obsessing over an artifact it did not create), it truncates the creator's 32-bit ID to an 8-bit value; since more than 256 units are created during world generation, this prevents the numbers from ever matching. | The underlying problem is that when the game compares the dwarf carrying the artifact to the dwarf who created it (to prevent a hauler from hiding or obsessing over an artifact it did not create), it truncates the creator's 32-bit ID to an 8-bit value; since more than 256 units are created during world generation, this prevents the numbers from ever matching. | ||
− | + | Patch: | |
* 0x14079B : 8A -> 8B | * 0x14079B : 8A -> 8B | ||
* 0x1407A1 : B0 FE C2 04 00 90 90 90 -> B8 FE FF FF FF C2 04 00 | * 0x1407A1 : B0 FE C2 04 00 90 90 90 -> B8 FE FF FF FF C2 04 00 | ||
* 0x0B5430 : B0 FE C2 04 00 90 90 90 -> B8 FE FF FF FF C2 04 00 | * 0x0B5430 : B0 FE C2 04 00 90 90 90 -> B8 FE FF FF FF C2 04 00 | ||
− | * 0x1E8015 : 0F BE C0 -> 90 90 90 | + | * 0x1E8015 : 0F BE C0 -> 90 90 90 |
=== Missing Thoughts === | === Missing Thoughts === | ||
− | The [[Sheriff]], [[Mayor]], and [[Baron]] are supposed to receive unhappy thoughts if you do not have enough [[jail]]s, [[fortress guard]]s, and/or [[royal guard]]s. Special logic exists to prevent these thoughts from happening within 3 months of their arrival at your fortress (so you get a grace period to comply with their new demands). Due to a bug, the condition is backwards, so they only receive these thoughts during their first 3 months at your fortress | + | The [[Sheriff]], [[Mayor]], and [[Baron]] are supposed to receive unhappy thoughts if you do not have enough [[jail]]s, [[fortress guard]]s, and/or [[royal guard]]s. Special logic exists to prevent these thoughts from happening within 3 months of their arrival at your fortress (so you get a grace period to comply with their new demands). Due to a bug, the condition is backwards, so they only receive these thoughts during their first 3 months at your fortress. |
− | + | Patches: | |
* 0x2344E2 : 74 -> 75 (insufficient jails for Sheriff) | * 0x2344E2 : 74 -> 75 (insufficient jails for Sheriff) | ||
* 0x23448B : 74 -> 75 (insufficient fortress guards for Sheriff and Mayor) | * 0x23448B : 74 -> 75 (insufficient fortress guards for Sheriff and Mayor) | ||
− | * 0x234425 : 84 -> 85 (insufficient royal guards for Baron) | + | * 0x234425 : 84 -> 85 (insufficient royal guards for Baron) |
− | Additionally, nobles which require a [[tomb]] do not receive any thoughts based on its quality, whether it is above or below the quality level they require. They will still receive unhappy thought about '''other''' dwarves having better tombs than them (unless said dwarf actually deserves a tomb that good), though. This happens because the noble compares its current tomb quality to '''itself''' rather than to its desired tomb quality | + | Additionally, nobles which require a [[tomb]] do not receive any thoughts based on its quality, whether it is above or below the quality level they require. They will still receive unhappy thought about '''other''' dwarves having better tombs than them (unless said dwarf actually deserves a tomb that good), though. This happens because the noble compares its current tomb quality to '''itself''' rather than to its desired tomb quality. |
− | + | Patch: | |
* 0x2BCEF3 : 8B 54 24 3C 8B F0 -> 90 E9 61 17 09 00 | * 0x2BCEF3 : 8B 54 24 3C 8B F0 -> 90 E9 61 17 09 00 | ||
− | * 0x34E65A | + | * 0x34E65A : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -> 8B 94 24 70 01 00 00 89 C6 E9 91 E8 F6 FF |
=== Stuck Dwarves === | === Stuck Dwarves === | ||
− | If a dwarf wanders near a [[magma smelter]], [[magma glass furnace]], or [[magma kiln]], it can stop on a tile that has magma beneath it, leaving it unable to move away and causing it to repeatedly spam Drink job cancellations due to "cannot find path" | + | If a dwarf wanders near a [[magma smelter]], [[magma glass furnace]], or [[magma kiln]], it can stop on a tile that has magma beneath it, leaving it unable to move away and causing it to repeatedly spam Drink job cancellations due to "cannot find path". This bug is well known for its appearance in [http://lparchive.org/Dwarf-Fortress-Boatmurdered/Update%202-11/ Update 2-11]] of the saga of [[Main:Boatmurdered|Boatmurdered]], in which "Sankis has suddenly decided to try and drink out of the lava river". |
The problem is that these workshops use the same tile accessibility logic as their non-magma counterparts, which allows dwarves to walk onto the magma tiles. | The problem is that these workshops use the same tile accessibility logic as their non-magma counterparts, which allows dwarves to walk onto the magma tiles. | ||
− | + | Patch: | |
* 0x016EF0 : A5 6E 41 -> 68 E6 74 | * 0x016EF0 : A5 6E 41 -> 68 E6 74 | ||
− | * 0x34E668 | + | * 0x34E668 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -> 83 7C 24 18 01 0F 85 A0 85 CC FF 8B 44 24 1C 85 C0 0F 85 94 85 CC FF E9 30 88 CC FF |
Another bug causes dwarves to get stuck ''inside'' buildings when constructing statues, windows, and wells, since the jobs cause them to stand on top of the building itself during construction instead of next to the building. | Another bug causes dwarves to get stuck ''inside'' buildings when constructing statues, windows, and wells, since the jobs cause them to stand on top of the building itself during construction instead of next to the building. | ||
− | + | Patch: | |
* 0x0F64D7 : 12 0F 84 52 01 -> 0F 0F 8C 12 00 | * 0x0F64D7 : 12 0F 84 52 01 -> 0F 0F 8C 12 00 | ||
* 0x0F64EB : 84 -> 8E | * 0x0F64EB : 84 -> 8E | ||
* 0x0F7E9F : 12 0F 84 41 01 -> 0F 0F 8C 12 00 | * 0x0F7E9F : 12 0F 84 41 01 -> 0F 0F 8C 12 00 | ||
− | * 0x0F7EB3 : 84 -> 8E | + | * 0x0F7EB3 : 84 -> 8E |
=== Z Coordinate Bugs === | === Z Coordinate Bugs === | ||
Line 58: | Line 57: | ||
The first place where this problem appears is that waterfalls in the [[cave river]] sometimes fail to generate [[mist]]. The fix for this bug only applies to newly created fortresses; for existing fortresses, a 3rd-party utility is necessary to fix the problem. | The first place where this problem appears is that waterfalls in the [[cave river]] sometimes fail to generate [[mist]]. The fix for this bug only applies to newly created fortresses; for existing fortresses, a 3rd-party utility is necessary to fix the problem. | ||
− | + | Patch: | |
− | * 0x28A90E : 66 -> 90 | + | * 0x28A90E : 66 -> 90 |
The second instance of this bug affects the hidden webs woven by [[giant cave spider]]s over the [[chasm]], preventing dwarves from ever stumbling upon them. As above, this fix only affects newly created spider webs. | The second instance of this bug affects the hidden webs woven by [[giant cave spider]]s over the [[chasm]], preventing dwarves from ever stumbling upon them. As above, this fix only affects newly created spider webs. | ||
− | + | Patch: | |
* 0x249EDD : BB 10 00 00 00 -> 66 89 6B 20 90 | * 0x249EDD : BB 10 00 00 00 -> 66 89 6B 20 90 | ||
* 0x249EE5 : 94 01 00 -> AC 47 10 | * 0x249EE5 : 94 01 00 -> AC 47 10 | ||
− | * 0x34E695 | + | * 0x34E695 : 00 00 00 00 00 00 00 00 00 00 -> BB 10 00 00 00 E9 DE B9 EF FF |
=== Vermin Problems === | === Vermin Problems === | ||
− | If a vermin marked as being capable of escaping from traps is placed inside a container (e.g. a [[cage]], [[animal trap]], or an Adventurer's [[backpack]]), it will remain inside indefinitely, but if the container happens to be an [[artifact]], the vermin will escape immediately. Not surprisingly, this bug is caused by a backwards condition | + | If a vermin marked as being capable of escaping from traps is placed inside a container (e.g. a [[cage]], [[animal trap]], or an Adventurer's [[backpack]]), it will remain inside indefinitely, but if the container happens to be an [[artifact]], the vermin will escape immediately. Not surprisingly, this bug is caused by a backwards condition. |
− | + | Patch: | |
− | * 0x169B1B : 84 -> 85 | + | * 0x169B1B : 84 -> 85 |
− | Additionally, if a live [[fish]] is successfully caught and placed inside an aquarium filled with water, all subsequently captured live vermin will fail to be processed by the game - fish out of water will not suffocate, and purring maggots will never allow themselves to be milked subsequent times. This bug results from the incorrect usage of a C++ "break;" statement instead of "continue;", causing it to exit out of its loop early instead of continuing on the next entry | + | Additionally, if a live [[fish]] is successfully caught and placed inside an aquarium filled with water, all subsequently captured live vermin will fail to be processed by the game - fish out of water will not suffocate, and purring maggots will never allow themselves to be milked subsequent times. This bug results from the incorrect usage of a C++ "break;" statement instead of "continue;", causing it to exit out of its loop early instead of continuing on the next entry. |
− | + | Patch: | |
* 0x169D12 : DD -> D6 | * 0x169D12 : DD -> D6 | ||
− | * | + | * 0x169D29 : C6 -> BF |
=== Item Improvements === | === Item Improvements === | ||
For reasons unknown, items which have been improved in any way are ineligible for most jobs. This restriction was removed in later versions of Dwarf Fortress, and this patch does the same thing. | For reasons unknown, items which have been improved in any way are ineligible for most jobs. This restriction was removed in later versions of Dwarf Fortress, and this patch does the same thing. | ||
− | + | Patch: | |
* 0x0F6C04 : D7 05 -> 00 00 | * 0x0F6C04 : D7 05 -> 00 00 | ||
* 0x0F74DC : AB 03 -> 00 00 | * 0x0F74DC : AB 03 -> 00 00 | ||
Line 89: | Line 88: | ||
* 0x108231 : D0 02 -> 00 00 | * 0x108231 : D0 02 -> 00 00 | ||
* 0x1087B7 : 17 04 -> 00 00 | * 0x1087B7 : 17 04 -> 00 00 | ||
− | * 0x108EA3 : FD 03 -> 00 00 | + | * 0x108EA3 : FD 03 -> 00 00 |
=== Item Production === | === Item Production === | ||
In the raws for [[trap component]]s, the MATERIAL_SIZE [[trap component token|token]] allows specifying how many bars are needed to make it, but this value is never actually used. Curiously, logic '''does''' exist to look up the trap component's material size, but the logic is never reached because it is inside a case which does not handle trap components. | In the raws for [[trap component]]s, the MATERIAL_SIZE [[trap component token|token]] allows specifying how many bars are needed to make it, but this value is never actually used. Curiously, logic '''does''' exist to look up the trap component's material size, but the logic is never reached because it is inside a case which does not handle trap components. | ||
− | + | Patch: | |
* 0x0F82C0 : 22 23 -> 05 05 | * 0x0F82C0 : 22 23 -> 05 05 | ||
* 0x0F835B : 09 -> 00 | * 0x0F835B : 09 -> 00 | ||
− | * 0x0F8423 : 0D -> 0A | + | * 0x0F8423 : 0D -> 0A |
Whenever a [[strange mood]] produces a gauntlet, it always makes it right-handed. What actually happens is that it has a 50% chance to make the gauntlet right-handed, but the opposing case '''also''' makes it right-handed - the fix makes it left-handed instead. | Whenever a [[strange mood]] produces a gauntlet, it always makes it right-handed. What actually happens is that it has a 50% chance to make the gauntlet right-handed, but the opposing case '''also''' makes it right-handed - the fix makes it left-handed instead. | ||
− | + | Patch: | |
− | * 0x12DD09 : 01 -> 00 | + | * 0x12DD09 : 01 -> 00 |
− | |||
− | |||
− | |||
− | |||
− | |||
=== Miscarriages === | === Miscarriages === | ||
If a pregnant dwarf gets too hungry or thirsty (Starving or Dehydrated), she will have a miscarriage and receive an unhappy thought. Due a bug, though, the check for dehydration accidentally checks the dwarf's current Hunger instead of her Thirst, resulting in a miscarriage if the dwarf merely becomes Hungry. | If a pregnant dwarf gets too hungry or thirsty (Starving or Dehydrated), she will have a miscarriage and receive an unhappy thought. Due a bug, though, the check for dehydration accidentally checks the dwarf's current Hunger instead of her Thirst, resulting in a miscarriage if the dwarf merely becomes Hungry. | ||
− | + | Patch: | |
* 0x2BD3CF : 81 F9 50 C3 00 -> 90 E9 AF 12 09 | * 0x2BD3CF : 81 F9 50 C3 00 -> 90 E9 AF 12 09 | ||
− | * 0x34E684 | + | * 0x34E684 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -> 8B 8D 8C 03 00 00 81 F9 50 C3 00 00 E9 40 ED F6 FF |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Minor issues == | == Minor issues == | ||
Line 202: | Line 116: | ||
=== Milking Issue === | === Milking Issue === | ||
− | To milk something it has to be a [[vermin]]ous creature | + | To milk something it has to be a [[vermin]]ous creature. The only milkable thing you can carry is a purring maggot. Larger creatures are not yet milkable because the AI is not yet implemented to bring the creatures to the [[farmer's workshop]]. It would be relatively simple to implement, but is not a priority at this time. |
− | + | Note that while you cannot milk larger animals yourself, civilisations can still milk animals "off screen" for your benefit. | |
=== Building a Wooden Weapon... Rack === | === Building a Wooden Weapon... Rack === |