<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://moddingwiki.shikadi.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Spectere</id>
	<title>ModdingWiki - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://moddingwiki.shikadi.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Spectere"/>
	<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/wiki/Special:Contributions/Spectere"/>
	<updated>2026-05-14T05:47:54Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.11</generator>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Player_Character&amp;diff=11918</id>
		<title>Dungeons of the Unforgiven Player Character</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Player_Character&amp;diff=11918"/>
		<updated>2024-05-29T06:21:00Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Added fillHpAndSpLoad, clarified what gameTimer represents.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Playerdata Infobox&lt;br /&gt;
 | Savegame = Yes&lt;br /&gt;
 | Where = ?&lt;br /&gt;
 | Elements = Player character data&lt;br /&gt;
 | Games =&lt;br /&gt;
   {{Game|Dungeons of the Unforgiven}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The saved game format for &#039;&#039;[[Dungeons of the Unforgiven]]&#039;&#039; appears to be a simple dump of the game&#039;s internal structures, with a couple of checksum bytes added on, presumably to slow cheaters down a bit. Some of the chunks of data are in a very peculiar order (such as some of the items being in radically different spots of the file), which makes it somewhat annoying to try to directly load into a C struct or similar data structure.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re parsing this format, be very mindful of the data types. Signed and unsigned data types, as well as differing field sizes, are used even with related fields. For example, Rings of Protection are stored in an unsigned byte while Potions of Healing are stored in a signed word.&lt;br /&gt;
&lt;br /&gt;
== File Layout ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset (hex) !! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0000 || [[char]][18] || playerName || The name of the player character (including a null terminator).&lt;br /&gt;
|-&lt;br /&gt;
| 0x0012 || [[BYTE]][22] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0028 || [[INT8]] || playerRace || The race of the player character.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0029 || [[INT8]] || playerGender || The player character&#039;s gender (0x00 == male; 0x01 == female)&lt;br /&gt;
|-&lt;br /&gt;
| 0x002A || [[INT8]] || playerClass || The player character&#039;s class.&lt;br /&gt;
|-&lt;br /&gt;
| 0x002B || [[BYTE]][6] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0031 || [[INT16LE]] || playerCurrentHP || The player character&#039;s current hit points.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0033 || [[INT16LE]] || playerMaxHP || The player character&#039;s maximum hit points.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0035 || [[Single]] || playerCurrentSP || The player character&#039;s current spell points.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0039 || [[Single]] || playerMaxSP || The player character&#039;s maximum spell points.&lt;br /&gt;
|-&lt;br /&gt;
| 0x003D || [[INT16LE]] || playerHeight || The player character&#039;s height, divided by 4. (The game multiplies this value by 4 to give the stated number of inches.)&lt;br /&gt;
|-&lt;br /&gt;
| 0x003F || [[INT16LE]] || nakedWeight || The player&#039;s base weight.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0041 || [[INT16LE]] || loadedWeight || The player&#039;s loaded weight (note: this always gets updated by the game).&lt;br /&gt;
|-&lt;br /&gt;
| 0x0043 || [[BYTE]][62] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0081 || [[BYTE]] || weaponFists || Player character has their fists (normally these cannot be dropped).&lt;br /&gt;
|-&lt;br /&gt;
| 0x0082 || [[BYTE]] || weaponStick || Player character has the stick.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0083 || [[BYTE]] || weaponClub || Player character has the club.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0084 || [[BYTE]] || weaponMace || Player character has the mace.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0085 || [[BYTE]] || weaponKnife || Player character has the knife.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0086 || [[BYTE]] || weaponShortSword || Player character has the short sword.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0087 || [[BYTE]] || weaponLongSword || Player character has the long sword.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0088 || [[BYTE]] || weaponGreatSword || Player character has the great sword.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0089 || [[BYTE]][5] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x008E || [[INT8]] || levelFists || The permanent enchantment level of the fists.&lt;br /&gt;
|-&lt;br /&gt;
| 0x008F || [[INT8]] || levelStick || The permanent enchantment level of the stick.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0090 || [[INT8]] || levelClub || The permanent enchantment level of the club.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0091 || [[INT8]] || levelMace || The permanent enchantment level of the mace.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0092 || [[INT8]] || levelKnife || The permanent enchantment level of the knife.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0093 || [[INT8]] || levelShortSword || The permanent enchantment level of the short sword.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0094 || [[INT8]] || levelLongSword || The permanent enchantment level of the long sword.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0095 || [[INT8]] || levelGreatSword || The permanent enchantment level of the great sword.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0096 || [[BYTE]][5] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x009B || [[INT8]] || equippedWeapon || The weapon that the player character currently has equipped. See the [[#Weapon_IDs|Weapon IDs]] section for valid values.&lt;br /&gt;
|-&lt;br /&gt;
| 0x009C || [[BYTE]][20] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x00B0 || [[BYTE]] || armorSkin || Player character has their skin (normally this cannot be dropped).&lt;br /&gt;
|-&lt;br /&gt;
| 0x00B1 || [[BYTE]] || armorLeather || Player character has leather armor.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00B2 || [[BYTE]] || armorChain || Player character has chain armor.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00B3 || [[BYTE]] || armorScale || Player character has scale armor.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00B4 || [[BYTE]] || armorBreastPlate || Player character has the breast plate.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00B5 || [[BYTE]] || armorFieldPlate || Player character has field plate.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00B6 || [[BYTE]] || armorTitanium || Player character has the titanium armor.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00B7 || [[BYTE]] || armorSlot8 || This &amp;quot;armor&amp;quot; is not implemented in the game and points to garbage data. See the notes below for a little bit more information. {{TODO|Figure out exactly what in the executable this is pointing to, as it is technically fully usable.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x00B8 || [[INT8]] || levelSkin || The permanent enchantment level of the skin.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00B9 || [[INT8]] || levelLeather || The permanent enchantment level of the leather armor.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00BA || [[INT8]] || levelChain || The permanent enchantment level of the chain armor.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00BB || [[INT8]] || levelScale || The permanent enchantment level of the scale armor.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00BC || [[INT8]] || levelBreastPlate || The permanent enchantment level of the breast plate.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00BD || [[INT8]] || levelFieldPlate || The permanent enchantment level of the field plate.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00BE || [[INT8]] || levelTitanium || The permanent enchantment level of the titanium armor.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00BF || [[INT8]] || levelSlot8 || The permanent enchantment level of the glitchy armor.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00C0 || [[INT8]] || equippedArmor || The armor that the player character currently has equipped. See the [[#Armor_IDs|Armor IDs]] section for valid values.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00C1 || [[BYTE]][156] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x015D || [[INT8]] || orangePotions || The number of orange potions in the player&#039;s inventory (+6 Strength / -3 Luck)&lt;br /&gt;
|-&lt;br /&gt;
| 0x015E || [[INT8]] || greenPotions || The number of green potions in the player&#039;s inventory (+6 Intelligence / -3 Agility)&lt;br /&gt;
|-&lt;br /&gt;
| 0x015F || [[INT8]] || bluePotions || The number of blue potions in the player&#039;s inventory (+6 Wisdom / -3 Constitution)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0160 || [[INT8]] || redPotions || The number of red potions in the player&#039;s inventory (+6 Constitution / -3 Wisdom)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0161 || [[INT8]] || whitePotions || The number of white potions in the player&#039;s inventory (+6 Agility / -3 Intelligence)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0162 || [[INT8]] || yellowPotions || The number of yellow potions in the player&#039;s inventory (+6 Luck / -3 Strength)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0163 || [[BYTE]][20] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0177 || [[#Spells|SPELL_LIST]] || spellbook || The spells that the player has learned and can cast at any time at the cost of spell power.&lt;br /&gt;
|-&lt;br /&gt;
| 0x022B || [[#Spells|SPELL_LIST]] || scrolls || The spells that the player can cast from a scroll.&lt;br /&gt;
|-&lt;br /&gt;
| 0x02DF || [[#Spells|SPELL_LIST]] || wands || The spell wands that the player possesses.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0393 || [[#Spells|SPELL_LIST]] || papers || The spell papers that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0447 || [[BYTE]][13] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0454 || [[INT32LE]] || rublesInPocket || The number of rubles that the player has on hand.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0458 || [[INT32LE]] || rublesInBank || The number of rubles that the player has in the bank.&lt;br /&gt;
|-&lt;br /&gt;
| 0x045C || [[BYTE]][8] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0464 || [[INT32LE]] || cultureStock || The amount of culture stock that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0468 || [[INT32LE]] || childrenHelped || The number of children that the player helped (at the temple).&lt;br /&gt;
|-&lt;br /&gt;
| 0x046C || [[INT32LE]] || magicCrystals || The number of magic crystals that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0470 || [[INT32LE]] || americanDollars || The number of American Dollars that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0474 || [[BYTE]][816] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x07A4 || [[Double]] || experiencePoints || The number of experience points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07AC || [[INT16LE]] || playerLevel || The player character&#039;s current level.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07AE || [[INT16LE]] || playerDirection || The direction that the player character is facing (0x00 == north; 0x01 == south; 0x02 == west; 0x03 == east).&lt;br /&gt;
|-&lt;br /&gt;
| 0x07B0 || [[INT16LE]] || playerPositionX || The X coordinate of the player in the current dungeon floor.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07B2 || [[INT16LE]] || playerPositionY || The Y coordinate of the player in the current dungeon floor.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07B4 || [[INT16LE]] || playerFloor || The floor of the dungeon that the player is currently on (0 is the town).&lt;br /&gt;
|-&lt;br /&gt;
| 0x07B6 || [[INT16LE]] || playerModule || The module that the player is currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07B8 || [[BYTE]][18] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x07CA || [[UINT8]] || ringsOfRegeneration || The number of rings of regeneration that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07CB || [[BYTE]] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x07CC || [[UINT8]] || nuclearHandGrenade || The number of nuclear hand grenades that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07CD || [[UINT8]] || stonesOfSeeing || The number of stones of seeing that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07CE || [[INT16LE]] || diseaseTimer || The number of turns until disease damages constitution (0 or -1 disables the timer).&lt;br /&gt;
|-&lt;br /&gt;
| 0x07D0 || [[INT16LE]] || poisonTimer || The number of turns until poison damages strength (0 or -1 disables the timer).&lt;br /&gt;
|-&lt;br /&gt;
| 0x07D2 || [[UINT8]] || enchantWeaponLevel || The level of the current &amp;quot;Enchant Weapon&amp;quot; preparation spell in effect.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07D3 || [[UINT8]] || enchantArmorLevel || The level of the current &amp;quot;Enchant Armor&amp;quot; preparation spell in effect.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07D4 || [[UINT8]] || bodyArmor || The number of body armor items that the player has (not related to the gear, listed above).&lt;br /&gt;
|-&lt;br /&gt;
| 0x07D5 || [[UINT8]] || ringOfProtection || The number of rings of protection that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07D6 || [[UINT8]] || antiMagicRing || The number of anti-magic rings that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07D7 || [[BYTE]] || feather || Spell &amp;quot;Feather&amp;quot; is in effect. 0x01 == the preparation version; 0x64 == &amp;quot;Permanent Feather.&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x07D8 || [[BYTE]] || fastMove || Preparation spell &amp;quot;Fast Move&amp;quot; is in effect. Values greater than 0x01 make it permanent despite there being no such permanent spell!&lt;br /&gt;
|-&lt;br /&gt;
| 0x07D9 || [[BYTE]] || invisibility || Spell &amp;quot;Invisibility&amp;quot; is in effect. 0x01 == the preparation version; 0x64 == &amp;quot;Permanent Invisibility.&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x07DA || [[INT32LE]] || playerAge || The current age of the player character.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07DE || [[UINT8]] || preparationStrength || Preparation spell &amp;quot;Strength&amp;quot; is in effect. Normally set to 0x05 (yet changing it or any of the following strength/agility spell values to another nonzero value will not change the number of strength/agility points deducted by an inn stay).&lt;br /&gt;
|-&lt;br /&gt;
| 0x07DF || [[UINT8]] || preparationAgility || Preparation spell &amp;quot;Agility&amp;quot; is in effect. Normally set to 0x05.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07E0 || [[UINT8]] || superStrength || Preparation spell &amp;quot;Super Strength&amp;quot; is in effect. Normally set to 0x0A.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07E1 || [[UINT8]] || superAgility || Preparation spell &amp;quot;Super Agility&amp;quot; is in effect. Normally set to 0x0A.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07E2 || [[INT16LE]] || battleStrengthTimer || The number of turns the battle spell &amp;quot;Strength&amp;quot; remains in effect.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07E4 || [[INT16LE]] || battleSpeedTimer || The number of turns the battle spell &amp;quot;Speed&amp;quot; remains in effect.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07E6 || [[INT16LE]] || slowMonsterTimer || The number of turns the battle spell &amp;quot;Slow Enemies&amp;quot; remains in effect.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07E8 || [[UINT8]] || powerWeaponLevel || The level of the current &amp;quot;Power Weapon&amp;quot; battle spell in effect.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07E9 || [[INT16LE]] || powerWeaponTimer || The number of turns the current &amp;quot;Power Weapon&amp;quot; battle spell remains in effect. If this is set to zero or negative while powerWeaponLevel is nonzero, the spell will never wear off until an inn stay!&lt;br /&gt;
|-&lt;br /&gt;
| 0x07EB || [[UINT8]] || protectLevel || The level of the current &amp;quot;Protection&amp;quot; battle spell in effect (0x01 == &amp;quot;Minor Protection;&amp;quot; 0x02 == &amp;quot;Protection;&amp;quot; 0x03 == &amp;quot;Major Protection;&amp;quot; 0x04 == &amp;quot;Ultra Protection&amp;quot;).&lt;br /&gt;
|-&lt;br /&gt;
| 0x07EC || [[INT16LE]] || protectTimer || The number of turns the current &amp;quot;Protection&amp;quot; battle spell remains in effect. If this is set to zero or negative while protectLevel is nonzero, the spell will never wear off until an inn stay!&lt;br /&gt;
|-&lt;br /&gt;
| 0x07EE || [[INT16LE]] || resistPoisonTimer || The number of turns the battle spell &amp;quot;Resist Poison&amp;quot; remains in effect.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07F0 || [[INT16LE]] || resistDiseaseTimer || The number of turns the battle spell &amp;quot;Resist Disease&amp;quot; remains in effect.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07F2 || [[INT16LE]] || antiColdTimer || The number of turns the battle spell &amp;quot;Anti-Cold&amp;quot; remains in effect.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07F4 || [[INT16LE]] || antiFireTimer || The number of turns the battle spell &amp;quot;Anti-Fire&amp;quot; remains in effect.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07F6 || [[INT16LE]] || resistDrainTimer || The number of turns the battle spell &amp;quot;Resist Level Drain&amp;quot; remains in effect.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07F8 || [[INT16LE]] || stopMonsterTimer || The number of turns the battle spell &amp;quot;Sleep&amp;quot; could remain in effect (though it often wears off much earlier due to the vagaries of the spell).&lt;br /&gt;
|-&lt;br /&gt;
| 0x07FA || [[INT16LE]] || holdMonsterTimer || The number of turns the battle spell &amp;quot;Hold Monster&amp;quot; remains in effect.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07FC || [[BYTE]][6] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0802 || [[INT8]] || floorSloshers || The number of floor sloshers that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0803 || [[BYTE]][15] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0812 || [[INT16LE]] || potionsOfHealing || The number of potions of healing that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0814 || [[INT16LE]] || stonesOfTeleportation || The number of stones of teleportation that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0816 || [[INT16LE]] || playerStrength || The number of strength points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0818 || [[INT16LE]] || playerIntelligence || The number of intelligence points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x081A || [[INT16LE]] || playerWisdom || The number of wisdom points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x081C || [[INT16LE]] || playerConstitution || The number of constitution points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x081E || [[INT16LE]] || playerAgility || The number of agility points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0820 || [[INT16LE]] || playerLuck || The number of luck points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0822 || [[BYTE]][21] || trapDoorKey || The trapdoor keys owned by the player. For each nonzero value in trapDoorKey[n], the player is able to use any trapdoors leading to floor (n * 5).&lt;br /&gt;
|-&lt;br /&gt;
| 0x0837 || [[BYTE]][28] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0853 || [[INT8]] || gauntlets || The number of gauntlets that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0854 || [[INT16LE]] || fillHpAndSpOnLoad || If this is set to a non-zero value, the player&#039;s HP and SP will be reset to their maximum values when the saved game is loaded. This value is reset to 0 after the character is loaded, so the effect will only happen once. This does not appear to be set anywhere else in the game, so its purpose is unknown (debugging, perhaps?).&lt;br /&gt;
|-&lt;br /&gt;
| 0x0856 || [[BYTE]][160] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x08F6 || [[BYTE]] || difficulty || The difficulty level that the player is playing on. (0x00 == normal; 0x01 == &amp;quot;I can handle anything!&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08F7 || [[BYTE]][122] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0971 || [[UINT32LE]] || gameTimer || The amount of total time, in PC timer ticks (note: the Intel 8253 PIT tick rate is roughly 18.2hz), that the player has been playing on this saved game. {{TODO|Figure out whether or not this actually does anything.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0975 || [[BYTE]][274] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A87 || [[UINT8]][2] || checksum || The checksum of the saved game file. See [[#Checksum|below]] for more information.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Races ===&lt;br /&gt;
&lt;br /&gt;
The following races can be chosen:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Race&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Humanoid&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Ape&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Childman&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Rodent&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Hobo&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Giant&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Midget&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || Shrimp&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Classes ===&lt;br /&gt;
&lt;br /&gt;
The following classes can be chosen:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Class&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Fighter&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Worshipper&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Monk&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Wizard&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Priest&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Sage&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Mage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spells ===&lt;br /&gt;
&lt;br /&gt;
Spells are stored in the save file per the following table. In all cases, the spells are stored in order from left-to-right, top-to-bottom, with respect to the in-game spell browser. Each spell category has 15 unused bytes at the end; Monks have all these bytes filled with 0x01 in their spellbook section nonetheless.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPermanent || The permanent spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPreparation || The preparation spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsWizard || The wizard battle spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPriest || The priest battle spells that the player has access to.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Weapon IDs ===&lt;br /&gt;
&lt;br /&gt;
The following weapon IDs can be used in the &#039;&#039;&#039;equippedWeapon&#039;&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Weapon Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Fists&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Stick&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Club&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Mace&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Knife&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Short Sword&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Long Sword&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || Great Sword&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Note: the player does not have to own the specified weapon type in order to have it equipped. The equipment check is only performed when the player switches their weapon in-game.&lt;br /&gt;
&lt;br /&gt;
=== Armor IDs ===&lt;br /&gt;
&lt;br /&gt;
The following weapon IDs can be used in the &#039;&#039;&#039;equippedArmor&#039;&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Armor Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Skin&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Leather&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Chain&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Scale&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Breast Plate&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Field Plate&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Titanium&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || Glitchy Armor*&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Note: the player does not have to own the specified armor type in order to have it equipped. The equipment check is only performed when the player switches their armor in-game.&lt;br /&gt;
* *The eighth armor slot always appears in the armor list of the game as a blank slot, but only seven armor types appear within the game world. If the set of armor is hacked into the game with a hex editor or memory editor, it appears as jumbled text and provides a currently-unknown amount of protection.&lt;br /&gt;
&lt;br /&gt;
=== Checksum ===&lt;br /&gt;
&lt;br /&gt;
The checksum is calculated as follows (example in C# and assuming saveBytes is the saved game data, sans checksum—that is, the first 2695 (0xA87) bytes in the file):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
checksum[0] = checksum[1] = 0;&lt;br /&gt;
foreach(var b in saveBytes) {&lt;br /&gt;
    checksum[0] += b;&lt;br /&gt;
    checksum[1] += checksum[0] - checksum[0] * checksum[0];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the checksum is incorrect for the saved game file, the player will be immediately booted back to the DOS prompt with a &amp;quot;corrupted character&amp;quot; error.&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered and documented by [[User:Spectere|Spectere]] and [[User:Bag_of_Magic_Food|Bag of Magic Food]]. If you find this information helpful in a project you&#039;re working on, please give credit where credit is due. (A link back to this wiki would be nice too!)&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=User_talk:Bag_of_Magic_Food&amp;diff=9116</id>
		<title>User talk:Bag of Magic Food</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=User_talk:Bag_of_Magic_Food&amp;diff=9116"/>
		<updated>2020-08-03T22:24:23Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Created page with &amp;quot;Hey, thanks for your contributions to the Dungeons of the Unforgiven save data page! I&amp;#039;m looking forward to seeing what else you dig up. :)  -~~~~&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hey, thanks for your contributions to the Dungeons of the Unforgiven save data page! I&#039;m looking forward to seeing what else you dig up. :)  -[[User:Spectere|Spectere]] ([[User talk:Spectere|talk]]) 22:24, 3 August 2020 (UTC)&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Player_Character&amp;diff=9115</id>
		<title>Dungeons of the Unforgiven Player Character</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Player_Character&amp;diff=9115"/>
		<updated>2020-08-03T22:22:34Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Added Bag of Magic Food to the credits&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Playerdata Infobox&lt;br /&gt;
 | Savegame = Yes&lt;br /&gt;
 | Where = ?&lt;br /&gt;
 | Elements = Player character data&lt;br /&gt;
 | Games =&lt;br /&gt;
   {{Game|Dungeons of the Unforgiven}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The saved game format for &#039;&#039;[[Dungeons of the Unforgiven]]&#039;&#039; appears to be a simple dump of the game&#039;s internal structures, with a couple of checksum bytes added on, presumably to slow cheaters down a bit. Some of the chunks of data are in a very peculiar order (such as some of the items being in radically different spots of the file), which makes it somewhat annoying to try to directly load into a C struct or similar data structure.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re parsing this format, be very mindful of the data types. Signed and unsigned data types, as well as differing field sizes, are used even with related fields. For example, Rings of Protection are stored in an unsigned byte while Potions of Healing are stored in a signed word.&lt;br /&gt;
&lt;br /&gt;
== File Layout ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset (hex) !! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0000 || [[char]][18] || playerName || The name of the player character (including a null terminator).&lt;br /&gt;
|-&lt;br /&gt;
| 0x0012 || [[BYTE]][22] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0028 || [[INT8]] || playerRace || The race of the player character.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0029 || [[INT8]] || playerGender || The player character&#039;s gender (0x00 == male; 0x01 == female)&lt;br /&gt;
|-&lt;br /&gt;
| 0x002A || [[INT8]] || playerClass || The player character&#039;s class.&lt;br /&gt;
|-&lt;br /&gt;
| 0x002B || [[BYTE]][6] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0031 || [[INT16LE]] || playerCurrentHP || The player character&#039;s current hit points.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0033 || [[INT16LE]] || playerMaxHP || The player character&#039;s maximum hit points.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0035 || [[INT32LE]] || playerCurrentSP || The player character&#039;s current spell points.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0039 || [[INT32LE]] || playerMaxSP || The player character&#039;s maximum spell points.&lt;br /&gt;
|-&lt;br /&gt;
| 0x003D || [[BYTE]][2] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x003F || [[INT16LE]] || nakedWeight || The player&#039;s base weight.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0041 || [[INT16LE]] || loadedWeight || The player&#039;s loaded weight (note: this always gets updated by the game).&lt;br /&gt;
|-&lt;br /&gt;
| 0x0043 || [[BYTE]][62] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0081 || [[BYTE]] || weaponFists || Player character has their fists (normally these cannot be dropped).&lt;br /&gt;
|-&lt;br /&gt;
| 0x0082 || [[BYTE]] || weaponStick || Player character has the stick.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0083 || [[BYTE]] || weaponClub || Player character has the club.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0084 || [[BYTE]] || weaponMace || Player character has the mace.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0085 || [[BYTE]] || weaponKnife || Player character has the knife.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0086 || [[BYTE]] || weaponShortSword || Player character has the short sword.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0087 || [[BYTE]] || weaponLongSword || Player character has the long sword.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0088 || [[BYTE]] || weaponGreatSword || Player character has the great sword.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0089 || [[BYTE]][5] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x008E || [[INT8]] || levelFists || The permanent enchantment level of the fists.&lt;br /&gt;
|-&lt;br /&gt;
| 0x008F || [[INT8]] || levelStick || The permanent enchantment level of the stick.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0090 || [[INT8]] || levelClub || The permanent enchantment level of the club.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0091 || [[INT8]] || levelMace || The permanent enchantment level of the mace.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0092 || [[INT8]] || levelKnife || The permanent enchantment level of the knife.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0093 || [[INT8]] || levelShortSword || The permanent enchantment level of the short sword.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0094 || [[INT8]] || levelLongSword || The permanent enchantment level of the long sword.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0095 || [[INT8]] || levelGreatSword || The permanent enchantment level of the great sword.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0096 || [[BYTE]][5] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x009B || [[INT8]] || equippedWeapon || The weapon that the player character currently has equipped. See the [[#Weapon_IDs|Weapon IDs]] section for valid values.&lt;br /&gt;
|-&lt;br /&gt;
| 0x009C || [[BYTE]][20] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x00B0 || [[BYTE]] || armorSkin || Player character has their skin (normally this cannot be dropped).&lt;br /&gt;
|-&lt;br /&gt;
| 0x00B1 || [[BYTE]] || armorLeather || Player character has leather armor.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00B2 || [[BYTE]] || armorChain || Player character has chain armor.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00B3 || [[BYTE]] || armorScale || Player character has scale armor.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00B4 || [[BYTE]] || armorBreastPlate || Player character has the breast plate.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00B5 || [[BYTE]] || armorFieldPlate || Player character has field plate.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00B6 || [[BYTE]] || armorTitanium || Player character has the titanium armor.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00B7 || [[BYTE]] || armorSlot8 || This &amp;quot;armor&amp;quot; is not implemented in the game and points to garbage data. See the notes below for a little bit more information. {{TODO|Figure out exactly what in the executable this is pointing to, as it is technically fully usable.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x00B8 || [[INT8]] || levelSkin || The permanent enchantment level of the skin.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00B9 || [[INT8]] || levelLeather || The permanent enchantment level of the leather armor.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00BA || [[INT8]] || levelChain || The permanent enchantment level of the chain armor.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00BB || [[INT8]] || levelScale || The permanent enchantment level of the scale armor.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00BC || [[INT8]] || levelBreastPlate || The permanent enchantment level of the breast plate.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00BD || [[INT8]] || levelFieldPlate || The permanent enchantment level of the field plate.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00BE || [[INT8]] || levelTitanium || The permanent enchantment level of the titanium armor.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00BF || [[INT8]] || levelSlot8 || The permanent enchantment level of the glitchy armor.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00C0 || [[INT8]] || equippedArmor || The armor that the player character currently has equipped. See the [[#Armor_IDs|Armor IDs]] section for valid values.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00C1 || [[BYTE]][156] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x015D || [[INT8]] || orangePotions || The number of orange potions in the player&#039;s inventory (+6 Strength / -3 Luck)&lt;br /&gt;
|-&lt;br /&gt;
| 0x015E || [[INT8]] || greenPotions || The number of green potions in the player&#039;s inventory (+6 Intelligence / -3 Agility)&lt;br /&gt;
|-&lt;br /&gt;
| 0x015F || [[INT8]] || bluePotions || The number of blue potions in the player&#039;s inventory (+6 Wisdom / -3 Constitution)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0160 || [[INT8]] || redPotions || The number of red potions in the player&#039;s inventory (+6 Constitution / -3 Wisdom)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0161 || [[INT8]] || whitePotions || The number of white potions in the player&#039;s inventory (+6 Agility / -3 Intelligence)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0162 || [[INT8]] || yellowPotions || The number of yellow potions in the player&#039;s inventory (+6 Luck / -3 Strength)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0163 || [[BYTE]][20] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0177 || [[#Spells|SPELL_LIST]] || spellbook || The spells that the player has learned and can cast at any time at the cost of spell power.&lt;br /&gt;
|-&lt;br /&gt;
| 0x01A4 || [[#Spells|SPELL_LIST]] || scrolls || The spells that the player can cast from a scroll.&lt;br /&gt;
|-&lt;br /&gt;
| 0x01D1 || [[#Spells|SPELL_LIST]] || wands || The spell wands that the player possesses.&lt;br /&gt;
|-&lt;br /&gt;
| 0x01FE || [[#Spells|SPELL_LIST]] || papers || The spell papers that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| 0x022B || [[BYTE]][553] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0454 || [[INT32LE]] || rublesInPocket || The number of rubles that the player has on hand.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0458 || [[INT32LE]] || rublesInBank || The number of rubles that the player has in the bank.&lt;br /&gt;
|-&lt;br /&gt;
| 0x045C || [[BYTE]][8] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0464 || [[INT32LE]] || cultureStock || The amount of culture stock that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0468 || [[INT32LE]] || childrenHelped || The number of children that the player helped (at the temple).&lt;br /&gt;
|-&lt;br /&gt;
| 0x046C || [[INT32LE]] || magicCrystals || The number of magic crystals that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0470 || [[INT32LE]] || americanDollars || The number of American Dollars that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0474 || [[BYTE]][816] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x07A4 || [[Double]] || experiencePoints || The number of experience points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07AC || [[INT16LE]] || playerLevel || The player character&#039;s current level.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07AE || [[INT16LE]] || playerDirection || The direction that the player character is facing (0x00 == north; 0x01 == south; 0x02 == west; 0x03 == east).&lt;br /&gt;
|-&lt;br /&gt;
| 0x07B0 || [[INT16LE]] || playerPositionX || The X coordinate of the player in the current dungeon floor.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07B2 || [[INT16LE]] || playerPositionY || The Y coordinate of the player in the current dungeon floor.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07B4 || [[INT16LE]] || playerFloor || The floor of the dungeon that the player is currently on (0 is the town).&lt;br /&gt;
|-&lt;br /&gt;
| 0x07B6 || [[INT16LE]] || playerModule || The module that the player is currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07B8 || [[BYTE]][18] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x07CA || [[UINT8]] || ringsOfRegeneration || The number of rings of regeneration that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07CB || [[BYTE]] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x07CC || [[UINT8]] || nuclearHandGrenade || The number of nuclear hand grenades that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07CD || [[UINT8]] || stonesOfSeeing || The number of stones of seeing that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07CE || [[INT16LE]] || diseaseTimer || The number of turns until disease damages constitution (0 or -1 disables the timer).&lt;br /&gt;
|-&lt;br /&gt;
| 0x07D0 || [[INT16LE]] || poisonTimer || The number of turns until poison damages strength (0 or -1 disables the timer).&lt;br /&gt;
|-&lt;br /&gt;
| 0x07D2 || [[UINT8]] || enchantWeaponLevel || The level of the current &amp;quot;Enchant Weapon&amp;quot; preparation spell in effect.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07D3 || [[UINT8]] || enchantArmorLevel || The level of the current &amp;quot;Enchant Armor&amp;quot; preparation spell in effect.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07D4 || [[UINT8]] || bodyArmor || The number of body armor items that the player has (not related to the gear, listed above).&lt;br /&gt;
|-&lt;br /&gt;
| 0x07D5 || [[UINT8]] || ringOfProtection || The number of rings of protection that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07D6 || [[UINT8]] || antiMagicRing || The number of anti-magic rings that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07D7 || [[BYTE]][3] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x07DA || [[INT32LE]] || playerAge || The current age of the player character.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07DE || [[BYTE]][36] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0802 || [[INT8]] || floorSloshers || The number of floor sloshers that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0803 || [[BYTE]][15] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0812 || [[INT16LE]] || potionsOfHealing || The number of potions of healing that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0814 || [[INT16LE]] || stonesOfTeleportation || The number of stones of teleportation that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0816 || [[INT16LE]] || playerStrength || The number of strength points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0818 || [[INT16LE]] || playerIntelligence || The number of intelligence points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x081A || [[INT16LE]] || playerWisdom || The number of wisdom points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x081C || [[INT16LE]] || playerConstitution || The number of constitution points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x081E || [[INT16LE]] || playerAgility || The number of agility points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0820 || [[INT16LE]] || playerLuck || The number of luck points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0822 || [[BYTE]][21] || trapDoorKey || The trapdoor keys owned by the player. For each nonzero value in trapDoorKey[n], the player is able to use any trapdoors leading to floor (n * 5).&lt;br /&gt;
|-&lt;br /&gt;
| 0x0837 || [[BYTE]][28] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0853 || [[INT8]] || gauntlets || The number of gauntlets that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0854 || [[BYTE]][162] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x08F6 || [[BYTE]] || difficulty || The difficulty level that the player is playing on. (0x00 == normal; 0x01 == &amp;quot;I can handle anything!&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08F7 || [[BYTE]][122] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0971 || [[UINT32LE]] || gameTimer || This appears to be some sort of hidden in-game timer. {{TODO|Figure out when this is incremented and whether or not it actually does anything.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0975 || [[BYTE]][274] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A87 || [[UINT8]][2] || checksum || The checksum of the saved game file. See [[#Checksum|below]] for more information.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Races ===&lt;br /&gt;
&lt;br /&gt;
The following races can be chosen:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Race&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Humanoid&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Ape&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Childman&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Rodent&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Hobo&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Giant&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Midget&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || Shrimp&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Classes ===&lt;br /&gt;
&lt;br /&gt;
The following classes can be chosen:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Class&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Fighter&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Worshipper&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Monk&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Wizard&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Priest&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Sage&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Mage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spells ===&lt;br /&gt;
&lt;br /&gt;
Spells are stored in the save file per the following table. In all cases, the spells are stored in order from left-to-right, top-to-bottom, with respect to the in-game spell browser. Each spell category has 15 unused bytes at the end.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPermanent || The permanent spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPreparation || The preparation spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsWizard || The wizard battle spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPriest || The priest battle spells that the player has access to.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* {{TODO|Do a bit more bounds checking on some of the fields to work out whether they&#039;re signed or unsigned.}}&lt;br /&gt;
&lt;br /&gt;
=== Weapon IDs ===&lt;br /&gt;
&lt;br /&gt;
The following weapon IDs can be used in the &#039;&#039;&#039;equippedWeapon&#039;&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Weapon Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Fists&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Stick&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Club&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Mace&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Knife&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Short Sword&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Long Sword&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || Great Sword&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Note: the player does not have to own the specified weapon type in order to have it equipped. The equipment check is only performed when the player switches their weapon in-game.&lt;br /&gt;
&lt;br /&gt;
=== Armor IDs ===&lt;br /&gt;
&lt;br /&gt;
The following weapon IDs can be used in the &#039;&#039;&#039;equippedArmor&#039;&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Armor Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Skin&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Leather&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Chain&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Scale&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Breast Plate&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Field Plate&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Titanium&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || Glitchy Armor*&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Note: the player does not have to own the specified armor type in order to have it equipped. The equipment check is only performed when the player switches their armor in-game.&lt;br /&gt;
* *The eighth armor slot always appears in the armor list of the game as a blank slot, but only seven armor types appear within the game world. If the set of armor is hacked into the game with a hex editor or memory editor, it appears as jumbled text and provides a currently-unknown amount of protection.&lt;br /&gt;
&lt;br /&gt;
=== Checksum ===&lt;br /&gt;
&lt;br /&gt;
The checksum is calculated as follows (example in C# and assuming saveBytes is the saved game data, sans checksum—that is, the first 2695 (0xA87) bytes in the file):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
checksum[0] = checksum[1] = 0;&lt;br /&gt;
foreach(var b in saveBytes) {&lt;br /&gt;
    checksum[0] += b;&lt;br /&gt;
    checksum[1] += checksum[0] - checksum[0] * checksum[0];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the checksum is incorrect for the saved game file, the player will be immediately booted back to the DOS prompt with a &amp;quot;corrupted character&amp;quot; error.&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered and documented by [[User:Spectere|Spectere]] and [[User:Bag_of_Magic_Food|Bag of Magic Food]]. If you find this information helpful in a project you&#039;re working on, please give credit where credit is due. (A link back to this wiki would be nice too!)&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Player_Character&amp;diff=8872</id>
		<title>Dungeons of the Unforgiven Player Character</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Player_Character&amp;diff=8872"/>
		<updated>2019-12-01T08:06:40Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Added offsets to the save data table and made numerous corrections.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Playerdata Infobox&lt;br /&gt;
 | Savegame = Yes&lt;br /&gt;
 | Where = ?&lt;br /&gt;
 | Elements = Player character data&lt;br /&gt;
 | Games =&lt;br /&gt;
   {{Game|Dungeons of the Unforgiven}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The saved game format for &#039;&#039;[[Dungeons of the Unforgiven]]&#039;&#039; appears to be a simple dump of the game&#039;s internal structures, with a couple of checksum bytes added on, presumably to slow cheaters down a bit. Some of the chunks of data are in a very peculiar order (such as some of the items being in radically different spots of the file), which makes it somewhat annoying to try to directly load into a C struct or similar data structure.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re parsing this format, be very mindful of the data types. Signed and unsigned data types, as well as differing field sizes, are used even with related fields. For example, Rings of Protection are stored in an unsigned byte while Potions of Healing are stored in a signed word.&lt;br /&gt;
&lt;br /&gt;
== File Layout ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset (hex) !! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0000 || [[char]][18] || playerName || The name of the player character (including a null terminator).&lt;br /&gt;
|-&lt;br /&gt;
| 0x0012 || [[BYTE]][22] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0028 || [[INT8]] || playerRace || The race of the player character.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0029 || [[INT8]] || playerGender || The player character&#039;s gender (0x00 == male; 0x01 == female)&lt;br /&gt;
|-&lt;br /&gt;
| 0x002A || [[INT8]] || playerClass || The player character&#039;s class.&lt;br /&gt;
|-&lt;br /&gt;
| 0x002B || [[BYTE]][6] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0031 || [[INT16LE]] || playerCurrentHP || The player character&#039;s current hit points.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0033 || [[INT16LE]] || playerMaxHP || The player character&#039;s maximum hit points.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0035 || [[INT32LE]] || playerCurrentSP || The player character&#039;s current spell points.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0039 || [[INT32LE]] || playerMaxSP || The player character&#039;s maximum spell points.&lt;br /&gt;
|-&lt;br /&gt;
| 0x003D || [[BYTE]][2] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x003F || [[INT16LE]] || nakedWeight || The player&#039;s base weight.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0041 || [[INT16LE]] || loadedWeight || The player&#039;s loaded weight (note: this always gets updated by the game).&lt;br /&gt;
|-&lt;br /&gt;
| 0x0043 || [[BYTE]][62] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0081 || [[BYTE]] || weaponFists || Player character has their fists (normally these cannot be dropped).&lt;br /&gt;
|-&lt;br /&gt;
| 0x0082 || [[BYTE]] || weaponStick || Player character has the stick.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0083 || [[BYTE]] || weaponClub || Player character has the club.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0084 || [[BYTE]] || weaponMace || Player character has the mace.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0085 || [[BYTE]] || weaponKnife || Player character has the knife.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0086 || [[BYTE]] || weaponShortSword || Player character has the short sword.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0087 || [[BYTE]] || weaponLongSword || Player character has the long sword.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0088 || [[BYTE]] || weaponGreatSword || Player character has the great sword.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0089 || [[BYTE]][18] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x009B || [[INT8]] || equippedWeapon || The weapon that the player character currently has equipped. See the [[#Weapon_IDs|Weapon IDs]] section for valid values.&lt;br /&gt;
|-&lt;br /&gt;
| 0x009C || [[BYTE]][20] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x00B0 || [[BYTE]] || armorSkin || Player character has their skin (normally this cannot be dropped).&lt;br /&gt;
|-&lt;br /&gt;
| 0x00B1 || [[BYTE]] || armorLeather || Player character has leather armor.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00B2 || [[BYTE]] || armorChain || Player character has chain armor.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00B3 || [[BYTE]] || armorScale || Player character has scale armor.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00B4 || [[BYTE]] || armorBreastPlate || Player character has the breast plate.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00B5 || [[BYTE]] || armorFieldPlate || Player character has field plate.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00B6 || [[BYTE]] || armorTitanium || Player character has the titanium armor.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00B7 || [[BYTE]] || armorSlot8 || This &amp;quot;armor&amp;quot; is not implemented in the game and points to garbage data. See the notes below for a little bit more information. {{TODO|Figure out exactly what in the executable this is pointing to, as it is technically fully usable.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x00B8 || [[BYTE]][8] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x00C0 || [[INT8]] || equippedArmor || The armor that the player character currently has equipped. See the [[#Armor_IDs|Armor IDs]] section for valid values.&lt;br /&gt;
|-&lt;br /&gt;
| 0x00C1 || [[BYTE]][156] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x015D || [[INT8]] || orangePotions || The number of orange potions in the player&#039;s inventory (+6 Strength / -3 Luck)&lt;br /&gt;
|-&lt;br /&gt;
| 0x015E || [[INT8]] || greenPotions || The number of green potions in the player&#039;s inventory (+6 Intelligence / -3 Agility)&lt;br /&gt;
|-&lt;br /&gt;
| 0x015F || [[INT8]] || bluePotions || The number of blue potions in the player&#039;s inventory (+6 Wisdom / -3 Constitution)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0160 || [[INT8]] || redPotions || The number of red potions in the player&#039;s inventory (+6 Constitution / -3 Wisdom)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0161 || [[INT8]] || whitePotions || The number of white potions in the player&#039;s inventory (+6 Agility / -3 Intelligence)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0162 || [[INT8]] || yellowPotions || The number of yellow potions in the player&#039;s inventory (+6 Luck / -3 Strength)&lt;br /&gt;
|-&lt;br /&gt;
| 0x0163 || [[BYTE]][20] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0177 || [[#Spells|SPELL_LIST]] || spellbook || The spells that the player has learned and can cast at any time at the cost of spell power.&lt;br /&gt;
|-&lt;br /&gt;
| 0x01A4 || [[#Spells|SPELL_LIST]] || scrolls || The spells that the player can cast from a scroll.&lt;br /&gt;
|-&lt;br /&gt;
| 0x01D1 || [[#Spells|SPELL_LIST]] || wands || The spell wands that the player possesses.&lt;br /&gt;
|-&lt;br /&gt;
| 0x01FE || [[#Spells|SPELL_LIST]] || papers || The spell papers that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| 0x022B || [[BYTE]][553] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0454 || [[INT32LE]] || rublesInPocket || The number of rubles that the player has on hand.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0458 || [[INT32LE]] || rublesInBank || The number of rubles that the player has in the bank.&lt;br /&gt;
|-&lt;br /&gt;
| 0x045C || [[BYTE]][8] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0464 || [[INT32LE]] || cultureStock || The amount of culture stock that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0468 || [[INT32LE]] || childrenHelped || The number of children that the player helped (at the temple).&lt;br /&gt;
|-&lt;br /&gt;
| 0x046C || [[INT32LE]] || magicCrystals || The number of magic crystals that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0470 || [[INT32LE]] || americanDollars || The number of American Dollars that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0474 || [[BYTE]][816] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x07A4 || [[Double]] || experiencePoints || The number of experience points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07AC || [[INT16LE]] || playerLevel || The player character&#039;s current level.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07AE || [[INT16LE]] || playerDirection || The direction that the player character is facing (0x00 == north; 0x01 == south; 0x02 == west; 0x03 == east).&lt;br /&gt;
|-&lt;br /&gt;
| 0x07B0 || [[INT16LE]] || playerPositionX || The X coordinate of the player in the current dungeon floor.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07B2 || [[INT16LE]] || playerPositionY || The Y coordinate of the player in the current dungeon floor.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07B4 || [[INT16LE]] || playerFloor || The floor of the dungeon that the player is currently on (0 is the town).&lt;br /&gt;
|-&lt;br /&gt;
| 0x07B6 || [[INT16LE]] || playerModule || The module that the player is currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07B8 || [[BYTE]][18] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x07CA || [[UINT8]] || ringsOfRegeneration || The number of rings of regeneration that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07CB || [[BYTE]] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x07CC || [[UINT8]] || nuclearHandGrenade || The number of nuclear hand grenades that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07CD || [[UINT8]] || stonesOfSeeing || The number of stones of seeing that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07CE || [[INT16LE]] || diseaseTimer || The number of turns until disease damages constitution (0 or -1 disables the timer).&lt;br /&gt;
|-&lt;br /&gt;
| 0x07D0 || [[INT16LE]] || poisonTimer || The number of turns until poison damages strength (0 or -1 disables the timer).&lt;br /&gt;
|-&lt;br /&gt;
| 0x07D2 || [[BYTE]][2] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x07D4 || [[UINT8]] || bodyArmor || The number of body armor items that the player has (not related to the gear, listed above).&lt;br /&gt;
|-&lt;br /&gt;
| 0x07D5 || [[UINT8]] || ringOfProtection || The number of rings of protection that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07D6 || [[UINT8]] || antiMagicRing || The number of anti-magic rings that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07D7 || [[BYTE]][3] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x07DA || [[INT32LE]] || playerAge || The current age of the player character.&lt;br /&gt;
|-&lt;br /&gt;
| 0x07DE || [[BYTE]][36] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0802 || [[INT8]] || floorSloshers || The number of floor sloshers that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0803 || [[BYTE]][15] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0812 || [[INT16LE]] || potionsOfHealing || The number of potions of healing that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0814 || [[INT16LE]] || stonesOfTeleportation || The number of stones of teleportation that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0816 || [[INT16LE]] || playerStrength || The number of strength points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0818 || [[INT16LE]] || playerIntelligence || The number of intelligence points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x081A || [[INT16LE]] || playerWisdom || The number of wisdom points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x081C || [[INT16LE]] || playerConstitution || The number of constitution points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x081E || [[INT16LE]] || playerAgility || The number of agility points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0820 || [[INT16LE]] || playerLuck || The number of luck points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0822 || [[BYTE]][49] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0853 || [[INT8]] || gauntlets || The number of gauntlets that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0854 || [[BYTE]][162] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x08F6 || [[BYTE]] || difficulty || The difficulty level that the player is playing on. (0x00 == normal; 0x01 == &amp;quot;I can handle anything!&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| 0x08F7 || [[BYTE]][122] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0971 || [[UINT32LE]] || gameTimer || This appears to be some sort of hidden in-game timer. {{TODO|Figure out when this is incremented and whether or not it actually does anything.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0975 || [[BYTE]][274] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A87 || [[UINT8]][2] || checksum || The checksum of the saved game file. See [[#Checksum|below]] for more information.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Races ===&lt;br /&gt;
&lt;br /&gt;
The following races can be chosen:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Race&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Humanoid&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Ape&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Childman&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Rodent&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Hobo&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Giant&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Midget&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || Shrimp&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Classes ===&lt;br /&gt;
&lt;br /&gt;
The following classes can be chosen:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Class&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Fighter&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Worshipper&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Monk&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Wizard&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Priest&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Sage&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Mage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spells ===&lt;br /&gt;
&lt;br /&gt;
Spells are stored in the save file per the following table. In all cases, the spells are stored in order from left-to-right, top-to-bottom, with respect to the in-game spell browser. Each spell category has 15 unused bytes at the end.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPermanent || The permanent spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPreparation || The preparation spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsWizard || The wizard battle spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPriest || The priest battle spells that the player has access to.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* {{TODO|Do a bit more bounds checking on some of the fields to work out whether they&#039;re signed or unsigned.}}&lt;br /&gt;
&lt;br /&gt;
=== Weapon IDs ===&lt;br /&gt;
&lt;br /&gt;
The following weapon IDs can be used in the &#039;&#039;&#039;equippedWeapon&#039;&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Weapon Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Fists&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Stick&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Club&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Mace&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Knife&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Short Sword&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Long Sword&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || Great Sword&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Note: the player does not have to own the specified weapon type in order to have it equipped. The equipment check is only performed when the player switches their weapon in-game.&lt;br /&gt;
&lt;br /&gt;
=== Armor IDs ===&lt;br /&gt;
&lt;br /&gt;
The following weapon IDs can be used in the &#039;&#039;&#039;equippedArmor&#039;&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Armor Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Skin&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Leather&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Chain&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Scale&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Breast Plate&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Field Plate&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Titanium&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || Glitchy Armor*&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Note: the player does not have to own the specified armor type in order to have it equipped. The equipment check is only performed when the player switches their armor in-game.&lt;br /&gt;
* *The eighth armor slot always appears in the armor list of the game as a blank slot, but only seven armor types appear within the game world. If the set of armor is hacked into the game with a hex editor or memory editor, it appears as jumbled text and provides a currently-unknown amount of protection.&lt;br /&gt;
&lt;br /&gt;
=== Checksum ===&lt;br /&gt;
&lt;br /&gt;
The checksum is calculated as follows (example in C# and assuming saveBytes is the saved game data, sans checksum—that is, the first 2695 (0xA87) bytes in the file):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
checksum[0] = checksum[1] = 0;&lt;br /&gt;
foreach(var b in saveBytes) {&lt;br /&gt;
    checksum[0] += b;&lt;br /&gt;
    checksum[1] += checksum[0] - checksum[0] * checksum[0];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the checksum is incorrect for the saved game file, the player will be immediately booted back to the DOS prompt with a &amp;quot;corrupted character&amp;quot; error.&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered and documented by [[User:Spectere|Spectere]]. If you find this information helpful in a project you&#039;re working on, please give credit where credit is due. (A link back to this wiki would be nice too!)&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Player_Character&amp;diff=8871</id>
		<title>Dungeons of the Unforgiven Player Character</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Player_Character&amp;diff=8871"/>
		<updated>2019-12-01T07:30:11Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Added some additional information from my notes (valid races and classes). Clarified the number of bytes considered for the checksum calculations.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Playerdata Infobox&lt;br /&gt;
 | Savegame = Yes&lt;br /&gt;
 | Where = ?&lt;br /&gt;
 | Elements = Player character data&lt;br /&gt;
 | Games =&lt;br /&gt;
   {{Game|Dungeons of the Unforgiven}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The saved game format for &#039;&#039;[[Dungeons of the Unforgiven]]&#039;&#039; appears to be a simple dump of the game&#039;s internal structures, with a couple of checksum bytes added on, presumably to slow cheaters down a bit. Some of the chunks of data are in a very peculiar order (such as some of the items being in radically different spots of the file), which makes it somewhat annoying to try to directly load into a C struct or similar data structure.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re parsing this format, be very mindful of the data types. Signed and unsigned data types, as well as differing field sizes, are used even with related fields. For example, Rings of Protection are stored in an unsigned byte while Potions of Healing are stored in a signed byte.&lt;br /&gt;
&lt;br /&gt;
== File Layout ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[char]][19] || playerName || The name of the player character (including a null terminator).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][22] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || playerRace || The race of the player character.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || playerGender || The player character&#039;s gender (0x00 == male; 0x01 == female)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || playerClass || The player character&#039;s class.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][6] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerCurrentHP || The player character&#039;s current hit points.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerMaxHP || The player character&#039;s maximum hit points.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || playerCurrentSP || The player character&#039;s current spell points.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || playerMaxSP || The player character&#039;s maximum spell points.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][2] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nakedWeight || The player&#039;s base weight.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || loadedWeight || The player&#039;s loaded weight (note: this always gets updated by the game).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][62] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponFists || Player character has their fists (normally these cannot be dropped).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponStick || Player character has the stick.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponClub || Player character has the club.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponMace || Player character has the mace.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponKnife || Player character has the knife.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponShortSword || Player character has the short sword.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponLongSword || Player character has the long sword.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponGreatSword || Player character has the great sword.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][18] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || equippedWeapon || The weapon that the player character currently has equipped. See the [[#Weapon_IDs|Weapon IDs]] section for valid values.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][20] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorSkin || Player character has their skin (normally this cannot be dropped).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorLeather || Player character has leather armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorChain || Player character has chain armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorScale || Player character has scale armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorBreastPlate || Player character has the breast plate.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorFieldPlate || Player character has field plate.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorTitanium || Player character has the titanium armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorSlot8 || This &amp;quot;armor&amp;quot; is not implemented in the game and points to garbage data. See the notes below for a little bit more information. {{TODO|Figure out exactly what in the executable this is pointing to, as it is technically fully usable.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || equippedArmor || The armor that the player character currently has equipped. See the [[#Armor_IDs|Armor IDs]] section for valid values.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][156] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || orangePotions || The number of orange potions in the player&#039;s inventory (+6 Strength / -3 Luck)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || greenPotions || The number of green potions in the player&#039;s inventory (+6 Intelligence / -3 Agility)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || bluePotions || The number of blue potions in the player&#039;s inventory (+6 Wisdom / -3 Constitution)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || redPotions || The number of red potions in the player&#039;s inventory (+6 Constitution / -3 Wisdom)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || whitePotions || The number of white potions in the player&#039;s inventory (+6 Agility / -3 Intelligence)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || yellowPotions || The number of yellow potions in the player&#039;s inventory (+6 Luck / -3 Strength)&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][20] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells|SPELL_LIST]] || spellbook || The spells that the player has learned and can cast at any time at the cost of spell power.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells|SPELL_LIST]] || scrolls || The spells that the player can cast from a scroll.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells|SPELL_LIST]] || wands || The spell wands that the player possesses.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells|SPELL_LIST]] || papers || The spell papers that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][13] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || rublesInPocket || The number of rubles that the player has on hand.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || rublesInBank || The number of rubles that the player has in the bank.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][8] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || cultureStock || The amount of culture stock that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || childrenHelped || The number of children that the player helped (at the temple).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || magicCrystals || The number of magic crystals that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || americanDollars || The number of American Dollars that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][816] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Double]] || experiencePoints || The number of experience points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerLevel || The player character&#039;s current level.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerDirection || The direction that the player character is facing (0x00 == north; 0x01 == south; 0x02 == west; 0x03 == east).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerPositionX || The X coordinate of the player in the current dungeon floor.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerPositionY || The Y coordinate of the player in the current dungeon floor.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerFloor || The floor of the dungeon that the player is currently on (0 is the town).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerModule || The module that the player is currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][18] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ringsOfRegeneration || The number of rings of regeneration that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || nuclearHandGrenade || The number of nuclear hand grenades that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || stonesOfSeeing || The number of stones of seeing that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || diseaseTimer || The number of turns until poison damages constitution (0 or -1 disables the timer).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || poisonTimer || The number of turns until poison damages strength (0 or -1 disables the timer).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][2] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || bodyArmor || The number of body armor items that the player has (not related to the gear, listed above).&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ringOfProtection || The number of rings of protection that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || antiMagicRing || The number of anti-magic rings that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][3] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || playerAge || The current age of the player character.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][36] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || floorSloshers || The number of floor sloshers that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || potionsOfHealing || The number of potions of healing that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || stonesOfTeleportation || The number of stones of teleportation that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerStrength || The number of strength points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerIntelligence || The number of intelligence points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerWisdom || The number of wisdom points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerConstitution || The number of constitution points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerAgility || The number of agility points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerLuck || The number of luck points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][49] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || gauntlets || The number of gauntlets that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][162] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || difficulty || The difficulty level that the player is playing on. (0x00 == normal; 0x01 == &amp;quot;I can handle anything!&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT32LE]] || gameTimer || This appears to be some sort of hidden in-game timer. {{TODO|Figure out when this is incremented and whether or not it actually does anything.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][274] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]][2] || checksum || The checksum of the saved game file. See [[#Checksum|below]] for more information.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Races ===&lt;br /&gt;
&lt;br /&gt;
The following races can be chosen:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Race&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Humanoid&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Ape&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Childman&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Rodent&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Hobo&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Giant&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Midget&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || Shrimp&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Classes ===&lt;br /&gt;
&lt;br /&gt;
The following classes can be chosen:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Class&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Fighter&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Worshipper&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Monk&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Wizard&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Priest&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Sage&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Mage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spells ===&lt;br /&gt;
&lt;br /&gt;
Spells are stored in the save file per the following table. In all cases, the spells are stored in order from left-to-right, top-to-bottom, with respect to the in-game spell browser. Each spell category has 15 unused bytes at the end.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPermanent || The permanent spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPreparation || The preparation spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsWizard || The wizard battle spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPriest || The priest battle spells that the player has access to.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* {{TODO|Do a bit more bounds checking on some of the fields to work out whether they&#039;re signed or unsigned.}}&lt;br /&gt;
&lt;br /&gt;
=== Weapon IDs ===&lt;br /&gt;
&lt;br /&gt;
The following weapon IDs can be used in the &#039;&#039;&#039;equippedWeapon&#039;&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Weapon Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Fists&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Stick&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Club&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Mace&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Knife&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Short Sword&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Long Sword&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || Great Sword&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Note: the player does not have to own the specified weapon type in order to have it equipped. The equipment check is only performed when the player switches their weapon in-game.&lt;br /&gt;
&lt;br /&gt;
=== Armor IDs ===&lt;br /&gt;
&lt;br /&gt;
The following weapon IDs can be used in the &#039;&#039;&#039;equippedArmor&#039;&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Armor Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Skin&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Leather&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Chain&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Scale&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Breast Plate&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Field Plate&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Titanium&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || Glitchy Armor*&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Note: the player does not have to own the specified armor type in order to have it equipped. The equipment check is only performed when the player switches their armor in-game.&lt;br /&gt;
* *The eighth armor slot always appears in the armor list of the game as a blank slot, but only seven armor types appear within the game world. If the set of armor is hacked into the game with a hex editor or memory editor, it appears as jumbled text and provides a currently-unknown amount of protection.&lt;br /&gt;
&lt;br /&gt;
=== Checksum ===&lt;br /&gt;
&lt;br /&gt;
The checksum is calculated as follows (example in C# and assuming saveBytes is the saved game data, sans checksum—that is, the first 2695 (0xA87) bytes in the file):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
checksum[0] = checksum[1] = 0;&lt;br /&gt;
foreach(var b in saveBytes) {&lt;br /&gt;
    checksum[0] += b;&lt;br /&gt;
    checksum[1] += checksum[0] - checksum[0] * checksum[0];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the checksum is incorrect for the saved game file, the player will be immediately booted back to the DOS prompt with a &amp;quot;corrupted character&amp;quot; error.&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered and documented by [[User:Spectere|Spectere]]. If you find this information helpful in a project you&#039;re working on, please give credit where credit is due. (A link back to this wiki would be nice too!)&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Player_Character&amp;diff=8870</id>
		<title>Dungeons of the Unforgiven Player Character</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Player_Character&amp;diff=8870"/>
		<updated>2019-12-01T07:24:08Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Moved the &amp;quot;glitchy armor&amp;quot; footer to the correct section.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Playerdata Infobox&lt;br /&gt;
 | Savegame = Yes&lt;br /&gt;
 | Where = ?&lt;br /&gt;
 | Elements = Player character data&lt;br /&gt;
 | Games =&lt;br /&gt;
   {{Game|Dungeons of the Unforgiven}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The saved game format for &#039;&#039;[[Dungeons of the Unforgiven]]&#039;&#039; appears to be a simple dump of the game&#039;s internal structures, with a couple of checksum bytes added on, presumably to slow cheaters down a bit. Some of the chunks of data are in a very peculiar order (such as some of the items being in radically different spots of the file), which makes it somewhat annoying to try to directly load into a C struct or similar data structure.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re parsing this format, be very mindful of the data types. Signed and unsigned data types, as well as differing field sizes, are used even with related fields. For example, Rings of Protection are stored in an unsigned byte while Potions of Healing are stored in a signed byte.&lt;br /&gt;
&lt;br /&gt;
== File Layout ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[char]][19] || playerName || The name of the player character (including a null terminator).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][22] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || playerRace || The race of the player character.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || playerGender || The player character&#039;s gender (0x00 == male; 0x01 == female)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || playerClass || The player character&#039;s class.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][6] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerCurrentHP || The player character&#039;s current hit points.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerMaxHP || The player character&#039;s maximum hit points.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || playerCurrentSP || The player character&#039;s current spell points.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || playerMaxSP || The player character&#039;s maximum spell points.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][2] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nakedWeight || The player&#039;s base weight.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || loadedWeight || The player&#039;s loaded weight (note: this always gets updated by the game).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][62] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponFists || Player character has their fists (normally these cannot be dropped).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponStick || Player character has the stick.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponClub || Player character has the club.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponMace || Player character has the mace.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponKnife || Player character has the knife.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponShortSword || Player character has the short sword.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponLongSword || Player character has the long sword.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponGreatSword || Player character has the great sword.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][18] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || equippedWeapon || The weapon that the player character currently has equipped. See the [[#Weapon_IDs|Weapon IDs]] section for valid values.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][20] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorSkin || Player character has their skin (normally this cannot be dropped).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorLeather || Player character has leather armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorChain || Player character has chain armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorScale || Player character has scale armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorBreastPlate || Player character has the breast plate.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorFieldPlate || Player character has field plate.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorTitanium || Player character has the titanium armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorSlot8 || This &amp;quot;armor&amp;quot; is not implemented in the game and points to garbage data. See the notes below for a little bit more information. {{TODO|Figure out exactly what in the executable this is pointing to, as it is technically fully usable.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || equippedArmor || The armor that the player character currently has equipped. See the [[#Armor_IDs|Armor IDs]] section for valid values.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][156] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || orangePotions || The number of orange potions in the player&#039;s inventory (+6 Strength / -3 Luck)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || greenPotions || The number of green potions in the player&#039;s inventory (+6 Intelligence / -3 Agility)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || bluePotions || The number of blue potions in the player&#039;s inventory (+6 Wisdom / -3 Constitution)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || redPotions || The number of red potions in the player&#039;s inventory (+6 Constitution / -3 Wisdom)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || whitePotions || The number of white potions in the player&#039;s inventory (+6 Agility / -3 Intelligence)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || yellowPotions || The number of yellow potions in the player&#039;s inventory (+6 Luck / -3 Strength)&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][20] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells|SPELL_LIST]] || spellbook || The spells that the player has learned and can cast at any time at the cost of spell power.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells|SPELL_LIST]] || scrolls || The spells that the player can cast from a scroll.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells|SPELL_LIST]] || wands || The spell wands that the player possesses.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells|SPELL_LIST]] || papers || The spell papers that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][13] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || rublesInPocket || The number of rubles that the player has on hand.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || rublesInBank || The number of rubles that the player has in the bank.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][8] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || cultureStock || The amount of culture stock that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || childrenHelped || The number of children that the player helped (at the temple).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || magicCrystals || The number of magic crystals that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || americanDollars || The number of American Dollars that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][816] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Double]] || experiencePoints || The number of experience points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerLevel || The player character&#039;s current level.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerDirection || The direction that the player character is facing (0x00 == north; 0x01 == south; 0x02 == west; 0x03 == east).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerPositionX || The X coordinate of the player in the current dungeon floor.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerPositionY || The Y coordinate of the player in the current dungeon floor.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerFloor || The floor of the dungeon that the player is currently on (0 is the town).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerModule || The module that the player is currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][18] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ringsOfRegeneration || The number of rings of regeneration that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || nuclearHandGrenade || The number of nuclear hand grenades that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || stonesOfSeeing || The number of stones of seeing that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || diseaseTimer || The number of turns until poison damages constitution (0 or -1 disables the timer).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || poisonTimer || The number of turns until poison damages strength (0 or -1 disables the timer).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][2] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || bodyArmor || The number of body armor items that the player has (not related to the gear, listed above).&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ringOfProtection || The number of rings of protection that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || antiMagicRing || The number of anti-magic rings that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][3] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || playerAge || The current age of the player character.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][36] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || floorSloshers || The number of floor sloshers that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || potionsOfHealing || The number of potions of healing that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || stonesOfTeleportation || The number of stones of teleportation that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerStrength || The number of strength points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerIntelligence || The number of intelligence points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerWisdom || The number of wisdom points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerConstitution || The number of constitution points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerAgility || The number of agility points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerLuck || The number of luck points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][49] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || gauntlets || The number of gauntlets that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][162] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || difficulty || The difficulty level that the player is playing on. (0x00 == normal; 0x01 == &amp;quot;I can handle anything!&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT32LE]] || gameTimer || This appears to be some sort of hidden in-game timer. {{TODO|Figure out when this is incremented and whether or not it actually does anything.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][274] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]][2] || checksum || The checksum of the saved game file. See [[#Checksum|below]] for more information.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spells ===&lt;br /&gt;
&lt;br /&gt;
Spells are stored in the save file per the following table. In all cases, the spells are stored in order from left-to-right, top-to-bottom, with respect to the in-game spell browser. Each spell category has 15 unused bytes at the end.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPermanent || The permanent spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPreparation || The preparation spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsWizard || The wizard battle spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPriest || The priest battle spells that the player has access to.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* {{TODO|Do a bit more bounds checking on some of the fields to work out whether they&#039;re signed or unsigned.}}&lt;br /&gt;
&lt;br /&gt;
=== Weapon IDs ===&lt;br /&gt;
&lt;br /&gt;
The following weapon IDs can be used in the &#039;&#039;&#039;equippedWeapon&#039;&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Weapon Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Fists&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Stick&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Club&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Mace&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Knife&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Short Sword&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Long Sword&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || Great Sword&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Note: the player does not have to own the specified weapon type in order to have it equipped. The equipment check is only performed when the player switches their weapon in-game.&lt;br /&gt;
&lt;br /&gt;
=== Armor IDs ===&lt;br /&gt;
&lt;br /&gt;
The following weapon IDs can be used in the &#039;&#039;&#039;equippedArmor&#039;&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Armor Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Skin&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Leather&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Chain&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Scale&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Breast Plate&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Field Plate&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Titanium&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || Glitchy Armor*&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Note: the player does not have to own the specified armor type in order to have it equipped. The equipment check is only performed when the player switches their armor in-game.&lt;br /&gt;
* *The eighth armor slot always appears in the armor list of the game as a blank slot, but only seven armor types appear within the game world. If the set of armor is hacked into the game with a hex editor or memory editor, it appears as jumbled text and provides a currently-unknown amount of protection.&lt;br /&gt;
&lt;br /&gt;
=== Checksum ===&lt;br /&gt;
&lt;br /&gt;
The checksum is calculated as follows (example in C# and assuming saveBytes is the saved game data, sans checksum):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
checksum[0] = checksum[1] = 0;&lt;br /&gt;
foreach(var b in saveBytes) {&lt;br /&gt;
    checksum[0] += b;&lt;br /&gt;
    checksum[1] += checksum[0] - checksum[0] * checksum[0];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the checksum is incorrect for the saved game file, the player will be immediately booted back to the DOS prompt with a &amp;quot;corrupted character&amp;quot; error.&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered and documented by [[User:Spectere|Spectere]]. If you find this information helpful in a project you&#039;re working on, please give credit where credit is due. (A link back to this wiki would be nice too!)&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=CFG_Format_(ZZT)&amp;diff=8383</id>
		<title>CFG Format (ZZT)</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=CFG_Format_(ZZT)&amp;diff=8383"/>
		<updated>2019-03-05T12:58:44Z</updated>

		<summary type="html">&lt;p&gt;Spectere: /* Registered vs. Shareware */ Clarified exit behavior.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
&lt;br /&gt;
ZZT.CFG is supported in versions 3.0 and 3.2. While the format is somewhat different between the two versions, the overall layout of the file is the same: it&#039;s a text file with a series of fields, separated by newlines.&lt;br /&gt;
&lt;br /&gt;
Strangely enough, ZZT 3.1 does not appear to support ZZT.CFG at all.&lt;br /&gt;
&lt;br /&gt;
== 3.0 Format ==&lt;br /&gt;
&lt;br /&gt;
{{TODO|Figure out what on earth is going on with this config file. Most notably with the second, third, and seventh lines.}}&lt;br /&gt;
&lt;br /&gt;
Compared to 3.2, 3.0&#039;s config format is quite a bit more complex.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field/Line Number!!Optional!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|1||No||Input/Display Settings||This is a bitmask that contains some input and display settings. The following values are known (from least to most significant):&lt;br /&gt;
&lt;br /&gt;
# ?&lt;br /&gt;
# ?&lt;br /&gt;
# Keyboard enabled ({{TODO|Not quite sure about this one}}).&lt;br /&gt;
# Joystick enabled and calibrated (thanks, Dr. Dos!).&lt;br /&gt;
# Mouse enabled.&lt;br /&gt;
# Monochrome display.&lt;br /&gt;
# ?&lt;br /&gt;
# ?&lt;br /&gt;
|-&lt;br /&gt;
|2||No||Unknown||&lt;br /&gt;
|-&lt;br /&gt;
|3||No||Unknown||&lt;br /&gt;
|-&lt;br /&gt;
|4||No||Show Config Screen||If this value is set to 2, the config screen is shown. If it&#039;s set to 3, the config screen will be bypassed. If the mouse is enabled, setting this to 3 doesn&#039;t seem to do anything and will cause the config screen to be enabled. ({{TODO|Why are the values 2 and 3? Another bitmask? Need to investigate further.}})&lt;br /&gt;
|-&lt;br /&gt;
|5||Yes||Startup World File||The world file to load when ZZT is started, sans extension. If this is prepended by an asterisk (i.e. *TOWN), the ZZT editor will be disabled. If this is left blank, the editor will be enabled and TOWN will be used as the default world.&lt;br /&gt;
|-&lt;br /&gt;
|6||Yes||Registered Flag||If this is left blank or doesn&#039;t exist, the game acts like the shareware version. If this field contains any text (by default, the registered 3.2 build sets it to REGISTERED) it will act like the registered version. See [[#Registered vs. Shareware|below]] for more information.&lt;br /&gt;
|-&lt;br /&gt;
|7||Yes||Unknown||This field does not appear to be significant. In the default configuration this contains the string, &amp;quot;NONE.&amp;quot; In a shareware disk that was located recently, this is set to &amp;quot;Serial # 14054-3&amp;quot;, prepended with 32 spaces.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the ZZT.CFG file is missing or any of the required values are missing, the game will create a new ZZT.CFG file. If the optional fields are omitted, they will not be added to the config file. Unlike ZZT 3.2, 3.0 writes to this file after the initial configuration screen is shown.&lt;br /&gt;
&lt;br /&gt;
Take care not to write strings into the required fields. The game engine is expecting those fields to contain integers (or nothing), so if it&#039;s fed a string it&#039;s very likely to crash on startup.&lt;br /&gt;
&lt;br /&gt;
== 3.2 Format ==&lt;br /&gt;
&lt;br /&gt;
{{TODO|Verify that this section is accurate and that there are no hidden surprises left.}}&lt;br /&gt;
&lt;br /&gt;
ZZT 3.2&#039;s config file format is much simpler than 3.0&#039;s. It consists of two fields:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field/Line Number!!Optional!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|1||Yes||Startup World File||The world file to load when ZZT is started, sans extension. If this is prepended by an asterisk (i.e. *TOWN), the ZZT editor will be disabled. If this is left blank, the editor will be enabled and TOWN will be used as the default world.&lt;br /&gt;
|-&lt;br /&gt;
|2||Yes||Registered Flag||If this is left blank or doesn&#039;t exist, the game acts like the shareware version. If this field contains any text (by default, the registered 3.2 build sets it to REGISTERED) it will act like the registered version. See [[#Registered vs. Shareware|below]] for more information.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the ZZT.CFG file is missing or doesn&#039;t contain any information, the file will &#039;&#039;not&#039;&#039; be created by ZZT. The default world file will be set to TOWN, the editor will be enabled, and the registered flag will be disabled.&lt;br /&gt;
&lt;br /&gt;
== Registered vs. Shareware ==&lt;br /&gt;
&lt;br /&gt;
In practice, the &amp;quot;registered&amp;quot; flag doesn&#039;t make any significant difference. The help files are static, so setting this flag on the shareware release will still display ordering information in the welcome screen. Similarly, the registered version will still display the &amp;quot;Do not distribute&amp;quot; message.&lt;br /&gt;
&lt;br /&gt;
The only tangible difference is when you exit the game. If the registered flag is set, the outro message will read &amp;quot;Registered version -- Thank you for playing ZZT&amp;quot; regardless of whether or not you&#039;re using the shareware version. If it is not set, one of the nag screens contained in ZZT.DAT will be shown, followed by a prompt for the user to press a key. If no nag screens exist, in ZZT.DAT, the player will be dumped back to the shell upon exiting with no message shown or key press required.&lt;br /&gt;
&lt;br /&gt;
Aside from these small changes, there are no changes to gameplay or the functionality of the world editor.&lt;br /&gt;
&lt;br /&gt;
[[Category:ZZT]]&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=CFG_Format_(ZZT)&amp;diff=8382</id>
		<title>CFG Format (ZZT)</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=CFG_Format_(ZZT)&amp;diff=8382"/>
		<updated>2019-03-05T12:14:31Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Made the definition for field 1, bit 4 a bit more precise.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
&lt;br /&gt;
ZZT.CFG is supported in versions 3.0 and 3.2. While the format is somewhat different between the two versions, the overall layout of the file is the same: it&#039;s a text file with a series of fields, separated by newlines.&lt;br /&gt;
&lt;br /&gt;
Strangely enough, ZZT 3.1 does not appear to support ZZT.CFG at all.&lt;br /&gt;
&lt;br /&gt;
== 3.0 Format ==&lt;br /&gt;
&lt;br /&gt;
{{TODO|Figure out what on earth is going on with this config file. Most notably with the second, third, and seventh lines.}}&lt;br /&gt;
&lt;br /&gt;
Compared to 3.2, 3.0&#039;s config format is quite a bit more complex.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field/Line Number!!Optional!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|1||No||Input/Display Settings||This is a bitmask that contains some input and display settings. The following values are known (from least to most significant):&lt;br /&gt;
&lt;br /&gt;
# ?&lt;br /&gt;
# ?&lt;br /&gt;
# Keyboard enabled ({{TODO|Not quite sure about this one}}).&lt;br /&gt;
# Joystick enabled and calibrated (thanks, Dr. Dos!).&lt;br /&gt;
# Mouse enabled.&lt;br /&gt;
# Monochrome display.&lt;br /&gt;
# ?&lt;br /&gt;
# ?&lt;br /&gt;
|-&lt;br /&gt;
|2||No||Unknown||&lt;br /&gt;
|-&lt;br /&gt;
|3||No||Unknown||&lt;br /&gt;
|-&lt;br /&gt;
|4||No||Show Config Screen||If this value is set to 2, the config screen is shown. If it&#039;s set to 3, the config screen will be bypassed. If the mouse is enabled, setting this to 3 doesn&#039;t seem to do anything and will cause the config screen to be enabled. ({{TODO|Why are the values 2 and 3? Another bitmask? Need to investigate further.}})&lt;br /&gt;
|-&lt;br /&gt;
|5||Yes||Startup World File||The world file to load when ZZT is started, sans extension. If this is prepended by an asterisk (i.e. *TOWN), the ZZT editor will be disabled. If this is left blank, the editor will be enabled and TOWN will be used as the default world.&lt;br /&gt;
|-&lt;br /&gt;
|6||Yes||Registered Flag||If this is left blank or doesn&#039;t exist, the game acts like the shareware version. If this field contains any text (by default, the registered 3.2 build sets it to REGISTERED) it will act like the registered version. See [[#Registered vs. Shareware|below]] for more information.&lt;br /&gt;
|-&lt;br /&gt;
|7||Yes||Unknown||This field does not appear to be significant. In the default configuration this contains the string, &amp;quot;NONE.&amp;quot; In a shareware disk that was located recently, this is set to &amp;quot;Serial # 14054-3&amp;quot;, prepended with 32 spaces.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the ZZT.CFG file is missing or any of the required values are missing, the game will create a new ZZT.CFG file. If the optional fields are omitted, they will not be added to the config file. Unlike ZZT 3.2, 3.0 writes to this file after the initial configuration screen is shown.&lt;br /&gt;
&lt;br /&gt;
Take care not to write strings into the required fields. The game engine is expecting those fields to contain integers (or nothing), so if it&#039;s fed a string it&#039;s very likely to crash on startup.&lt;br /&gt;
&lt;br /&gt;
== 3.2 Format ==&lt;br /&gt;
&lt;br /&gt;
{{TODO|Verify that this section is accurate and that there are no hidden surprises left.}}&lt;br /&gt;
&lt;br /&gt;
ZZT 3.2&#039;s config file format is much simpler than 3.0&#039;s. It consists of two fields:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field/Line Number!!Optional!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|1||Yes||Startup World File||The world file to load when ZZT is started, sans extension. If this is prepended by an asterisk (i.e. *TOWN), the ZZT editor will be disabled. If this is left blank, the editor will be enabled and TOWN will be used as the default world.&lt;br /&gt;
|-&lt;br /&gt;
|2||Yes||Registered Flag||If this is left blank or doesn&#039;t exist, the game acts like the shareware version. If this field contains any text (by default, the registered 3.2 build sets it to REGISTERED) it will act like the registered version. See [[#Registered vs. Shareware|below]] for more information.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the ZZT.CFG file is missing or doesn&#039;t contain any information, the file will &#039;&#039;not&#039;&#039; be created by ZZT. The default world file will be set to TOWN, the editor will be enabled, and the registered flag will be disabled.&lt;br /&gt;
&lt;br /&gt;
== Registered vs. Shareware ==&lt;br /&gt;
&lt;br /&gt;
In practice, the &amp;quot;registered&amp;quot; flag doesn&#039;t make any significant difference. The help files are static, so setting this flag on the shareware release will still display ordering information in the welcome screen. Similarly, the registered version will still display the &amp;quot;Do not distribute&amp;quot; message.&lt;br /&gt;
&lt;br /&gt;
The only tangible difference is when you exit the game. If the registered flag is set, the outro message will read &amp;quot;Registered version -- Thank you for playing ZZT&amp;quot; regardless of whether or not you&#039;re using the shareware version. If it is not set, the freeware registered version will not display a message while the shareware version will display a nag screen.&lt;br /&gt;
&lt;br /&gt;
Aside from these small changes, there are no changes to gameplay or the functionality of the world editor.&lt;br /&gt;
&lt;br /&gt;
[[Category:ZZT]]&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=CFG_Format_(ZZT)&amp;diff=8381</id>
		<title>CFG Format (ZZT)</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=CFG_Format_(ZZT)&amp;diff=8381"/>
		<updated>2019-03-05T12:12:17Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Added Dr. Dos&amp;#039;s findings for 3.0 CFG field 1, bit 4.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
&lt;br /&gt;
ZZT.CFG is supported in versions 3.0 and 3.2. While the format is somewhat different between the two versions, the overall layout of the file is the same: it&#039;s a text file with a series of fields, separated by newlines.&lt;br /&gt;
&lt;br /&gt;
Strangely enough, ZZT 3.1 does not appear to support ZZT.CFG at all.&lt;br /&gt;
&lt;br /&gt;
== 3.0 Format ==&lt;br /&gt;
&lt;br /&gt;
{{TODO|Figure out what on earth is going on with this config file. Most notably with the second, third, and seventh lines.}}&lt;br /&gt;
&lt;br /&gt;
Compared to 3.2, 3.0&#039;s config format is quite a bit more complex.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field/Line Number!!Optional!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|1||No||Input/Display Settings||This is a bitmask that contains some input and display settings. The following values are known (from least to most significant):&lt;br /&gt;
&lt;br /&gt;
# ?&lt;br /&gt;
# ?&lt;br /&gt;
# Keyboard enabled ({{TODO|Not quite sure about this one}}).&lt;br /&gt;
# Joystick enabled (thanks, Dr. Dos!).&lt;br /&gt;
# Mouse enabled.&lt;br /&gt;
# Monochrome display.&lt;br /&gt;
# ?&lt;br /&gt;
# ?&lt;br /&gt;
|-&lt;br /&gt;
|2||No||Unknown||&lt;br /&gt;
|-&lt;br /&gt;
|3||No||Unknown||&lt;br /&gt;
|-&lt;br /&gt;
|4||No||Show Config Screen||If this value is set to 2, the config screen is shown. If it&#039;s set to 3, the config screen will be bypassed. If the mouse is enabled, setting this to 3 doesn&#039;t seem to do anything and will cause the config screen to be enabled. ({{TODO|Why are the values 2 and 3? Another bitmask? Need to investigate further.}})&lt;br /&gt;
|-&lt;br /&gt;
|5||Yes||Startup World File||The world file to load when ZZT is started, sans extension. If this is prepended by an asterisk (i.e. *TOWN), the ZZT editor will be disabled. If this is left blank, the editor will be enabled and TOWN will be used as the default world.&lt;br /&gt;
|-&lt;br /&gt;
|6||Yes||Registered Flag||If this is left blank or doesn&#039;t exist, the game acts like the shareware version. If this field contains any text (by default, the registered 3.2 build sets it to REGISTERED) it will act like the registered version. See [[#Registered vs. Shareware|below]] for more information.&lt;br /&gt;
|-&lt;br /&gt;
|7||Yes||Unknown||This field does not appear to be significant. In the default configuration this contains the string, &amp;quot;NONE.&amp;quot; In a shareware disk that was located recently, this is set to &amp;quot;Serial # 14054-3&amp;quot;, prepended with 32 spaces.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the ZZT.CFG file is missing or any of the required values are missing, the game will create a new ZZT.CFG file. If the optional fields are omitted, they will not be added to the config file. Unlike ZZT 3.2, 3.0 writes to this file after the initial configuration screen is shown.&lt;br /&gt;
&lt;br /&gt;
Take care not to write strings into the required fields. The game engine is expecting those fields to contain integers (or nothing), so if it&#039;s fed a string it&#039;s very likely to crash on startup.&lt;br /&gt;
&lt;br /&gt;
== 3.2 Format ==&lt;br /&gt;
&lt;br /&gt;
{{TODO|Verify that this section is accurate and that there are no hidden surprises left.}}&lt;br /&gt;
&lt;br /&gt;
ZZT 3.2&#039;s config file format is much simpler than 3.0&#039;s. It consists of two fields:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field/Line Number!!Optional!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|1||Yes||Startup World File||The world file to load when ZZT is started, sans extension. If this is prepended by an asterisk (i.e. *TOWN), the ZZT editor will be disabled. If this is left blank, the editor will be enabled and TOWN will be used as the default world.&lt;br /&gt;
|-&lt;br /&gt;
|2||Yes||Registered Flag||If this is left blank or doesn&#039;t exist, the game acts like the shareware version. If this field contains any text (by default, the registered 3.2 build sets it to REGISTERED) it will act like the registered version. See [[#Registered vs. Shareware|below]] for more information.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the ZZT.CFG file is missing or doesn&#039;t contain any information, the file will &#039;&#039;not&#039;&#039; be created by ZZT. The default world file will be set to TOWN, the editor will be enabled, and the registered flag will be disabled.&lt;br /&gt;
&lt;br /&gt;
== Registered vs. Shareware ==&lt;br /&gt;
&lt;br /&gt;
In practice, the &amp;quot;registered&amp;quot; flag doesn&#039;t make any significant difference. The help files are static, so setting this flag on the shareware release will still display ordering information in the welcome screen. Similarly, the registered version will still display the &amp;quot;Do not distribute&amp;quot; message.&lt;br /&gt;
&lt;br /&gt;
The only tangible difference is when you exit the game. If the registered flag is set, the outro message will read &amp;quot;Registered version -- Thank you for playing ZZT&amp;quot; regardless of whether or not you&#039;re using the shareware version. If it is not set, the freeware registered version will not display a message while the shareware version will display a nag screen.&lt;br /&gt;
&lt;br /&gt;
Aside from these small changes, there are no changes to gameplay or the functionality of the world editor.&lt;br /&gt;
&lt;br /&gt;
[[Category:ZZT]]&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=CFG_Format_(ZZT)&amp;diff=8378</id>
		<title>CFG Format (ZZT)</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=CFG_Format_(ZZT)&amp;diff=8378"/>
		<updated>2019-03-04T17:32:30Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Initial page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
&lt;br /&gt;
ZZT.CFG is supported in versions 3.0 and 3.2. While the format is somewhat different between the two versions, the overall layout of the file is the same: it&#039;s a text file with a series of fields, separated by newlines.&lt;br /&gt;
&lt;br /&gt;
Strangely enough, ZZT 3.1 does not appear to support ZZT.CFG at all.&lt;br /&gt;
&lt;br /&gt;
== 3.0 Format ==&lt;br /&gt;
&lt;br /&gt;
{{TODO|Figure out what on earth is going on with this config file. Most notably with the second, third, and seventh lines.}}&lt;br /&gt;
&lt;br /&gt;
Compared to 3.2, 3.0&#039;s config format is quite a bit more complex.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field/Line Number!!Optional!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|1||No||Input/Display Settings||This is a bitmask that contains some input and display settings. The following values are known (from least to most significant):&lt;br /&gt;
&lt;br /&gt;
# ?&lt;br /&gt;
# ?&lt;br /&gt;
# Keyboard enabled ({{TODO|Not quite sure about this one}}).&lt;br /&gt;
# ?&lt;br /&gt;
# Mouse enabled.&lt;br /&gt;
# Monochrome display.&lt;br /&gt;
# ?&lt;br /&gt;
# ?&lt;br /&gt;
|-&lt;br /&gt;
|2||No||Unknown||&lt;br /&gt;
|-&lt;br /&gt;
|3||No||Unknown||&lt;br /&gt;
|-&lt;br /&gt;
|4||No||Show Config Screen||If this value is set to 2, the config screen is shown. If it&#039;s set to 3, the config screen will be bypassed. If the mouse is enabled, setting this to 3 doesn&#039;t seem to do anything and will cause the config screen to be enabled. ({{TODO|Why are the values 2 and 3? Another bitmask? Need to investigate further.}})&lt;br /&gt;
|-&lt;br /&gt;
|5||Yes||Startup World File||The world file to load when ZZT is started, sans extension. If this is prepended by an asterisk (i.e. *TOWN), the ZZT editor will be disabled. If this is left blank, the editor will be enabled and TOWN will be used as the default world.&lt;br /&gt;
|-&lt;br /&gt;
|6||Yes||Registered Flag||If this is left blank or doesn&#039;t exist, the game acts like the shareware version. If this field contains any text (by default, the registered 3.2 build sets it to REGISTERED) it will act like the registered version. See [[#Registered vs. Shareware|below]] for more information.&lt;br /&gt;
|-&lt;br /&gt;
|7||Yes||Unknown||This field does not appear to be significant. In the default configuration this contains the string, &amp;quot;NONE.&amp;quot; In a shareware disk that was located recently, this is set to &amp;quot;Serial # 14054-3&amp;quot;, prepended with 32 spaces.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the ZZT.CFG file is missing or any of the required values are missing, the game will create a new ZZT.CFG file. If the optional fields are omitted, they will not be added to the config file. Unlike ZZT 3.2, 3.0 writes to this file after the initial configuration screen is shown.&lt;br /&gt;
&lt;br /&gt;
Take care not to write strings into the required fields. The game engine is expecting those fields to contain integers (or nothing), so if it&#039;s fed a string it&#039;s very likely to crash on startup.&lt;br /&gt;
&lt;br /&gt;
== 3.2 Format ==&lt;br /&gt;
&lt;br /&gt;
{{TODO|Verify that this section is accurate and that there are no hidden surprises left.}}&lt;br /&gt;
&lt;br /&gt;
ZZT 3.2&#039;s config file format is much simpler than 3.0&#039;s. It consists of two fields:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field/Line Number!!Optional!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|1||Yes||Startup World File||The world file to load when ZZT is started, sans extension. If this is prepended by an asterisk (i.e. *TOWN), the ZZT editor will be disabled. If this is left blank, the editor will be enabled and TOWN will be used as the default world.&lt;br /&gt;
|-&lt;br /&gt;
|2||Yes||Registered Flag||If this is left blank or doesn&#039;t exist, the game acts like the shareware version. If this field contains any text (by default, the registered 3.2 build sets it to REGISTERED) it will act like the registered version. See [[#Registered vs. Shareware|below]] for more information.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the ZZT.CFG file is missing or doesn&#039;t contain any information, the file will &#039;&#039;not&#039;&#039; be created by ZZT. The default world file will be set to TOWN, the editor will be enabled, and the registered flag will be disabled.&lt;br /&gt;
&lt;br /&gt;
== Registered vs. Shareware ==&lt;br /&gt;
&lt;br /&gt;
In practice, the &amp;quot;registered&amp;quot; flag doesn&#039;t make any significant difference. The help files are static, so setting this flag on the shareware release will still display ordering information in the welcome screen. Similarly, the registered version will still display the &amp;quot;Do not distribute&amp;quot; message.&lt;br /&gt;
&lt;br /&gt;
The only tangible difference is when you exit the game. If the registered flag is set, the outro message will read &amp;quot;Registered version -- Thank you for playing ZZT&amp;quot; regardless of whether or not you&#039;re using the shareware version. If it is not set, the freeware registered version will not display a message while the shareware version will display a nag screen.&lt;br /&gt;
&lt;br /&gt;
Aside from these small changes, there are no changes to gameplay or the functionality of the world editor.&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven&amp;diff=7078</id>
		<title>Dungeons of the Unforgiven</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven&amp;diff=7078"/>
		<updated>2017-03-15T19:18:04Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Dungeons of the Unforgiven uses the same fonts as Moraff&amp;#039;s World. Updated the link accordingly.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Unknown&lt;br /&gt;
 | Tiles = Unknown&lt;br /&gt;
 | Sprites = Unknown&lt;br /&gt;
 | Fullscreen = Unknown&lt;br /&gt;
 | Sound = None&lt;br /&gt;
 | Music = None&lt;br /&gt;
 | Text = Some&lt;br /&gt;
 | Story = None&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
MoraffWare&#039;s &#039;&#039;Dungeons of the Unforgiven&#039;&#039; is a first-person dungeon crawler for MS-DOS, released as shareware in 1993 by MoraffWare. This is the third game in MoraffWare&#039;s series of role-playing games and is the direct successor to [[Moraff&#039;s World]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Dungeons of the Unforgiven&#039;&#039;, like &#039;&#039;Moraff&#039;s World&#039;&#039;, is notable for its wide range of display options. It is capable of displaying graphics on everything from CGA/Hercules to SuperVGA, supporting everything from 320x200 with 4 colors to 1024x768 with 256 colors.&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = 2?&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Player Character|Player Character]]&lt;br /&gt;
 | KnownFormat = Partial&lt;br /&gt;
 | Desc = A saved player character. Up to 10 characters can be saved (with filenames ranging from 20 through 29, corresponding to the slot that the character is stored in).&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?0?.DUN&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Map|Map]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = The sections that have been explored on each dungeon level. Note that changing this file does not change the dungeon layout. The first character of the filename is the player identifier (D is slot 0, M is slot 9) and the third character is the zero-indexed number of the module. The purpose of the 001.DUN/011.DUN/etc files is currently unknown.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?MON.MAP&lt;br /&gt;
 | Format = [[Moraff Monster Map|Monster Map]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = A dump of the currently generated monsters in the dungeon. Each player character has a monster map, with filenames ranging from DMON.MAP through MMON.MAP.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = MD.BIN&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Monster Information|Monster Information]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = This file contains the monster information directory that players can access by hitting the &#039;S&#039; key during play.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = UNFDUNG.BIN&lt;br /&gt;
 | Format = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = UH.BIN&amp;lt;br/&amp;gt;UH2.BIN&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven In-Game Text|In-Game Text]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = These two plaintext files contain most of the in-game messages, aside from the UI messages. While some strings are compiled into the executable, the vast majority are included here.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = UROLL.TXT&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Character Creation Text|Character Creation Text]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = This file contains text blocks used during the character creation process. Each screen element reads a fixed number of lines from the text file.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.FNT&lt;br /&gt;
 | Format = [[Moraff Font|Font]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A few fonts that are used by the game. These are most likely vector fonts.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.PIC&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Picture Format|Picture]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A set of files containing the game&#039;s sprites, textures, and full-screen images. Due to the game&#039;s wide ranging display support, it&#039;s likely that the images are vectorized.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.UHP&lt;br /&gt;
 | Format = [[Moraff Help File|Help File]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Stores the colored text that&#039;s displayed in the in-game help screens.&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
* All bundled executables are compressed with [[PKLite compression]]. Despite UNFORGIV.EXE being used to launch the game, all of the game logic is stored in UNF.EXE.&lt;br /&gt;
&lt;br /&gt;
[[Category:MoraffWare]]&lt;br /&gt;
[[Category:Moraff&#039;s Dungeon Pack]]&lt;br /&gt;
[[Category:Dungeons of the Unforgiven]]&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Moraff%27s_World&amp;diff=7077</id>
		<title>Moraff&#039;s World</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Moraff%27s_World&amp;diff=7077"/>
		<updated>2017-03-15T19:17:35Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Moraff&amp;#039;s World uses the same fonts as Dungeons of the Unforgiven. Updated link accordingly.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Unknown&lt;br /&gt;
 | Tiles = Unknown&lt;br /&gt;
 | Sprites = Unknown&lt;br /&gt;
 | Fullscreen = Unknown&lt;br /&gt;
 | Sound = None&lt;br /&gt;
 | Music = None&lt;br /&gt;
 | Text = Some&lt;br /&gt;
 | Story = None&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
MoraffWare&#039;s &#039;&#039;Moraff&#039;s World&#039;&#039; is a first-person dungeon crawler for MS-DOS, released as shareware in 1991 by MoraffWare. This is the second game in MoraffWare&#039;s series of role-playing games, is the direct successor to [[Moraff&#039;s Revenge]], and is succeeded by [[Dungeons of the Unforgiven]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Moraff&#039;s World&#039;&#039; is notable for its wide range of display options. It is capable of displaying graphics on everything from CGA/Hercules to SuperVGA, supporting everything from 320x200 with 4 colors to 1024x768 with 256 colors.&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?&lt;br /&gt;
 | Format = [[Moraff&#039;s World Player Character|Player Character]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A saved player character. Up to 10 characters can be saved (with filenames ranging from 0 through 9, corresponding to the slot that the character is stored in).&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?0.DUN&lt;br /&gt;
 | Format = [[Moraff&#039;s World Map|Map]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = The sections that have been explored on each dungeon level. Note that changing this file does not change the dungeon layout. The first character of the filename is the slot number for the corresponding player. {{TODO|See if this uses the same format as Dungeons of the Unforgiven.}}&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?MON.MAP&lt;br /&gt;
 | Format = [[Moraff Monster Map|Monster Map]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = A dump of the currently generated monsters in the dungeon. Each player character has a monster map, with filenames ranging from 0MON.MAP through 9MON.MAP.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = DUNG.BIN&lt;br /&gt;
 | Format = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = H.BIN&lt;br /&gt;
 | Format = [[Moraff&#039;s World In-Game Text|In-Game Text]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = This plaintext files contain many of the in-game messages, aside from the UI messages.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ROLL.TXT&lt;br /&gt;
 | Format = [[Moraff&#039;s World Character Creation Text|Character Creation Text]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = This file contains text blocks used during the character creation process. Each screen element reads a fixed number of lines from the text file.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = WORLDMAP.BIN&lt;br /&gt;
 | Format = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.FNT&lt;br /&gt;
 | Format = [[Moraff Font|Font]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A few fonts that are used by the game. These are most likely vector fonts.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.HLP&lt;br /&gt;
 | Format = [[Moraff Help File|Help File]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Stores the colored text that&#039;s displayed in the in-game help screens.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.PIC&lt;br /&gt;
 | Format = [[Moraff&#039;s World Picture Format|Picture]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A set of files containing the game&#039;s sprites and textures. Due to the game&#039;s wide ranging display support, it&#039;s likely that the images are vectorized. {{TODO|See if this uses the same format as Dungeons of the Unforgiven.}}&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
* All bundled executables are compressed with [[PKLite compression]]. Despite MW.EXE being used to launch the game, all of the game logic is stored in WORLD.EXE.&lt;br /&gt;
&lt;br /&gt;
[[Category:MoraffWare]]&lt;br /&gt;
[[Category:Moraff&#039;s Dungeon Pack]]&lt;br /&gt;
[[Category:Moraff&#039;s World]]&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Moraff%27s_World&amp;diff=7076</id>
		<title>Moraff&#039;s World</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Moraff%27s_World&amp;diff=7076"/>
		<updated>2017-03-15T19:15:08Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Clarified the purpose of the .DUN files.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Unknown&lt;br /&gt;
 | Tiles = Unknown&lt;br /&gt;
 | Sprites = Unknown&lt;br /&gt;
 | Fullscreen = Unknown&lt;br /&gt;
 | Sound = None&lt;br /&gt;
 | Music = None&lt;br /&gt;
 | Text = Some&lt;br /&gt;
 | Story = None&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
MoraffWare&#039;s &#039;&#039;Moraff&#039;s World&#039;&#039; is a first-person dungeon crawler for MS-DOS, released as shareware in 1991 by MoraffWare. This is the second game in MoraffWare&#039;s series of role-playing games, is the direct successor to [[Moraff&#039;s Revenge]], and is succeeded by [[Dungeons of the Unforgiven]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Moraff&#039;s World&#039;&#039; is notable for its wide range of display options. It is capable of displaying graphics on everything from CGA/Hercules to SuperVGA, supporting everything from 320x200 with 4 colors to 1024x768 with 256 colors.&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?&lt;br /&gt;
 | Format = [[Moraff&#039;s World Player Character|Player Character]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A saved player character. Up to 10 characters can be saved (with filenames ranging from 0 through 9, corresponding to the slot that the character is stored in).&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?0.DUN&lt;br /&gt;
 | Format = [[Moraff&#039;s World Map|Map]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = The sections that have been explored on each dungeon level. Note that changing this file does not change the dungeon layout. The first character of the filename is the slot number for the corresponding player. {{TODO|See if this uses the same format as Dungeons of the Unforgiven.}}&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?MON.MAP&lt;br /&gt;
 | Format = [[Moraff Monster Map|Monster Map]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = A dump of the currently generated monsters in the dungeon. Each player character has a monster map, with filenames ranging from 0MON.MAP through 9MON.MAP.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = DUNG.BIN&lt;br /&gt;
 | Format = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = H.BIN&lt;br /&gt;
 | Format = [[Moraff&#039;s World In-Game Text|In-Game Text]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = This plaintext files contain many of the in-game messages, aside from the UI messages.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ROLL.TXT&lt;br /&gt;
 | Format = [[Moraff&#039;s World Character Creation Text|Character Creation Text]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = This file contains text blocks used during the character creation process. Each screen element reads a fixed number of lines from the text file.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = WORLDMAP.BIN&lt;br /&gt;
 | Format = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.FNT&lt;br /&gt;
 | Format = [[Moraff&#039;s World Font|Font]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A few fonts that are used by the game. These are most likely vector fonts. {{TODO|See if this uses the same format as Dungeons of the Unforgiven.}}&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.HLP&lt;br /&gt;
 | Format = [[Moraff Help File|Help File]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Stores the colored text that&#039;s displayed in the in-game help screens.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.PIC&lt;br /&gt;
 | Format = [[Moraff&#039;s World Picture Format|Picture]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A set of files containing the game&#039;s sprites and textures. Due to the game&#039;s wide ranging display support, it&#039;s likely that the images are vectorized. {{TODO|See if this uses the same format as Dungeons of the Unforgiven.}}&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
* All bundled executables are compressed with [[PKLite compression]]. Despite MW.EXE being used to launch the game, all of the game logic is stored in WORLD.EXE.&lt;br /&gt;
&lt;br /&gt;
[[Category:MoraffWare]]&lt;br /&gt;
[[Category:Moraff&#039;s Dungeon Pack]]&lt;br /&gt;
[[Category:Moraff&#039;s World]]&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven&amp;diff=7075</id>
		<title>Dungeons of the Unforgiven</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven&amp;diff=7075"/>
		<updated>2017-03-15T19:14:40Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Clarified the purpose of the .DUN files.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Unknown&lt;br /&gt;
 | Tiles = Unknown&lt;br /&gt;
 | Sprites = Unknown&lt;br /&gt;
 | Fullscreen = Unknown&lt;br /&gt;
 | Sound = None&lt;br /&gt;
 | Music = None&lt;br /&gt;
 | Text = Some&lt;br /&gt;
 | Story = None&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
MoraffWare&#039;s &#039;&#039;Dungeons of the Unforgiven&#039;&#039; is a first-person dungeon crawler for MS-DOS, released as shareware in 1993 by MoraffWare. This is the third game in MoraffWare&#039;s series of role-playing games and is the direct successor to [[Moraff&#039;s World]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Dungeons of the Unforgiven&#039;&#039;, like &#039;&#039;Moraff&#039;s World&#039;&#039;, is notable for its wide range of display options. It is capable of displaying graphics on everything from CGA/Hercules to SuperVGA, supporting everything from 320x200 with 4 colors to 1024x768 with 256 colors.&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = 2?&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Player Character|Player Character]]&lt;br /&gt;
 | KnownFormat = Partial&lt;br /&gt;
 | Desc = A saved player character. Up to 10 characters can be saved (with filenames ranging from 20 through 29, corresponding to the slot that the character is stored in).&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?0?.DUN&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Map|Map]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = The sections that have been explored on each dungeon level. Note that changing this file does not change the dungeon layout. The first character of the filename is the player identifier (D is slot 0, M is slot 9) and the third character is the zero-indexed number of the module. The purpose of the 001.DUN/011.DUN/etc files is currently unknown.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?MON.MAP&lt;br /&gt;
 | Format = [[Moraff Monster Map|Monster Map]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = A dump of the currently generated monsters in the dungeon. Each player character has a monster map, with filenames ranging from DMON.MAP through MMON.MAP.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = MD.BIN&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Monster Information|Monster Information]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = This file contains the monster information directory that players can access by hitting the &#039;S&#039; key during play.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = UNFDUNG.BIN&lt;br /&gt;
 | Format = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = UH.BIN&amp;lt;br/&amp;gt;UH2.BIN&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven In-Game Text|In-Game Text]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = These two plaintext files contain most of the in-game messages, aside from the UI messages. While some strings are compiled into the executable, the vast majority are included here.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = UROLL.TXT&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Character Creation Text|Character Creation Text]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = This file contains text blocks used during the character creation process. Each screen element reads a fixed number of lines from the text file.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.FNT&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Font|Font]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A few fonts that are used by the game. These are most likely vector fonts.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.PIC&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Picture Format|Picture]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A set of files containing the game&#039;s sprites, textures, and full-screen images. Due to the game&#039;s wide ranging display support, it&#039;s likely that the images are vectorized.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.UHP&lt;br /&gt;
 | Format = [[Moraff Help File|Help File]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Stores the colored text that&#039;s displayed in the in-game help screens.&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
* All bundled executables are compressed with [[PKLite compression]]. Despite UNFORGIV.EXE being used to launch the game, all of the game logic is stored in UNF.EXE.&lt;br /&gt;
&lt;br /&gt;
[[Category:MoraffWare]]&lt;br /&gt;
[[Category:Moraff&#039;s Dungeon Pack]]&lt;br /&gt;
[[Category:Dungeons of the Unforgiven]]&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Moraff_Monster_Map&amp;diff=7074</id>
		<title>Moraff Monster Map</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Moraff_Monster_Map&amp;diff=7074"/>
		<updated>2017-03-15T18:53:29Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Added information about how dead enemies are handled; corrected major transcription issue in DotU monster IDs.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Playerdata Infobox&lt;br /&gt;
 | Savegame = Yes&lt;br /&gt;
 | Where = Anywhere&lt;br /&gt;
 | Elements = Monster Locations&lt;br /&gt;
 | Games =&lt;br /&gt;
   {{Game|Moraff&#039;s World}}&lt;br /&gt;
   {{Game|Dungeons of the Unforgiven}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Moraff&#039;s World&#039;&#039; and &#039;&#039;Dungeons of the Unforgiven&#039;&#039; store up to three floors worth of monsters in memory at any given time. Each floor can have up to 145 monsters active at any given time. As the player traverses the dungeon, monsters are dynamically created based on the player&#039;s level, active module, and current floor.&lt;br /&gt;
&lt;br /&gt;
If they reach a floor that doesn&#039;t currently have any active monsters, a new set will be created and the set that&#039;s farthest away will be discarded. {{TODO|This information is based on speculation via semi-casual observation and needs verification.}}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || set1Floor || The floor that the first set of monster&#039;s live on (0x00 or 0xFF disables that list).&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || set2Floor || The floor that the second set of monster&#039;s live on (0x00 or 0xFF disables that list).&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || set3Floor || The floor that the third set of monster&#039;s live on (0x00 or 0xFF disables that list).&lt;br /&gt;
|-&lt;br /&gt;
| [[#Monster_Instance|MONSTER]][145] || set1Array || An array of monsters that exist on the floor specified by set1Floor.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Monster_Instance|MONSTER]][145] || set2Array || An array of monsters that exist on the floor specified by set2Floor.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Monster_Instance|MONSTER]][145] || set3Array || An array of monsters that exist on the floor specified by set3Floor.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Monster Instance ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || monsterX || The X coordinate of the monster.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || monsterY || The Y coordinate of the monster.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || monsterHP || The monster&#039;s remaining hit points.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || monsterType || The type of monster on this tile (see [[#Moraff&#039;s World Monster Types|Moraff&#039;s World Monster Types]] or [[#Dungeons of the Unforgiven Monster Types|Dungeons of the Unforgiven Monster Types]] for valid IDs).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || monsterLevel || The level of the monster.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* When a monster is killed in both games, the X and Y coordinates for the creature are both set to 100 (0x64) and the other values are set to 0.&lt;br /&gt;
&lt;br /&gt;
== Moraff&#039;s World Monster Types ==&lt;br /&gt;
&lt;br /&gt;
The following are valid monster type values. Generally, if a value that is not on this table is used, the resulting monster will be an Ogre (0x00), but results beyond 0x6F can be unpredictable.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Ogre&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Werewolf&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Walking Sword&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Kobald&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Orc&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Dwarf&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || Knight&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Ape&lt;br /&gt;
|-&lt;br /&gt;
| 0x0D || Unicorn&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E || Zeus&lt;br /&gt;
|-&lt;br /&gt;
| 0x0F || Titan&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Stone Giant&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || Garbage Can&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || Foot Stomper&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || Flesh Eater&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || Face of Death&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || Skeleton&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || Zombie&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Ghoul&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || Wraith&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || Mummy&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Medusa&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || Vampire&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || Demon&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || Devil&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Giant Yellow Bat&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || Giant Yellow Rat&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || Giant Yellow Ant&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || Yellow Spider&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Yellow Scorpion&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B || Giant Black Bat&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Giant Black Rat&lt;br /&gt;
|-&lt;br /&gt;
| 0x2D || Giant Black Ant&lt;br /&gt;
|-&lt;br /&gt;
| 0x2E || Black Spider&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F || Black Scorpion&lt;br /&gt;
|-&lt;br /&gt;
| 0x32 || Giant Green Bat&lt;br /&gt;
|-&lt;br /&gt;
| 0x33 || Giant Green Rat&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Giant Green Ant&lt;br /&gt;
|-&lt;br /&gt;
| 0x35 || Green Spider&lt;br /&gt;
|-&lt;br /&gt;
| 0x36 || Green Scorpion&lt;br /&gt;
|-&lt;br /&gt;
| 0x39 || Dark Blue Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A || Giant Blue Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x3B || Light Blue Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Giant Yellow Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D || Giant Orange Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E || Giant Red Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x3F || Giant Brown Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || Giant Green Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x41 || Giant Green Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x42 || Giant Red Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x43 || Dark Green Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || Dark Red Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x45 || Dark Grey Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x46 || Giant Grey Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x47 || Giant White Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x48 || Lt. Blue Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x49 || Lt. Red Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A || Lt. Green Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x4B || Yellow Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C || White Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x4D || Lt. Grey Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x4E || Dk. Blue Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x4F || Dk. Red Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || Dk. Green Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x51 || Brown Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x52 || Black Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x53 || Dk. Grey Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x54 || Orange Dragonfly&lt;br /&gt;
|-&lt;br /&gt;
| 0x55 || Orange Minidragon&lt;br /&gt;
|-&lt;br /&gt;
| 0x56 || Orange Dragon&lt;br /&gt;
|-&lt;br /&gt;
| 0x57 || Orange Dragonking&lt;br /&gt;
|-&lt;br /&gt;
| 0x58 || Blue Dragonfly&lt;br /&gt;
|-&lt;br /&gt;
| 0x59 || Blue Minidragon&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A || Blue Dragon&lt;br /&gt;
|-&lt;br /&gt;
| 0x5B || Blue Dragon King&lt;br /&gt;
|-&lt;br /&gt;
| 0x5C || White Dragonfly&lt;br /&gt;
|-&lt;br /&gt;
| 0x5D || White Minidragon&lt;br /&gt;
|-&lt;br /&gt;
| 0x5E || White Dragon&lt;br /&gt;
|-&lt;br /&gt;
| 0x5F || White Dragon King&lt;br /&gt;
|-&lt;br /&gt;
| 0x60 || Green Dragonfly&lt;br /&gt;
|-&lt;br /&gt;
| 0x61 || Green Minidragon&lt;br /&gt;
|-&lt;br /&gt;
| 0x62 || Green Dragon&lt;br /&gt;
|-&lt;br /&gt;
| 0x63 || Green Dragon King&lt;br /&gt;
|-&lt;br /&gt;
| 0x64 || Black Dragonfly&lt;br /&gt;
|-&lt;br /&gt;
| 0x65 || Black Minidragon&lt;br /&gt;
|-&lt;br /&gt;
| 0x66 || Black Dragon&lt;br /&gt;
|-&lt;br /&gt;
| 0x67 || Black Dragon King&lt;br /&gt;
|-&lt;br /&gt;
| 0x68 || Shadow Dragonfly&lt;br /&gt;
|-&lt;br /&gt;
| 0x69 || Shadow Minidragon&lt;br /&gt;
|-&lt;br /&gt;
| 0x6A || Shadow Dragon&lt;br /&gt;
|-&lt;br /&gt;
| 0x6B || Shadow Dragonking&lt;br /&gt;
|-&lt;br /&gt;
| 0x6C || Red Dragonfly&lt;br /&gt;
|-&lt;br /&gt;
| 0x6D || Red Minidragon&lt;br /&gt;
|-&lt;br /&gt;
| 0x6E || Red Dragon&lt;br /&gt;
|-&lt;br /&gt;
| 0x6F || Red Dragon King&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dungeons of the Unforgiven Monster Types ==&lt;br /&gt;
&lt;br /&gt;
The following are valid monster type values. Using values outside of this range will cause unpredictable results:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Giant Garbage Can&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Giant Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Light Blue Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Light Red Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Light Green Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Yellow Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || White Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || Gray Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Sky Blue Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || Dark Red Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || Dark Green Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B || Brown Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Black Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0D || Dark Grey Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E || Poison Flask&lt;br /&gt;
|-&lt;br /&gt;
| 0x0F || Poisoned Druggie&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Chemical Bomb&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || Poison Toxic Waste&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || Flask of Disease&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || Diseased Druggie&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Biological Bomb&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || Can of Toxic Waste&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || Module Enemy A (i.e. Shadow Gargalon in Module I, Gargonian Portion)&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || Module Enemy E (i.e. Gargalon in Module I, Gargonian Portion)&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Module Enemy B (i.e. Lesdidian Warrior in Module I, Gargonian Portion)&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || Module Enemy C (i.e. Harpey in Module I, Gargonian Portion)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || Module Enemy D (i.e. Sustrontime in Module I, Gargonian Portion)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered and documented by [[User:Spectere|Spectere]]. If you find this information helpful in a project you&#039;re working on, please give credit where credit is due. (A link back to this wiki would be nice too!)&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Moraff_Monster_Map&amp;diff=7073</id>
		<title>Moraff Monster Map</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Moraff_Monster_Map&amp;diff=7073"/>
		<updated>2017-03-15T18:28:09Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Added Moraff&amp;#039;s World monster IDs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Playerdata Infobox&lt;br /&gt;
 | Savegame = Yes&lt;br /&gt;
 | Where = Anywhere&lt;br /&gt;
 | Elements = Monster Locations&lt;br /&gt;
 | Games =&lt;br /&gt;
   {{Game|Moraff&#039;s World}}&lt;br /&gt;
   {{Game|Dungeons of the Unforgiven}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Moraff&#039;s World&#039;&#039; and &#039;&#039;Dungeons of the Unforgiven&#039;&#039; store up to three floors worth of monsters in memory at any given time. Each floor can have up to 145 monsters active at any given time. As the player traverses the dungeon, monsters are dynamically created based on the player&#039;s level, active module, and current floor.&lt;br /&gt;
&lt;br /&gt;
If they reach a floor that doesn&#039;t currently have any active monsters, a new set will be created and the set that&#039;s farthest away will be discarded. {{TODO|This information is based on speculation via semi-casual observation and needs verification.}}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || set1Floor || The floor that the first set of monster&#039;s live on (0x00 or 0xFF disables that list).&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || set2Floor || The floor that the second set of monster&#039;s live on (0x00 or 0xFF disables that list).&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || set3Floor || The floor that the third set of monster&#039;s live on (0x00 or 0xFF disables that list).&lt;br /&gt;
|-&lt;br /&gt;
| [[#Monster_Instance|MONSTER]][145] || set1Array || An array of monsters that exist on the floor specified by set1Floor.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Monster_Instance|MONSTER]][145] || set2Array || An array of monsters that exist on the floor specified by set2Floor.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Monster_Instance|MONSTER]][145] || set3Array || An array of monsters that exist on the floor specified by set3Floor.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Monster Instance ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || monsterX || The X coordinate of the monster.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || monsterY || The Y coordinate of the monster.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || monsterHP || The monster&#039;s remaining hit points.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || monsterType || The type of monster on this tile (see [[#Moraff&#039;s World Monster Types|Moraff&#039;s World Monster Types]] or [[#Dungeons of the Unforgiven Monster Types|Dungeons of the Unforgiven Monster Types]] for valid IDs).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || monsterLevel || The level of the monster.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Moraff&#039;s World Monster Types ==&lt;br /&gt;
&lt;br /&gt;
The following are valid monster type values. Generally, if a value that is not on this table is used, the resulting monster will be an Ogre (0x00), but results beyond 0x6F can be unpredictable.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Ogre&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Werewolf&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Walking Sword&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Kobald&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Orc&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Dwarf&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || Knight&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Ape&lt;br /&gt;
|-&lt;br /&gt;
| 0x0D || Unicorn&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E || Zeus&lt;br /&gt;
|-&lt;br /&gt;
| 0x0F || Titan&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Stone Giant&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || Garbage Can&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || Foot Stomper&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || Flesh Eater&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || Face of Death&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || Skeleton&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || Zombie&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Ghoul&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || Wraith&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || Mummy&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Medusa&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || Vampire&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || Demon&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || Devil&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Giant Yellow Bat&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || Giant Yellow Rat&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || Giant Yellow Ant&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || Yellow Spider&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Yellow Scorpion&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B || Giant Black Bat&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Giant Black Rat&lt;br /&gt;
|-&lt;br /&gt;
| 0x2D || Giant Black Ant&lt;br /&gt;
|-&lt;br /&gt;
| 0x2E || Black Spider&lt;br /&gt;
|-&lt;br /&gt;
| 0x2F || Black Scorpion&lt;br /&gt;
|-&lt;br /&gt;
| 0x32 || Giant Green Bat&lt;br /&gt;
|-&lt;br /&gt;
| 0x33 || Giant Green Rat&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Giant Green Ant&lt;br /&gt;
|-&lt;br /&gt;
| 0x35 || Green Spider&lt;br /&gt;
|-&lt;br /&gt;
| 0x36 || Green Scorpion&lt;br /&gt;
|-&lt;br /&gt;
| 0x39 || Dark Blue Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A || Giant Blue Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x3B || Light Blue Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Giant Yellow Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D || Giant Orange Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x3E || Giant Red Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x3F || Giant Brown Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || Giant Green Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x41 || Giant Green Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x42 || Giant Red Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x43 || Dark Green Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || Dark Red Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x45 || Dark Grey Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x46 || Giant Grey Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x47 || Giant White Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x48 || Lt. Blue Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x49 || Lt. Red Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A || Lt. Green Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x4B || Yellow Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C || White Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x4D || Lt. Grey Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x4E || Dk. Blue Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x4F || Dk. Red Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || Dk. Green Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x51 || Brown Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x52 || Black Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x53 || Dk. Grey Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x54 || Orange Dragonfly&lt;br /&gt;
|-&lt;br /&gt;
| 0x55 || Orange Minidragon&lt;br /&gt;
|-&lt;br /&gt;
| 0x56 || Orange Dragon&lt;br /&gt;
|-&lt;br /&gt;
| 0x57 || Orange Dragonking&lt;br /&gt;
|-&lt;br /&gt;
| 0x58 || Blue Dragonfly&lt;br /&gt;
|-&lt;br /&gt;
| 0x59 || Blue Minidragon&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A || Blue Dragon&lt;br /&gt;
|-&lt;br /&gt;
| 0x5B || Blue Dragon King&lt;br /&gt;
|-&lt;br /&gt;
| 0x5C || White Dragonfly&lt;br /&gt;
|-&lt;br /&gt;
| 0x5D || White Minidragon&lt;br /&gt;
|-&lt;br /&gt;
| 0x5E || White Dragon&lt;br /&gt;
|-&lt;br /&gt;
| 0x5F || White Dragon King&lt;br /&gt;
|-&lt;br /&gt;
| 0x60 || Green Dragonfly&lt;br /&gt;
|-&lt;br /&gt;
| 0x61 || Green Minidragon&lt;br /&gt;
|-&lt;br /&gt;
| 0x62 || Green Dragon&lt;br /&gt;
|-&lt;br /&gt;
| 0x63 || Green Dragon King&lt;br /&gt;
|-&lt;br /&gt;
| 0x64 || Black Dragonfly&lt;br /&gt;
|-&lt;br /&gt;
| 0x65 || Black Minidragon&lt;br /&gt;
|-&lt;br /&gt;
| 0x66 || Black Dragon&lt;br /&gt;
|-&lt;br /&gt;
| 0x67 || Black Dragon King&lt;br /&gt;
|-&lt;br /&gt;
| 0x68 || Shadow Dragonfly&lt;br /&gt;
|-&lt;br /&gt;
| 0x69 || Shadow Minidragon&lt;br /&gt;
|-&lt;br /&gt;
| 0x6A || Shadow Dragon&lt;br /&gt;
|-&lt;br /&gt;
| 0x6B || Shadow Dragonking&lt;br /&gt;
|-&lt;br /&gt;
| 0x6C || Red Dragonfly&lt;br /&gt;
|-&lt;br /&gt;
| 0x6D || Red Minidragon&lt;br /&gt;
|-&lt;br /&gt;
| 0x6E || Red Dragon&lt;br /&gt;
|-&lt;br /&gt;
| 0x6F || Red Dragon King&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dungeons of the Unforgiven Monster Types ==&lt;br /&gt;
&lt;br /&gt;
The following are valid monster type values. Using values outside of this range will cause unpredictable results:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || No Monster&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Giant Garbage Can&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Giant Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Light Blue Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Light Red Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Light Green Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Yellow Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || White Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Gray Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || Sky Blue Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || Dark Red Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B || Dark Green Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Brown Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0D || Black Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E || Dark Grey Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0F || Poison Flask&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Poisoned Druggie&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || Chemical Bomb&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || Poison Toxic Waste&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || Flask of Disease&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Diseased Druggie&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || Biological Bomb&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || Can of Toxic Waste&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || Module Enemy E (i.e. Gargalon in Module I, Gargonian Portion)&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Module Enemy B (i.e. Lesdidian Warrior in Module I, Gargonian Portion)&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || Module Enemy C (i.e. Harpey in Module I, Gargonian Portion)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || Module Enemy D (i.e. Sustrontime in Module I, Gargonian Portion)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered and documented by [[User:Spectere|Spectere]]. If you find this information helpful in a project you&#039;re working on, please give credit where credit is due. (A link back to this wiki would be nice too!)&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven&amp;diff=7072</id>
		<title>Dungeons of the Unforgiven</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven&amp;diff=7072"/>
		<updated>2017-03-15T12:34:11Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Made a few game infobox edits.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Unknown&lt;br /&gt;
 | Tiles = Unknown&lt;br /&gt;
 | Sprites = Unknown&lt;br /&gt;
 | Fullscreen = Unknown&lt;br /&gt;
 | Sound = None&lt;br /&gt;
 | Music = None&lt;br /&gt;
 | Text = Some&lt;br /&gt;
 | Story = None&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
MoraffWare&#039;s &#039;&#039;Dungeons of the Unforgiven&#039;&#039; is a first-person dungeon crawler for MS-DOS, released as shareware in 1993 by MoraffWare. This is the third game in MoraffWare&#039;s series of role-playing games and is the direct successor to [[Moraff&#039;s World]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Dungeons of the Unforgiven&#039;&#039;, like &#039;&#039;Moraff&#039;s World&#039;&#039;, is notable for its wide range of display options. It is capable of displaying graphics on everything from CGA/Hercules to SuperVGA, supporting everything from 320x200 with 4 colors to 1024x768 with 256 colors.&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = 2?&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Player Character|Player Character]]&lt;br /&gt;
 | KnownFormat = Partial&lt;br /&gt;
 | Desc = A saved player character. Up to 10 characters can be saved (with filenames ranging from 20 through 29, corresponding to the slot that the character is stored in).&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?0?.DUN&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Dungeon|Dungeon]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A map of each dungeon module. The first character of the filename is the player identifier (D is slot 0, M is slot 9) and the third character is the zero-indexed number of the module.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?MON.MAP&lt;br /&gt;
 | Format = [[Moraff Monster Map|Monster Map]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = A dump of the currently generated monsters in the dungeon. Each player character has a monster map, with filenames ranging from DMON.MAP through MMON.MAP.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = MD.BIN&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Monster Information|Monster Information]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = This file contains the monster information directory that players can access by hitting the &#039;S&#039; key during play.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = UNFDUNG.BIN&lt;br /&gt;
 | Format = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = UH.BIN&amp;lt;br/&amp;gt;UH2.BIN&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven In-Game Text|In-Game Text]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = These two plaintext files contain most of the in-game messages, aside from the UI messages. While some strings are compiled into the executable, the vast majority are included here.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = UROLL.TXT&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Character Creation Text|Character Creation Text]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = This file contains text blocks used during the character creation process. Each screen element reads a fixed number of lines from the text file.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.FNT&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Font|Font]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A few fonts that are used by the game. These are most likely vector fonts.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.PIC&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Picture Format|Picture]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A set of files containing the game&#039;s sprites, textures, and full-screen images. Due to the game&#039;s wide ranging display support, it&#039;s likely that the images are vectorized.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.UHP&lt;br /&gt;
 | Format = [[Moraff Help File|Help File]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Stores the colored text that&#039;s displayed in the in-game help screens.&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
* All bundled executables are compressed with [[PKLite compression]]. Despite UNFORGIV.EXE being used to launch the game, all of the game logic is stored in UNF.EXE.&lt;br /&gt;
&lt;br /&gt;
[[Category:MoraffWare]]&lt;br /&gt;
[[Category:Moraff&#039;s Dungeon Pack]]&lt;br /&gt;
[[Category:Dungeons of the Unforgiven]]&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Moraff%27s_World&amp;diff=7071</id>
		<title>Moraff&#039;s World</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Moraff%27s_World&amp;diff=7071"/>
		<updated>2017-03-15T12:33:51Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Made a few game infobox edits.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Unknown&lt;br /&gt;
 | Tiles = Unknown&lt;br /&gt;
 | Sprites = Unknown&lt;br /&gt;
 | Fullscreen = Unknown&lt;br /&gt;
 | Sound = None&lt;br /&gt;
 | Music = None&lt;br /&gt;
 | Text = Some&lt;br /&gt;
 | Story = None&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
MoraffWare&#039;s &#039;&#039;Moraff&#039;s World&#039;&#039; is a first-person dungeon crawler for MS-DOS, released as shareware in 1991 by MoraffWare. This is the second game in MoraffWare&#039;s series of role-playing games, is the direct successor to [[Moraff&#039;s Revenge]], and is succeeded by [[Dungeons of the Unforgiven]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Moraff&#039;s World&#039;&#039; is notable for its wide range of display options. It is capable of displaying graphics on everything from CGA/Hercules to SuperVGA, supporting everything from 320x200 with 4 colors to 1024x768 with 256 colors.&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?&lt;br /&gt;
 | Format = [[Moraff&#039;s World Player Character|Player Character]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A saved player character. Up to 10 characters can be saved (with filenames ranging from 0 through 9, corresponding to the slot that the character is stored in).&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?0.DUN&lt;br /&gt;
 | Format = [[Moraff&#039;s World Dungeon|Dungeon]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A map of the dungeon. The first character of the filename is the slot number for the corresponding player. {{TODO|See if this uses the same format as Dungeons of the Unforgiven.}}&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?MON.MAP&lt;br /&gt;
 | Format = [[Moraff Monster Map|Monster Map]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = A dump of the currently generated monsters in the dungeon. Each player character has a monster map, with filenames ranging from 0MON.MAP through 9MON.MAP.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = DUNG.BIN&lt;br /&gt;
 | Format = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = H.BIN&lt;br /&gt;
 | Format = [[Moraff&#039;s World In-Game Text|In-Game Text]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = This plaintext files contain many of the in-game messages, aside from the UI messages.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ROLL.TXT&lt;br /&gt;
 | Format = [[Moraff&#039;s World Character Creation Text|Character Creation Text]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = This file contains text blocks used during the character creation process. Each screen element reads a fixed number of lines from the text file.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = WORLDMAP.BIN&lt;br /&gt;
 | Format = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.FNT&lt;br /&gt;
 | Format = [[Moraff&#039;s World Font|Font]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A few fonts that are used by the game. These are most likely vector fonts. {{TODO|See if this uses the same format as Dungeons of the Unforgiven.}}&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.HLP&lt;br /&gt;
 | Format = [[Moraff Help File|Help File]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Stores the colored text that&#039;s displayed in the in-game help screens.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.PIC&lt;br /&gt;
 | Format = [[Moraff&#039;s World Picture Format|Picture]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A set of files containing the game&#039;s sprites and textures. Due to the game&#039;s wide ranging display support, it&#039;s likely that the images are vectorized. {{TODO|See if this uses the same format as Dungeons of the Unforgiven.}}&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
* All bundled executables are compressed with [[PKLite compression]]. Despite MW.EXE being used to launch the game, all of the game logic is stored in WORLD.EXE.&lt;br /&gt;
&lt;br /&gt;
[[Category:MoraffWare]]&lt;br /&gt;
[[Category:Moraff&#039;s Dungeon Pack]]&lt;br /&gt;
[[Category:Moraff&#039;s World]]&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=File:Moraff%27s_World.png&amp;diff=7070</id>
		<title>File:Moraff&#039;s World.png</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=File:Moraff%27s_World.png&amp;diff=7070"/>
		<updated>2017-03-14T19:29:52Z</updated>

		<summary type="html">&lt;p&gt;Spectere: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Help_File&amp;diff=7069</id>
		<title>Dungeons of the Unforgiven Help File</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Help_File&amp;diff=7069"/>
		<updated>2017-03-14T19:27:34Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Created redirect to point to the new, generalized page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Moraff Help File]]&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Moraff_Help_File&amp;diff=7068</id>
		<title>Moraff Help File</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Moraff_Help_File&amp;diff=7068"/>
		<updated>2017-03-14T19:27:07Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Created page based on the DotU one; added MW references.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Text Infobox&lt;br /&gt;
 | Type = Help&lt;br /&gt;
 | Lines = CRLF&lt;br /&gt;
 | Charset = ASCII&lt;br /&gt;
 | Games =&lt;br /&gt;
   {{Game|Moraff&#039;s World}}&lt;br /&gt;
   {{Game|Dungeons of the Unforgiven}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The format used by the *.HLP files in &#039;&#039;[[Moraff&#039;s World]]&#039;&#039; and the *.UHP files in &#039;&#039;[[Dungeons of the Unforgiven]]&#039;&#039; is a simple text-based format with designated characters to change the color of the text. The color or control tag can be specified anywhere in the line. All of the color or control tags are in lowercase, while all displayed text is printed in uppercase. Numeric values and punctuation are also acceptable printed characters. Any unrecognized tag character will be printed normally.&lt;br /&gt;
&lt;br /&gt;
If the line of text is too wide to be displayed, the game will horizontally stretch the font to make it fit. The maximum number of lines that can be displayed appears to be 30. {{TODO|Tested with 1024x768. Verify with other screen resolutions.}}&lt;br /&gt;
&lt;br /&gt;
== Color Characters ==&lt;br /&gt;
&lt;br /&gt;
The following characters select the output color of the text. If one of these are specified, all of the text following this tag will be printed in the specified color.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Character !! Resulting Color&lt;br /&gt;
|-&lt;br /&gt;
| b || Cyan (&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#51CDFF;background-color:black&amp;quot;&amp;gt;#51CDFF&amp;lt;/span&amp;gt;&#039;&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| g || Green (&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#00FF00;background-color:black&amp;quot;&amp;gt;#00FF00&amp;lt;/span&amp;gt;&#039;&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| n || Gold (&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FFB600;background-color:black&amp;quot;&amp;gt;#FFB600&amp;lt;/span&amp;gt;&#039;&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| o || Orange (&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#D75100;background-color:black&amp;quot;&amp;gt;#D75100&amp;lt;/span&amp;gt;&#039;&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| r || Red (&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0028;background-color:black&amp;quot;&amp;gt;#FF0028&amp;lt;/span&amp;gt;&#039;&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| w || White (&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FFFFFF;background-color:black&amp;quot;&amp;gt;#FFFFFF&amp;lt;/span&amp;gt;&#039;&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| y || Yellow (&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FFFF51;background-color:black&amp;quot;&amp;gt;#FFFF51&amp;lt;/span&amp;gt;&#039;&#039;&#039;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Multiple color changes can be specified in a single line, but only the last one will take effect. Inline color changes are not possible.&lt;br /&gt;
&lt;br /&gt;
== Control Sequences ==&lt;br /&gt;
&lt;br /&gt;
The following character sequences provide a way of controlling the flow of text in the dialog box.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Character !! Resulting Effect&lt;br /&gt;
|-&lt;br /&gt;
| eX || Pauses and waits for a key. When a key is pressed, the text pane is cleared and the next rows of text are displayed.&lt;br /&gt;
|-&lt;br /&gt;
| ee || Pauses and waits for a key. When a key is pressed, the player is brought back to the help menu. This &#039;&#039;&#039;must&#039;&#039;&#039; be included, otherwise the game will freeze after the help text is displayed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Both of these sequences can appear in the middle of a line. If &#039;&#039;ee&#039;&#039; is encountered, the line that it appears on is not displayed. If &#039;&#039;eX&#039;&#039; is encountered, the line that it appears on will not be displayed at all on the first page, but the characters following the sequences will be displayed on the second page, skipping the one immediately following the sequence. For example, if the string &amp;quot;HELLO WOeXRLD!&amp;quot; is in the file, the first page will be blank and the second will contain &amp;quot;LD!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Moraff&#039;s World Help Filenames ==&lt;br /&gt;
&lt;br /&gt;
{{TODO|Work these out and create a table.}}&lt;br /&gt;
&lt;br /&gt;
== Dungeons of the Unforgiven Help Filenames ==&lt;br /&gt;
&lt;br /&gt;
The *.UHP files are named using numbers, starting from 0 and ending with 29 (skipping 18 and 19, giving a total of 30 help files. The following table shows which files are mapped to each help menu option:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Shortcut Key !! Option Heading !! Help File&lt;br /&gt;
|-&lt;br /&gt;
| A || A-CHANGE (A)RMOR || 4.UHP&lt;br /&gt;
|-&lt;br /&gt;
| C || C-(C)AST SPELL OR SPELL HELP || 13.UHP&lt;br /&gt;
|-&lt;br /&gt;
| D || D-GO (D)OWN LADDER || 9.UHP&lt;br /&gt;
|-&lt;br /&gt;
| E || E-SHOW (E)XPERIENCE NEEDED || 12.UHP&lt;br /&gt;
|-&lt;br /&gt;
| F || F-(F)IGHT MONSTER || 2.UHP&lt;br /&gt;
|-&lt;br /&gt;
| G || G-(G)RAPHICS CONTROL || 0.UHP&lt;br /&gt;
|-&lt;br /&gt;
| I || I-USE MAGIC (I)TEM || 6.UHP&lt;br /&gt;
|-&lt;br /&gt;
| L || L-(L)OSE OR DROP THINGS || 8.UHP&lt;br /&gt;
|-&lt;br /&gt;
| M || M-(M)ONEY (FINANCIAL) STATEMENT || 5.UHP&lt;br /&gt;
|-&lt;br /&gt;
| O || O-(O)PTIONS MENU || 16.UHP&lt;br /&gt;
|-&lt;br /&gt;
| P || P-CHECK (P)OCKETS (INVENTORY) || 14.UHP&lt;br /&gt;
|-&lt;br /&gt;
| Q || Q-(Q)UIT AND SAVE CHARACTER || 1.UHP&lt;br /&gt;
|-&lt;br /&gt;
| S || S-(S)ECTION MONSTER INFORMATION || 11.UHP&lt;br /&gt;
|-&lt;br /&gt;
| U || U-CLIMB (U)P LADDER || 10.UHP&lt;br /&gt;
|-&lt;br /&gt;
| V || V-VIEW YOUR (V)ITAL STATS || 7.UHP&lt;br /&gt;
|-&lt;br /&gt;
| W || W-SELECT (W)EAPON FOR ATTACKING || 3.UHP&lt;br /&gt;
|-&lt;br /&gt;
| X || X-E(X)PAND THE MAP || 17.UHP&lt;br /&gt;
|-&lt;br /&gt;
| Z || Z-(Z)OOM IN ON FORWARD VIEW || 15.UHP&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0-OBJECTIVE, (MEANING OF LIFE) || 20.UHP&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1-MOVING AROUND THE DUNGEON || 21.UHP&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 2-GENERAL PLAY OF GAME || 22.UHP&lt;br /&gt;
|-&lt;br /&gt;
| 3 || 3-VISITOR&#039;S GUIDE TO THE TOWN || 23.UHP&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 4-SPELLS, SCROLLS, WANDS, PAPER || 24.UHP&lt;br /&gt;
|-&lt;br /&gt;
| 5 || 5-HOW TO USE MAGIC ITEMS || 25.UHP&lt;br /&gt;
|-&lt;br /&gt;
| 6 || 6-GENERAL HINTS FOR SUCCESS || 26.UHP&lt;br /&gt;
|-&lt;br /&gt;
| 7 || 7-MORAFF&#039;S SPECIAL SECRET HINTS || 27.UHP&lt;br /&gt;
|-&lt;br /&gt;
| 8 || 8-TOP SECRET HINTS NO ONE KNOWS || 28.UHP&lt;br /&gt;
|-&lt;br /&gt;
| 9 || 9-HISTORY OF THIS UNIVERSE || 29.UHP&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* The options in the help menu cannot be changed without modifying the strings in UNF.EXE.&lt;br /&gt;
* While 18.UHP is included with the game, it is not used. It&#039;s a duplicate of 16.UHP, sans the &amp;quot;HIT A KEY&amp;quot; prompt and [[#Control_Sequences|eX control character]].&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Monster_Map&amp;diff=7067</id>
		<title>Dungeons of the Unforgiven Monster Map</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Monster_Map&amp;diff=7067"/>
		<updated>2017-03-14T19:24:58Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Redirects to new, generalized page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Moraff Monster Map]]&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Moraff_Monster_Map&amp;diff=7066</id>
		<title>Moraff Monster Map</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Moraff_Monster_Map&amp;diff=7066"/>
		<updated>2017-03-14T19:24:30Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Created page based on the DotU one; added MW references.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Playerdata Infobox&lt;br /&gt;
 | Savegame = Yes&lt;br /&gt;
 | Where = Anywhere&lt;br /&gt;
 | Elements = Monster Locations&lt;br /&gt;
 | Games =&lt;br /&gt;
   {{Game|Moraff&#039;s World}}&lt;br /&gt;
   {{Game|Dungeons of the Unforgiven}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Moraff&#039;s World&#039;&#039; and &#039;&#039;Dungeons of the Unforgiven&#039;&#039; store up to three floors worth of monsters in memory at any given time. Each floor can have up to 145 monsters active at any given time. As the player traverses the dungeon, monsters are dynamically created based on the player&#039;s level, active module, and current floor.&lt;br /&gt;
&lt;br /&gt;
If they reach a floor that doesn&#039;t currently have any active monsters, a new set will be created and the set that&#039;s farthest away will be discarded. {{TODO|This information is based on speculation via semi-casual observation and needs verification.}}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || set1Floor || The floor that the first set of monster&#039;s live on (0x00 or 0xFF disables that list).&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || set2Floor || The floor that the second set of monster&#039;s live on (0x00 or 0xFF disables that list).&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || set3Floor || The floor that the third set of monster&#039;s live on (0x00 or 0xFF disables that list).&lt;br /&gt;
|-&lt;br /&gt;
| [[#Monster_Instance|MONSTER]][145] || set1Array || An array of monsters that exist on the floor specified by set1Floor.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Monster_Instance|MONSTER]][145] || set2Array || An array of monsters that exist on the floor specified by set2Floor.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Monster_Instance|MONSTER]][145] || set3Array || An array of monsters that exist on the floor specified by set3Floor.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Monster Instance ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || monsterX || The X coordinate of the monster.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || monsterY || The Y coordinate of the monster.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || monsterHP || The monster&#039;s remaining hit points.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || monsterType || The type of monster on this tile (see [[#Moraff&#039;s World Monster Types|Moraff&#039;s World Monster Types]] or [[#Dungeons of the Unforgiven Monster Types|Dungeons of the Unforgiven Monster Types]] for valid IDs).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || monsterLevel || The level of the monster.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Moraff&#039;s World Monster Types ==&lt;br /&gt;
&lt;br /&gt;
{{TODO|Add the types here.}}&lt;br /&gt;
&lt;br /&gt;
== Dungeons of the Unforgiven Monster Types ==&lt;br /&gt;
&lt;br /&gt;
The following are valid monster type values. Using values outside of this range will cause unpredictable results:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || No Monster&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Giant Garbage Can&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Giant Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Light Blue Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Light Red Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Light Green Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Yellow Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || White Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Gray Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || Sky Blue Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || Dark Red Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B || Dark Green Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Brown Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0D || Black Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E || Dark Grey Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0F || Poison Flask&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Poisoned Druggie&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || Chemical Bomb&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || Poison Toxic Waste&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || Flask of Disease&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Diseased Druggie&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || Biological Bomb&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || Can of Toxic Waste&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || Module Enemy E (i.e. Gargalon in Module I, Gargonian Portion)&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Module Enemy B (i.e. Lesdidian Warrior in Module I, Gargonian Portion)&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || Module Enemy C (i.e. Harpey in Module I, Gargonian Portion)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || Module Enemy D (i.e. Sustrontime in Module I, Gargonian Portion)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered and documented by [[User:Spectere|Spectere]]. If you find this information helpful in a project you&#039;re working on, please give credit where credit is due. (A link back to this wiki would be nice too!)&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven&amp;diff=7065</id>
		<title>Dungeons of the Unforgiven</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven&amp;diff=7065"/>
		<updated>2017-03-14T19:18:35Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Changed links of common formats; added Dungeon Pack category.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Unknown&lt;br /&gt;
 | Tiles = Unknown&lt;br /&gt;
 | Sprites = Unknown&lt;br /&gt;
 | Fullscreen = Unknown&lt;br /&gt;
 | Sound = Unknown&lt;br /&gt;
 | Music = Unknown&lt;br /&gt;
 | Text = Edit&lt;br /&gt;
 | Story = Unknown&lt;br /&gt;
 | Interface = Unknown&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
MoraffWare&#039;s &#039;&#039;Dungeons of the Unforgiven&#039;&#039; is a first-person dungeon crawler for MS-DOS, released as shareware in 1993 by MoraffWare. This is the third game in MoraffWare&#039;s series of role-playing games and is the direct successor to [[Moraff&#039;s World]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Dungeons of the Unforgiven&#039;&#039;, like &#039;&#039;Moraff&#039;s World&#039;&#039;, is notable for its wide range of display options. It is capable of displaying graphics on everything from CGA/Hercules to SuperVGA, supporting everything from 320x200 with 4 colors to 1024x768 with 256 colors.&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = 2?&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Player Character|Player Character]]&lt;br /&gt;
 | KnownFormat = Partial&lt;br /&gt;
 | Desc = A saved player character. Up to 10 characters can be saved (with filenames ranging from 20 through 29, corresponding to the slot that the character is stored in).&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?0?.DUN&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Dungeon|Dungeon]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A map of each dungeon module. The first character of the filename is the player identifier (D is slot 0, M is slot 9) and the third character is the zero-indexed number of the module.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?MON.MAP&lt;br /&gt;
 | Format = [[Moraff Monster Map|Monster Map]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = A dump of the currently generated monsters in the dungeon. Each player character has a monster map, with filenames ranging from DMON.MAP through MMON.MAP.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = MD.BIN&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Monster Information|Monster Information]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = This file contains the monster information directory that players can access by hitting the &#039;S&#039; key during play.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = UNFDUNG.BIN&lt;br /&gt;
 | Format = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = UH.BIN&amp;lt;br/&amp;gt;UH2.BIN&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven In-Game Text|In-Game Text]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = These two plaintext files contain most of the in-game messages, aside from the UI messages. While some strings are compiled into the executable, the vast majority are included here.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = UROLL.TXT&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Character Creation Text|Character Creation Text]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = This file contains text blocks used during the character creation process. Each screen element reads a fixed number of lines from the text file.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.FNT&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Font|Font]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A few fonts that are used by the game. These are most likely vector fonts.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.PIC&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Picture Format|Picture]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A set of files containing the game&#039;s sprites, textures, and full-screen images. Due to the game&#039;s wide ranging display support, it&#039;s likely that the images are vectorized.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.UHP&lt;br /&gt;
 | Format = [[Moraff Help File|Help File]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Stores the colored text that&#039;s displayed in the in-game help screens.&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
* All bundled executables are compressed with [[PKLite compression]]. Despite UNFORGIV.EXE being used to launch the game, all of the game logic is stored in UNF.EXE.&lt;br /&gt;
&lt;br /&gt;
[[Category:MoraffWare]]&lt;br /&gt;
[[Category:Moraff&#039;s Dungeon Pack]]&lt;br /&gt;
[[Category:Dungeons of the Unforgiven]]&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Moraff%27s_World&amp;diff=7064</id>
		<title>Moraff&#039;s World</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Moraff%27s_World&amp;diff=7064"/>
		<updated>2017-03-14T19:16:43Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Created page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Unknown&lt;br /&gt;
 | Tiles = Unknown&lt;br /&gt;
 | Sprites = Unknown&lt;br /&gt;
 | Fullscreen = Unknown&lt;br /&gt;
 | Sound = Unknown&lt;br /&gt;
 | Music = Unknown&lt;br /&gt;
 | Text = Unknown&lt;br /&gt;
 | Story = Unknown&lt;br /&gt;
 | Interface = Unknown&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
MoraffWare&#039;s &#039;&#039;Moraff&#039;s World&#039;&#039; is a first-person dungeon crawler for MS-DOS, released as shareware in 1991 by MoraffWare. This is the second game in MoraffWare&#039;s series of role-playing games, is the direct successor to [[Moraff&#039;s Revenge]], and is succeeded by [[Dungeons of the Unforgiven]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Moraff&#039;s World&#039;&#039; is notable for its wide range of display options. It is capable of displaying graphics on everything from CGA/Hercules to SuperVGA, supporting everything from 320x200 with 4 colors to 1024x768 with 256 colors.&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?&lt;br /&gt;
 | Format = [[Moraff&#039;s World Player Character|Player Character]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A saved player character. Up to 10 characters can be saved (with filenames ranging from 0 through 9, corresponding to the slot that the character is stored in).&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?0.DUN&lt;br /&gt;
 | Format = [[Moraff&#039;s World Dungeon|Dungeon]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A map of the dungeon. The first character of the filename is the slot number for the corresponding player. {{TODO|See if this uses the same format as Dungeons of the Unforgiven.}}&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?MON.MAP&lt;br /&gt;
 | Format = [[Moraff Monster Map|Monster Map]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = A dump of the currently generated monsters in the dungeon. Each player character has a monster map, with filenames ranging from 0MON.MAP through 9MON.MAP.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = DUNG.BIN&lt;br /&gt;
 | Format = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = H.BIN&lt;br /&gt;
 | Format = [[Moraff&#039;s World In-Game Text|In-Game Text]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = This plaintext files contain many of the in-game messages, aside from the UI messages.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ROLL.TXT&lt;br /&gt;
 | Format = [[Moraff&#039;s World Character Creation Text|Character Creation Text]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = This file contains text blocks used during the character creation process. Each screen element reads a fixed number of lines from the text file.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = WORLDMAP.BIN&lt;br /&gt;
 | Format = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.FNT&lt;br /&gt;
 | Format = [[Moraff&#039;s World Font|Font]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A few fonts that are used by the game. These are most likely vector fonts. {{TODO|See if this uses the same format as Dungeons of the Unforgiven.}}&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.HLP&lt;br /&gt;
 | Format = [[Moraff Help File|Help File]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Stores the colored text that&#039;s displayed in the in-game help screens.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.PIC&lt;br /&gt;
 | Format = [[Moraff&#039;s World Picture Format|Picture]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A set of files containing the game&#039;s sprites and textures. Due to the game&#039;s wide ranging display support, it&#039;s likely that the images are vectorized. {{TODO|See if this uses the same format as Dungeons of the Unforgiven.}}&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
* All bundled executables are compressed with [[PKLite compression]]. Despite MW.EXE being used to launch the game, all of the game logic is stored in WORLD.EXE.&lt;br /&gt;
&lt;br /&gt;
[[Category:MoraffWare]]&lt;br /&gt;
[[Category:Moraff&#039;s Dungeon Pack]]&lt;br /&gt;
[[Category:Moraff&#039;s World]]&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven&amp;diff=7063</id>
		<title>Dungeons of the Unforgiven</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven&amp;diff=7063"/>
		<updated>2017-03-14T19:06:11Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Added a reference to Moraff&amp;#039;s World in the paragraph detailing the display mode options.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Unknown&lt;br /&gt;
 | Tiles = Unknown&lt;br /&gt;
 | Sprites = Unknown&lt;br /&gt;
 | Fullscreen = Unknown&lt;br /&gt;
 | Sound = Unknown&lt;br /&gt;
 | Music = Unknown&lt;br /&gt;
 | Text = Edit&lt;br /&gt;
 | Story = Unknown&lt;br /&gt;
 | Interface = Unknown&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
MoraffWare&#039;s &#039;&#039;Dungeons of the Unforgiven&#039;&#039; is a first-person dungeon crawler for MS-DOS, released as shareware in 1993 by MoraffWare. This is the third game in MoraffWare&#039;s series of role-playing games and is the direct successor to [[Moraff&#039;s World]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Dungeons of the Unforgiven&#039;&#039;, like &#039;&#039;Moraff&#039;s World&#039;&#039;, is notable for its wide range of display options. It is capable of displaying graphics on everything from CGA/Hercules to SuperVGA, supporting everything from 320x200 with 4 colors to 1024x768 with 256 colors.&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = 2?&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Player Character|Player Character]]&lt;br /&gt;
 | KnownFormat = Partial&lt;br /&gt;
 | Desc = A saved player character. Up to 10 characters can be saved (with filenames ranging from 20 through 29, corresponding to the slot that the character is stored in).&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?0?.DUN&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Dungeon|Dungeon]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A map of each dungeon module. The first character of the filename is the player identifier (D is slot 0, M is slot 9) and the third character is the zero-indexed number of the module.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?MON.MAP&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Monster Map|Monster Map]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = A dump of the currently generated monsters in the dungeon. Each player character has a monster map, with filenames ranging from DMON.MAP through MMON.MAP.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = MD.BIN&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Monster Information|Monster Information]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = This file contains the monster information directory that players can access by hitting the &#039;S&#039; key during play.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = UNFDUNG.BIN&lt;br /&gt;
 | Format = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = UH.BIN&amp;lt;br/&amp;gt;UH2.BIN&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven In-Game Text|In-Game Text]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = These two plaintext files contain most of the in-game messages, aside from the UI messages. While some strings are compiled into the executable, the vast majority are included here.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = UROLL.TXT&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Character Creation Text|Character Creation Text]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = This file contains text blocks used during the character creation process. Each screen element reads a fixed number of lines from the text file.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.FNT&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Font|Font]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A few fonts that are used by the game. These are most likely vector fonts.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.PIC&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Picture Format|Picture]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A set of files containing the game&#039;s sprites, textures, and full-screen images. Due to the game&#039;s wide ranging display support, it&#039;s likely that the images are vectorized.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.UHP&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Help File|Help File]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Stores the colored text that&#039;s displayed in the in-game help screens.&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
* All bundled executables are compressed with [[PKLite compression]]. Despite UNFORGIV.EXE being used to launch the game, all of the game logic is stored in UNF.EXE.&lt;br /&gt;
&lt;br /&gt;
[[Category:MoraffWare]]&lt;br /&gt;
[[Category:Dungeons of the Unforgiven]]&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven&amp;diff=7062</id>
		<title>Dungeons of the Unforgiven</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven&amp;diff=7062"/>
		<updated>2017-03-14T14:06:09Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Added more specific information as to what MD.BIN is.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Unknown&lt;br /&gt;
 | Tiles = Unknown&lt;br /&gt;
 | Sprites = Unknown&lt;br /&gt;
 | Fullscreen = Unknown&lt;br /&gt;
 | Sound = Unknown&lt;br /&gt;
 | Music = Unknown&lt;br /&gt;
 | Text = Edit&lt;br /&gt;
 | Story = Unknown&lt;br /&gt;
 | Interface = Unknown&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
MoraffWare&#039;s &#039;&#039;Dungeons of the Unforgiven&#039;&#039; is a first-person dungeon crawler for MS-DOS, released as shareware in 1993 by MoraffWare. This is the third game in MoraffWare&#039;s series of role-playing games and is the direct successor to [[Moraff&#039;s World]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Dungeons of the Unforgiven&#039;&#039; is notable for its wide range of display options. It is capable of displaying graphics on everything from CGA/Hercules to SuperVGA, supporting everything from 320x200 with 4 colors to 1024x768 with 256 colors.&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = 2?&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Player Character|Player Character]]&lt;br /&gt;
 | KnownFormat = Partial&lt;br /&gt;
 | Desc = A saved player character. Up to 10 characters can be saved (with filenames ranging from 20 through 29, corresponding to the slot that the character is stored in).&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?0?.DUN&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Dungeon|Dungeon]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A map of each dungeon module. The first character of the filename is the player identifier (D is slot 0, M is slot 9) and the third character is the zero-indexed number of the module.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?MON.MAP&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Monster Map|Monster Map]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = A dump of the currently generated monsters in the dungeon. Each player character has a monster map, with filenames ranging from DMON.MAP through MMON.MAP.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = MD.BIN&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Monster Information|Monster Information]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = This file contains the monster information directory that players can access by hitting the &#039;S&#039; key during play.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = UNFDUNG.BIN&lt;br /&gt;
 | Format = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = UH.BIN&amp;lt;br/&amp;gt;UH2.BIN&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven In-Game Text|In-Game Text]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = These two plaintext files contain most of the in-game messages, aside from the UI messages. While some strings are compiled into the executable, the vast majority are included here.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = UROLL.TXT&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Character Creation Text|Character Creation Text]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = This file contains text blocks used during the character creation process. Each screen element reads a fixed number of lines from the text file.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.FNT&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Font|Font]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A few fonts that are used by the game. These are most likely vector fonts.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.PIC&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Picture Format|Picture]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A set of files containing the game&#039;s sprites, textures, and full-screen images. Due to the game&#039;s wide ranging display support, it&#039;s likely that the images are vectorized.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.UHP&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Help File|Help File]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Stores the colored text that&#039;s displayed in the in-game help screens.&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
* All bundled executables are compressed with [[PKLite compression]]. Despite UNFORGIV.EXE being used to launch the game, all of the game logic is stored in UNF.EXE.&lt;br /&gt;
&lt;br /&gt;
[[Category:MoraffWare]]&lt;br /&gt;
[[Category:Dungeons of the Unforgiven]]&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven&amp;diff=7061</id>
		<title>Dungeons of the Unforgiven</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven&amp;diff=7061"/>
		<updated>2017-03-14T14:03:48Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Took another look and UH.BIN and UH2.BIN are just plain text. Welp.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Unknown&lt;br /&gt;
 | Tiles = Unknown&lt;br /&gt;
 | Sprites = Unknown&lt;br /&gt;
 | Fullscreen = Unknown&lt;br /&gt;
 | Sound = Unknown&lt;br /&gt;
 | Music = Unknown&lt;br /&gt;
 | Text = Edit&lt;br /&gt;
 | Story = Unknown&lt;br /&gt;
 | Interface = Unknown&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
MoraffWare&#039;s &#039;&#039;Dungeons of the Unforgiven&#039;&#039; is a first-person dungeon crawler for MS-DOS, released as shareware in 1993 by MoraffWare. This is the third game in MoraffWare&#039;s series of role-playing games and is the direct successor to [[Moraff&#039;s World]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Dungeons of the Unforgiven&#039;&#039; is notable for its wide range of display options. It is capable of displaying graphics on everything from CGA/Hercules to SuperVGA, supporting everything from 320x200 with 4 colors to 1024x768 with 256 colors.&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = 2?&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Player Character|Player Character]]&lt;br /&gt;
 | KnownFormat = Partial&lt;br /&gt;
 | Desc = A saved player character. Up to 10 characters can be saved (with filenames ranging from 20 through 29, corresponding to the slot that the character is stored in).&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?0?.DUN&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Dungeon|Dungeon]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A map of each dungeon module. The first character of the filename is the player identifier (D is slot 0, M is slot 9) and the third character is the zero-indexed number of the module.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?MON.MAP&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Monster Map|Monster Map]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = A dump of the currently generated monsters in the dungeon. Each player character has a monster map, with filenames ranging from DMON.MAP through MMON.MAP.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = MD.BIN&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Formatted Text|Formatted Text]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A binary file containing formatted text strings that are used in-game. This format differs from the [[Dungeons of the Unforgiven Help File|UHP]] format. Please note that UNFDUNG.BIN is not written in this format.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = UNFDUNG.BIN&lt;br /&gt;
 | Format = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = UH.BIN&amp;lt;br/&amp;gt;UH2.BIN&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven In-Game Text|In-Game Text]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = These two plaintext files contain most of the in-game messages, aside from the UI messages. While some strings are compiled into the executable, the vast majority are included here.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = UROLL.TXT&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Character Creation Text|Character Creation Text]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = This file contains text blocks used during the character creation process. Each screen element reads a fixed number of lines from the text file.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.FNT&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Font|Font]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A few fonts that are used by the game. These are most likely vector fonts.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.PIC&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Picture Format|Picture]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A set of files containing the game&#039;s sprites, textures, and full-screen images. Due to the game&#039;s wide ranging display support, it&#039;s likely that the images are vectorized.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.UHP&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Help File|Help File]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Stores the colored text that&#039;s displayed in the in-game help screens.&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
* All bundled executables are compressed with [[PKLite compression]]. Despite UNFORGIV.EXE being used to launch the game, all of the game logic is stored in UNF.EXE.&lt;br /&gt;
&lt;br /&gt;
[[Category:MoraffWare]]&lt;br /&gt;
[[Category:Dungeons of the Unforgiven]]&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Help_File&amp;diff=7060</id>
		<title>Dungeons of the Unforgiven Help File</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Help_File&amp;diff=7060"/>
		<updated>2017-03-14T13:49:52Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Initial page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Text Infobox&lt;br /&gt;
 | Type = Help&lt;br /&gt;
 | Lines = CRLF&lt;br /&gt;
 | Charset = ASCII&lt;br /&gt;
 | Games = {{Game|Dungeons of the Unforgiven}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The format used by the *.UHP files in &#039;&#039;[[Dungeons of the Unforgiven]]&#039;&#039; is a simple text-based format with designated characters to change the color of the text. The color or control tag can be specified anywhere in the line. All of the color or control tags are in lowercase, while all displayed text is printed in uppercase. Numeric values and punctuation are also acceptable printed characters. Any unrecognized tag character will be printed normally.&lt;br /&gt;
&lt;br /&gt;
If the line of text is too wide to be displayed, the game will horizontally stretch the font to make it fit. The maximum number of lines that can be displayed appears to be 30. {{TODO|Tested with 1024x768. Verify with other screen resolutions.}}&lt;br /&gt;
&lt;br /&gt;
== Color Characters ==&lt;br /&gt;
&lt;br /&gt;
The following characters select the output color of the text. If one of these are specified, all of the text following this tag will be printed in the specified color.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Character !! Resulting Color&lt;br /&gt;
|-&lt;br /&gt;
| b || Cyan (&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#51CDFF;background-color:black&amp;quot;&amp;gt;#51CDFF&amp;lt;/span&amp;gt;&#039;&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| g || Green (&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#00FF00;background-color:black&amp;quot;&amp;gt;#00FF00&amp;lt;/span&amp;gt;&#039;&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| n || Gold (&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FFB600;background-color:black&amp;quot;&amp;gt;#FFB600&amp;lt;/span&amp;gt;&#039;&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| o || Orange (&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#D75100;background-color:black&amp;quot;&amp;gt;#D75100&amp;lt;/span&amp;gt;&#039;&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| r || Red (&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0028;background-color:black&amp;quot;&amp;gt;#FF0028&amp;lt;/span&amp;gt;&#039;&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| w || White (&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FFFFFF;background-color:black&amp;quot;&amp;gt;#FFFFFF&amp;lt;/span&amp;gt;&#039;&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| y || Yellow (&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FFFF51;background-color:black&amp;quot;&amp;gt;#FFFF51&amp;lt;/span&amp;gt;&#039;&#039;&#039;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Multiple color changes can be specified in a single line, but only the last one will take effect. Inline color changes are not possible.&lt;br /&gt;
&lt;br /&gt;
== Control Sequences ==&lt;br /&gt;
&lt;br /&gt;
The following character sequences provide a way of controlling the flow of text in the dialog box.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Character !! Resulting Effect&lt;br /&gt;
|-&lt;br /&gt;
| eX || Pauses and waits for a key. When a key is pressed, the text pane is cleared and the next rows of text are displayed.&lt;br /&gt;
|-&lt;br /&gt;
| ee || Pauses and waits for a key. When a key is pressed, the player is brought back to the help menu. This &#039;&#039;&#039;must&#039;&#039;&#039; be included, otherwise the game will freeze after the help text is displayed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Both of these sequences can appear in the middle of a line. If &#039;&#039;ee&#039;&#039; is encountered, the line that it appears on is not displayed. If &#039;&#039;eX&#039;&#039; is encountered, the line that it appears on will not be displayed at all on the first page, but the characters following the sequences will be displayed on the second page, skipping the one immediately following the sequence. For example, if the string &amp;quot;HELLO WOeXRLD!&amp;quot; is in the file, the first page will be blank and the second will contain &amp;quot;LD!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Filenames ==&lt;br /&gt;
&lt;br /&gt;
The *.UHP files are named using numbers, starting from 0 and ending with 29 (skipping 18 and 19, giving a total of 30 help files. The following table shows which files are mapped to each help menu option:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Shortcut Key !! Option Heading !! Help File&lt;br /&gt;
|-&lt;br /&gt;
| A || A-CHANGE (A)RMOR || 4.UHP&lt;br /&gt;
|-&lt;br /&gt;
| C || C-(C)AST SPELL OR SPELL HELP || 13.UHP&lt;br /&gt;
|-&lt;br /&gt;
| D || D-GO (D)OWN LADDER || 9.UHP&lt;br /&gt;
|-&lt;br /&gt;
| E || E-SHOW (E)XPERIENCE NEEDED || 12.UHP&lt;br /&gt;
|-&lt;br /&gt;
| F || F-(F)IGHT MONSTER || 2.UHP&lt;br /&gt;
|-&lt;br /&gt;
| G || G-(G)RAPHICS CONTROL || 0.UHP&lt;br /&gt;
|-&lt;br /&gt;
| I || I-USE MAGIC (I)TEM || 6.UHP&lt;br /&gt;
|-&lt;br /&gt;
| L || L-(L)OSE OR DROP THINGS || 8.UHP&lt;br /&gt;
|-&lt;br /&gt;
| M || M-(M)ONEY (FINANCIAL) STATEMENT || 5.UHP&lt;br /&gt;
|-&lt;br /&gt;
| O || O-(O)PTIONS MENU || 16.UHP&lt;br /&gt;
|-&lt;br /&gt;
| P || P-CHECK (P)OCKETS (INVENTORY) || 14.UHP&lt;br /&gt;
|-&lt;br /&gt;
| Q || Q-(Q)UIT AND SAVE CHARACTER || 1.UHP&lt;br /&gt;
|-&lt;br /&gt;
| S || S-(S)ECTION MONSTER INFORMATION || 11.UHP&lt;br /&gt;
|-&lt;br /&gt;
| U || U-CLIMB (U)P LADDER || 10.UHP&lt;br /&gt;
|-&lt;br /&gt;
| V || V-VIEW YOUR (V)ITAL STATS || 7.UHP&lt;br /&gt;
|-&lt;br /&gt;
| W || W-SELECT (W)EAPON FOR ATTACKING || 3.UHP&lt;br /&gt;
|-&lt;br /&gt;
| X || X-E(X)PAND THE MAP || 17.UHP&lt;br /&gt;
|-&lt;br /&gt;
| Z || Z-(Z)OOM IN ON FORWARD VIEW || 15.UHP&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0-OBJECTIVE, (MEANING OF LIFE) || 20.UHP&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1-MOVING AROUND THE DUNGEON || 21.UHP&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 2-GENERAL PLAY OF GAME || 22.UHP&lt;br /&gt;
|-&lt;br /&gt;
| 3 || 3-VISITOR&#039;S GUIDE TO THE TOWN || 23.UHP&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 4-SPELLS, SCROLLS, WANDS, PAPER || 24.UHP&lt;br /&gt;
|-&lt;br /&gt;
| 5 || 5-HOW TO USE MAGIC ITEMS || 25.UHP&lt;br /&gt;
|-&lt;br /&gt;
| 6 || 6-GENERAL HINTS FOR SUCCESS || 26.UHP&lt;br /&gt;
|-&lt;br /&gt;
| 7 || 7-MORAFF&#039;S SPECIAL SECRET HINTS || 27.UHP&lt;br /&gt;
|-&lt;br /&gt;
| 8 || 8-TOP SECRET HINTS NO ONE KNOWS || 28.UHP&lt;br /&gt;
|-&lt;br /&gt;
| 9 || 9-HISTORY OF THIS UNIVERSE || 29.UHP&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* The options in the help menu cannot be changed without modifying the strings in UNF.EXE.&lt;br /&gt;
* While 18.UHP is included with the game, it is not used. It&#039;s a duplicate of 16.UHP, sans the &amp;quot;HIT A KEY&amp;quot; prompt and [[#Control_Sequences|eX control character]].&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Formatted_Text&amp;diff=7059</id>
		<title>Dungeons of the Unforgiven Formatted Text</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Formatted_Text&amp;diff=7059"/>
		<updated>2017-03-14T13:49:40Z</updated>

		<summary type="html">&lt;p&gt;Spectere: I put the UNP file data on the wrong page. Crap.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Dungeons of the Unforgiven]]&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven&amp;diff=7058</id>
		<title>Dungeons of the Unforgiven</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven&amp;diff=7058"/>
		<updated>2017-03-14T13:48:17Z</updated>

		<summary type="html">&lt;p&gt;Spectere: UHP files are now documented.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Unknown&lt;br /&gt;
 | Tiles = Unknown&lt;br /&gt;
 | Sprites = Unknown&lt;br /&gt;
 | Fullscreen = Unknown&lt;br /&gt;
 | Sound = Unknown&lt;br /&gt;
 | Music = Unknown&lt;br /&gt;
 | Text = Edit&lt;br /&gt;
 | Story = Unknown&lt;br /&gt;
 | Interface = Unknown&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
MoraffWare&#039;s &#039;&#039;Dungeons of the Unforgiven&#039;&#039; is a first-person dungeon crawler for MS-DOS, released as shareware in 1993 by MoraffWare. This is the third game in MoraffWare&#039;s series of role-playing games and is the direct successor to [[Moraff&#039;s World]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Dungeons of the Unforgiven&#039;&#039; is notable for its wide range of display options. It is capable of displaying graphics on everything from CGA/Hercules to SuperVGA, supporting everything from 320x200 with 4 colors to 1024x768 with 256 colors.&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = 2?&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Player Character|Player Character]]&lt;br /&gt;
 | KnownFormat = Partial&lt;br /&gt;
 | Desc = A saved player character. Up to 10 characters can be saved (with filenames ranging from 20 through 29, corresponding to the slot that the character is stored in).&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?0?.DUN&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Dungeon|Dungeon]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A map of each dungeon module. The first character of the filename is the player identifier (D is slot 0, M is slot 9) and the third character is the zero-indexed number of the module.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?MON.MAP&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Monster Map|Monster Map]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = A dump of the currently generated monsters in the dungeon. Each player character has a monster map, with filenames ranging from DMON.MAP through MMON.MAP.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = MD.BIN&amp;lt;br/&amp;gt;UH.BIN&amp;lt;br/&amp;gt;UH2.BIN&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Formatted Text|Formatted Text]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A binary file containing formatted text strings that are used in-game. This format differs from the [[Dungeons of the Unforgiven Help File|UHP]] format. Please note that UNFDUNG.BIN is not written in this format.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = UNFDUNG.BIN&lt;br /&gt;
 | Format = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = UROLL.TXT&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Character Creation Text|Character Creation Text]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = This file contains text blocks used during the character creation process. Each screen element reads a fixed number of lines from the text file.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.FNT&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Font|Font]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A few fonts that are used by the game. These are most likely vector fonts.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.PIC&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Picture Format|Picture]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A set of files containing the game&#039;s sprites, textures, and full-screen images. Due to the game&#039;s wide ranging display support, it&#039;s likely that the images are vectorized.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.UHP&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Help File|Help File]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Stores the colored text that&#039;s displayed in the in-game help screens.&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
* All bundled executables are compressed with [[PKLite compression]]. Despite UNFORGIV.EXE being used to launch the game, all of the game logic is stored in UNF.EXE.&lt;br /&gt;
&lt;br /&gt;
[[Category:MoraffWare]]&lt;br /&gt;
[[Category:Dungeons of the Unforgiven]]&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Formatted_Text&amp;diff=7057</id>
		<title>Dungeons of the Unforgiven Formatted Text</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Formatted_Text&amp;diff=7057"/>
		<updated>2017-03-14T13:47:13Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Initial page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Text Infobox&lt;br /&gt;
 | Type = Help&lt;br /&gt;
 | Lines = CRLF&lt;br /&gt;
 | Charset = ASCII&lt;br /&gt;
 | Games = {{Game|Dungeons of the Unforgiven}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The format used by the *.UHP files in &#039;&#039;[[Dungeons of the Unforgiven]]&#039;&#039; is a simple text-based format with designated characters to change the color of the text. The color or control tag can be specified anywhere in the line. All of the color or control tags are in lowercase, while all displayed text is printed in uppercase. Numeric values and punctuation are also acceptable printed characters. Any unrecognized tag character will be printed normally.&lt;br /&gt;
&lt;br /&gt;
If the line of text is too wide to be displayed, the game will horizontally stretch the font to make it fit. The maximum number of lines that can be displayed appears to be 30. {{TODO|Tested with 1024x768. Verify with other screen resolutions.}}&lt;br /&gt;
&lt;br /&gt;
== Color Characters ==&lt;br /&gt;
&lt;br /&gt;
The following characters select the output color of the text. If one of these are specified, all of the text following this tag will be printed in the specified color.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Character !! Resulting Color&lt;br /&gt;
|-&lt;br /&gt;
| b || Cyan (&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#51CDFF;background-color:black&amp;quot;&amp;gt;#51CDFF&amp;lt;/span&amp;gt;&#039;&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| g || Green (&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#00FF00;background-color:black&amp;quot;&amp;gt;#00FF00&amp;lt;/span&amp;gt;&#039;&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| n || Gold (&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FFB600;background-color:black&amp;quot;&amp;gt;#FFB600&amp;lt;/span&amp;gt;&#039;&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| o || Orange (&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#D75100;background-color:black&amp;quot;&amp;gt;#D75100&amp;lt;/span&amp;gt;&#039;&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| r || Red (&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0028;background-color:black&amp;quot;&amp;gt;#FF0028&amp;lt;/span&amp;gt;&#039;&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| w || White (&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FFFFFF;background-color:black&amp;quot;&amp;gt;#FFFFFF&amp;lt;/span&amp;gt;&#039;&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| y || Yellow (&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FFFF51;background-color:black&amp;quot;&amp;gt;#FFFF51&amp;lt;/span&amp;gt;&#039;&#039;&#039;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Multiple color changes can be specified in a single line, but only the last one will take effect. Inline color changes are not possible.&lt;br /&gt;
&lt;br /&gt;
== Control Sequences ==&lt;br /&gt;
&lt;br /&gt;
The following character sequences provide a way of controlling the flow of text in the dialog box.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Character !! Resulting Effect&lt;br /&gt;
|-&lt;br /&gt;
| eX || Pauses and waits for a key. When a key is pressed, the text pane is cleared and the next rows of text are displayed.&lt;br /&gt;
|-&lt;br /&gt;
| ee || Pauses and waits for a key. When a key is pressed, the player is brought back to the help menu. This &#039;&#039;&#039;must&#039;&#039;&#039; be included, otherwise the game will freeze after the help text is displayed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Both of these sequences can appear in the middle of a line. If &#039;&#039;ee&#039;&#039; is encountered, the line that it appears on is not displayed. If &#039;&#039;eX&#039;&#039; is encountered, the line that it appears on will not be displayed at all on the first page, but the characters following the sequences will be displayed on the second page, skipping the one immediately following the sequence. For example, if the string &amp;quot;HELLO WOeXRLD!&amp;quot; is in the file, the first page will be blank and the second will contain &amp;quot;LD!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Filenames ==&lt;br /&gt;
&lt;br /&gt;
The *.UHP files are named using numbers, starting from 0 and ending with 29 (skipping 18 and 19, giving a total of 30 help files. The following table shows which files are mapped to each help menu option:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Shortcut Key !! Option Heading !! Help File&lt;br /&gt;
|-&lt;br /&gt;
| A || A-CHANGE (A)RMOR || 4.UHP&lt;br /&gt;
|-&lt;br /&gt;
| C || C-(C)AST SPELL OR SPELL HELP || 13.UHP&lt;br /&gt;
|-&lt;br /&gt;
| D || D-GO (D)OWN LADDER || 9.UHP&lt;br /&gt;
|-&lt;br /&gt;
| E || E-SHOW (E)XPERIENCE NEEDED || 12.UHP&lt;br /&gt;
|-&lt;br /&gt;
| F || F-(F)IGHT MONSTER || 2.UHP&lt;br /&gt;
|-&lt;br /&gt;
| G || G-(G)RAPHICS CONTROL || 0.UHP&lt;br /&gt;
|-&lt;br /&gt;
| I || I-USE MAGIC (I)TEM || 6.UHP&lt;br /&gt;
|-&lt;br /&gt;
| L || L-(L)OSE OR DROP THINGS || 8.UHP&lt;br /&gt;
|-&lt;br /&gt;
| M || M-(M)ONEY (FINANCIAL) STATEMENT || 5.UHP&lt;br /&gt;
|-&lt;br /&gt;
| O || O-(O)PTIONS MENU || 16.UHP&lt;br /&gt;
|-&lt;br /&gt;
| P || P-CHECK (P)OCKETS (INVENTORY) || 14.UHP&lt;br /&gt;
|-&lt;br /&gt;
| Q || Q-(Q)UIT AND SAVE CHARACTER || 1.UHP&lt;br /&gt;
|-&lt;br /&gt;
| S || S-(S)ECTION MONSTER INFORMATION || 11.UHP&lt;br /&gt;
|-&lt;br /&gt;
| U || U-CLIMB (U)P LADDER || 10.UHP&lt;br /&gt;
|-&lt;br /&gt;
| V || V-VIEW YOUR (V)ITAL STATS || 7.UHP&lt;br /&gt;
|-&lt;br /&gt;
| W || W-SELECT (W)EAPON FOR ATTACKING || 3.UHP&lt;br /&gt;
|-&lt;br /&gt;
| X || X-E(X)PAND THE MAP || 17.UHP&lt;br /&gt;
|-&lt;br /&gt;
| Z || Z-(Z)OOM IN ON FORWARD VIEW || 15.UHP&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0-OBJECTIVE, (MEANING OF LIFE) || 20.UHP&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1-MOVING AROUND THE DUNGEON || 21.UHP&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 2-GENERAL PLAY OF GAME || 22.UHP&lt;br /&gt;
|-&lt;br /&gt;
| 3 || 3-VISITOR&#039;S GUIDE TO THE TOWN || 23.UHP&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 4-SPELLS, SCROLLS, WANDS, PAPER || 24.UHP&lt;br /&gt;
|-&lt;br /&gt;
| 5 || 5-HOW TO USE MAGIC ITEMS || 25.UHP&lt;br /&gt;
|-&lt;br /&gt;
| 6 || 6-GENERAL HINTS FOR SUCCESS || 26.UHP&lt;br /&gt;
|-&lt;br /&gt;
| 7 || 7-MORAFF&#039;S SPECIAL SECRET HINTS || 27.UHP&lt;br /&gt;
|-&lt;br /&gt;
| 8 || 8-TOP SECRET HINTS NO ONE KNOWS || 28.UHP&lt;br /&gt;
|-&lt;br /&gt;
| 9 || 9-HISTORY OF THIS UNIVERSE || 29.UHP&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* The options in the help menu cannot be changed without modifying the strings in UNF.EXE.&lt;br /&gt;
* While 18.UHP is included with the game, it is not used. It&#039;s a duplicate of 16.UHP, sans the &amp;quot;HIT A KEY&amp;quot; prompt and [[#Control_Sequences|eX control character]].&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Player_Character&amp;diff=7056</id>
		<title>Dungeons of the Unforgiven Player Character</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Player_Character&amp;diff=7056"/>
		<updated>2017-03-13T21:34:53Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Did some minor reorganization.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Playerdata Infobox&lt;br /&gt;
 | Savegame = Yes&lt;br /&gt;
 | Where = ?&lt;br /&gt;
 | Elements = Player character data&lt;br /&gt;
 | Games =&lt;br /&gt;
   {{Game|Dungeons of the Unforgiven}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The saved game format for &#039;&#039;[[Dungeons of the Unforgiven]]&#039;&#039; appears to be a simple dump of the game&#039;s internal structures, with a couple of checksum bytes added on, presumably to slow cheaters down a bit. Some of the chunks of data are in a very peculiar order (such as some of the items being in radically different spots of the file), which makes it somewhat annoying to try to directly load into a C struct or similar data structure.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re parsing this format, be very mindful of the data types. Signed and unsigned data types, as well as differing field sizes, are used even with related fields. For example, Rings of Protection are stored in an unsigned byte while Potions of Healing are stored in a signed byte.&lt;br /&gt;
&lt;br /&gt;
== File Layout ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[char]][19] || playerName || The name of the player character (including a null terminator).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][22] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || playerRace || The race of the player character.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || playerGender || The player character&#039;s gender (0x00 == male; 0x01 == female)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || playerClass || The player character&#039;s class.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][6] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerCurrentHP || The player character&#039;s current hit points.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerMaxHP || The player character&#039;s maximum hit points.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || playerCurrentSP || The player character&#039;s current spell points.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || playerMaxSP || The player character&#039;s maximum spell points.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][2] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nakedWeight || The player&#039;s base weight.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || loadedWeight || The player&#039;s loaded weight (note: this always gets updated by the game).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][62] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponFists || Player character has their fists (normally these cannot be dropped).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponStick || Player character has the stick.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponClub || Player character has the club.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponMace || Player character has the mace.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponKnife || Player character has the knife.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponShortSword || Player character has the short sword.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponLongSword || Player character has the long sword.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponGreatSword || Player character has the great sword.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][18] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || equippedWeapon || The weapon that the player character currently has equipped. See the [[#Weapon_IDs|Weapon IDs]] section for valid values.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][20] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorSkin || Player character has their skin (normally this cannot be dropped).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorLeather || Player character has leather armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorChain || Player character has chain armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorScale || Player character has scale armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorBreastPlate || Player character has the breast plate.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorFieldPlate || Player character has field plate.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorTitanium || Player character has the titanium armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorSlot8 || This &amp;quot;armor&amp;quot; is not implemented in the game and points to garbage data. See the notes below for a little bit more information. {{TODO|Figure out exactly what in the executable this is pointing to, as it is technically fully usable.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || equippedArmor || The armor that the player character currently has equipped. See the [[#Armor_IDs|Armor IDs]] section for valid values.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][156] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || orangePotions || The number of orange potions in the player&#039;s inventory (+6 Strength / -3 Luck)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || greenPotions || The number of green potions in the player&#039;s inventory (+6 Intelligence / -3 Agility)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || bluePotions || The number of blue potions in the player&#039;s inventory (+6 Wisdom / -3 Constitution)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || redPotions || The number of red potions in the player&#039;s inventory (+6 Constitution / -3 Wisdom)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || whitePotions || The number of white potions in the player&#039;s inventory (+6 Agility / -3 Intelligence)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || yellowPotions || The number of yellow potions in the player&#039;s inventory (+6 Luck / -3 Strength)&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][20] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells|SPELL_LIST]] || spellbook || The spells that the player has learned and can cast at any time at the cost of spell power.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells|SPELL_LIST]] || scrolls || The spells that the player can cast from a scroll.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells|SPELL_LIST]] || wands || The spell wands that the player possesses.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells|SPELL_LIST]] || papers || The spell papers that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][13] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || rublesInPocket || The number of rubles that the player has on hand.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || rublesInBank || The number of rubles that the player has in the bank.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][8] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || cultureStock || The amount of culture stock that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || childrenHelped || The number of children that the player helped (at the temple).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || magicCrystals || The number of magic crystals that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || americanDollars || The number of American Dollars that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][816] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Double]] || experiencePoints || The number of experience points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerLevel || The player character&#039;s current level.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerDirection || The direction that the player character is facing (0x00 == north; 0x01 == south; 0x02 == west; 0x03 == east).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerPositionX || The X coordinate of the player in the current dungeon floor.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerPositionY || The Y coordinate of the player in the current dungeon floor.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerFloor || The floor of the dungeon that the player is currently on (0 is the town).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerModule || The module that the player is currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][18] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ringsOfRegeneration || The number of rings of regeneration that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || nuclearHandGrenade || The number of nuclear hand grenades that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || stonesOfSeeing || The number of stones of seeing that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || diseaseTimer || The number of turns until poison damages constitution (0 or -1 disables the timer).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || poisonTimer || The number of turns until poison damages strength (0 or -1 disables the timer).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][2] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || bodyArmor || The number of body armor items that the player has (not related to the gear, listed above).&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ringOfProtection || The number of rings of protection that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || antiMagicRing || The number of anti-magic rings that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][3] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || playerAge || The current age of the player character.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][36] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || floorSloshers || The number of floor sloshers that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || potionsOfHealing || The number of potions of healing that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || stonesOfTeleportation || The number of stones of teleportation that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerStrength || The number of strength points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerIntelligence || The number of intelligence points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerWisdom || The number of wisdom points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerConstitution || The number of constitution points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerAgility || The number of agility points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerLuck || The number of luck points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][49] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || gauntlets || The number of gauntlets that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][162] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || difficulty || The difficulty level that the player is playing on. (0x00 == normal; 0x01 == &amp;quot;I can handle anything!&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT32LE]] || gameTimer || This appears to be some sort of hidden in-game timer. {{TODO|Figure out when this is incremented and whether or not it actually does anything.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][274] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]][2] || checksum || The checksum of the saved game file. See [[#Checksum|below]] for more information.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spells ===&lt;br /&gt;
&lt;br /&gt;
Spells are stored in the save file per the following table. In all cases, the spells are stored in order from left-to-right, top-to-bottom, with respect to the in-game spell browser. Each spell category has 15 unused bytes at the end.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPermanent || The permanent spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPreparation || The preparation spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsWizard || The wizard battle spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPriest || The priest battle spells that the player has access to.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* {{TODO|Do a bit more bounds checking on some of the fields to work out whether they&#039;re signed or unsigned.}}&lt;br /&gt;
* The eighth armor slot always appears in the armor list of the game as a blank slot, but only seven armor types appear within the game world. If the set of armor is hacked into the game with a hex editor or memory editor, it appears as jumbled text and provides a currently-unknown amount of protection.&lt;br /&gt;
&lt;br /&gt;
=== Weapon IDs ===&lt;br /&gt;
&lt;br /&gt;
The following weapon IDs can be used in the &#039;&#039;&#039;equippedWeapon&#039;&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Weapon Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Fists&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Stick&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Club&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Mace&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Knife&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Short Sword&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Long Sword&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || Great Sword&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Note: the player does not have to own the specified weapon type in order to have it equipped. The equipment check is only performed when the player switches their weapon in-game.&lt;br /&gt;
&lt;br /&gt;
=== Armor IDs ===&lt;br /&gt;
&lt;br /&gt;
The following weapon IDs can be used in the &#039;&#039;&#039;equippedArmor&#039;&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Armor Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Skin&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Leather&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Chain&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Scale&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Breast Plate&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Field Plate&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Titanium&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || Glitchy Armor&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Note: the player does not have to own the specified armor type in order to have it equipped. The equipment check is only performed when the player switches their armor in-game.&lt;br /&gt;
&lt;br /&gt;
=== Checksum ===&lt;br /&gt;
&lt;br /&gt;
The checksum is calculated as follows (example in C# and assuming saveBytes is the saved game data, sans checksum):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
checksum[0] = checksum[1] = 0;&lt;br /&gt;
foreach(var b in saveBytes) {&lt;br /&gt;
    checksum[0] += b;&lt;br /&gt;
    checksum[1] += checksum[0] - checksum[0] * checksum[0];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the checksum is incorrect for the saved game file, the player will be immediately booted back to the DOS prompt with a &amp;quot;corrupted character&amp;quot; error.&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered and documented by [[User:Spectere|Spectere]]. If you find this information helpful in a project you&#039;re working on, please give credit where credit is due. (A link back to this wiki would be nice too!)&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Player_Character&amp;diff=7055</id>
		<title>Dungeons of the Unforgiven Player Character</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Player_Character&amp;diff=7055"/>
		<updated>2017-03-13T21:33:59Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Added a little intro paragraph, as well as weapon/armor ID sections.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Playerdata Infobox&lt;br /&gt;
 | Savegame = Yes&lt;br /&gt;
 | Where = ?&lt;br /&gt;
 | Elements = Player character data&lt;br /&gt;
 | Games =&lt;br /&gt;
   {{Game|Dungeons of the Unforgiven}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The saved game format for &#039;&#039;[[Dungeons of the Unforgiven]]&#039;&#039; appears to be a simple dump of the game&#039;s internal structures, with a couple of checksum bytes added on, presumably to slow cheaters down a bit. Some of the chunks of data are in a very peculiar order (such as some of the items being in radically different spots of the file), which makes it somewhat annoying to try to directly load into a C struct or similar data structure.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re parsing this format, be very mindful of the data types. Signed and unsigned data types, as well as differing field sizes, are used even with related fields. For example, Rings of Protection are stored in an unsigned byte while Potions of Healing are stored in a signed byte.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[char]][19] || playerName || The name of the player character (including a null terminator).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][22] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || playerRace || The race of the player character.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || playerGender || The player character&#039;s gender (0x00 == male; 0x01 == female)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || playerClass || The player character&#039;s class.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][6] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerCurrentHP || The player character&#039;s current hit points.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerMaxHP || The player character&#039;s maximum hit points.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || playerCurrentSP || The player character&#039;s current spell points.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || playerMaxSP || The player character&#039;s maximum spell points.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][2] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nakedWeight || The player&#039;s base weight.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || loadedWeight || The player&#039;s loaded weight (note: this always gets updated by the game).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][62] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponFists || Player character has their fists (normally these cannot be dropped).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponStick || Player character has the stick.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponClub || Player character has the club.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponMace || Player character has the mace.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponKnife || Player character has the knife.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponShortSword || Player character has the short sword.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponLongSword || Player character has the long sword.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponGreatSword || Player character has the great sword.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][18] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || equippedWeapon || The weapon that the player character currently has equipped. See the [[#Weapon_IDs|Weapon IDs]] section for valid values.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][20] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorSkin || Player character has their skin (normally this cannot be dropped).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorLeather || Player character has leather armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorChain || Player character has chain armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorScale || Player character has scale armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorBreastPlate || Player character has the breast plate.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorFieldPlate || Player character has field plate.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorTitanium || Player character has the titanium armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorSlot8 || This &amp;quot;armor&amp;quot; is not implemented in the game and points to garbage data. See the notes below for a little bit more information. {{TODO|Figure out exactly what in the executable this is pointing to, as it is technically fully usable.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || equippedArmor || The armor that the player character currently has equipped. See the [[#Armor_IDs|Armor IDs]] section for valid values.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][156] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || orangePotions || The number of orange potions in the player&#039;s inventory (+6 Strength / -3 Luck)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || greenPotions || The number of green potions in the player&#039;s inventory (+6 Intelligence / -3 Agility)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || bluePotions || The number of blue potions in the player&#039;s inventory (+6 Wisdom / -3 Constitution)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || redPotions || The number of red potions in the player&#039;s inventory (+6 Constitution / -3 Wisdom)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || whitePotions || The number of white potions in the player&#039;s inventory (+6 Agility / -3 Intelligence)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || yellowPotions || The number of yellow potions in the player&#039;s inventory (+6 Luck / -3 Strength)&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][20] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells|SPELL_LIST]] || spellbook || The spells that the player has learned and can cast at any time at the cost of spell power.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells|SPELL_LIST]] || scrolls || The spells that the player can cast from a scroll.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells|SPELL_LIST]] || wands || The spell wands that the player possesses.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells|SPELL_LIST]] || papers || The spell papers that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][13] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || rublesInPocket || The number of rubles that the player has on hand.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || rublesInBank || The number of rubles that the player has in the bank.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][8] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || cultureStock || The amount of culture stock that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || childrenHelped || The number of children that the player helped (at the temple).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || magicCrystals || The number of magic crystals that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || americanDollars || The number of American Dollars that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][816] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Double]] || experiencePoints || The number of experience points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerLevel || The player character&#039;s current level.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerDirection || The direction that the player character is facing (0x00 == north; 0x01 == south; 0x02 == west; 0x03 == east).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerPositionX || The X coordinate of the player in the current dungeon floor.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerPositionY || The Y coordinate of the player in the current dungeon floor.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerFloor || The floor of the dungeon that the player is currently on (0 is the town).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerModule || The module that the player is currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][18] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ringsOfRegeneration || The number of rings of regeneration that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || nuclearHandGrenade || The number of nuclear hand grenades that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || stonesOfSeeing || The number of stones of seeing that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || diseaseTimer || The number of turns until poison damages constitution (0 or -1 disables the timer).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || poisonTimer || The number of turns until poison damages strength (0 or -1 disables the timer).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][2] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || bodyArmor || The number of body armor items that the player has (not related to the gear, listed above).&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ringOfProtection || The number of rings of protection that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || antiMagicRing || The number of anti-magic rings that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][3] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || playerAge || The current age of the player character.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][36] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || floorSloshers || The number of floor sloshers that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || potionsOfHealing || The number of potions of healing that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || stonesOfTeleportation || The number of stones of teleportation that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerStrength || The number of strength points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerIntelligence || The number of intelligence points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerWisdom || The number of wisdom points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerConstitution || The number of constitution points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerAgility || The number of agility points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerLuck || The number of luck points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][49] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || gauntlets || The number of gauntlets that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][162] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || difficulty || The difficulty level that the player is playing on. (0x00 == normal; 0x01 == &amp;quot;I can handle anything!&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT32LE]] || gameTimer || This appears to be some sort of hidden in-game timer. {{TODO|Figure out when this is incremented and whether or not it actually does anything.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][274] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]][2] || checksum || The checksum of the saved game file. See [[#Checksum|below]] for more information.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Spells ==&lt;br /&gt;
&lt;br /&gt;
Spells are stored in the save file per the following table. In all cases, the spells are stored in order from left-to-right, top-to-bottom, with respect to the in-game spell browser. Each spell category has 15 unused bytes at the end.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPermanent || The permanent spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPreparation || The preparation spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsWizard || The wizard battle spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPriest || The priest battle spells that the player has access to.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* {{TODO|Do a bit more bounds checking on some of the fields to work out whether they&#039;re signed or unsigned.}}&lt;br /&gt;
* The eighth armor slot always appears in the armor list of the game as a blank slot, but only seven armor types appear within the game world. If the set of armor is hacked into the game with a hex editor or memory editor, it appears as jumbled text and provides a currently-unknown amount of protection.&lt;br /&gt;
&lt;br /&gt;
== Weapon IDs ==&lt;br /&gt;
&lt;br /&gt;
The following weapon IDs can be used in the &#039;&#039;&#039;equippedWeapon&#039;&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Weapon Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Fists&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Stick&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Club&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Mace&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Knife&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Short Sword&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Long Sword&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || Great Sword&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Note: the player does not have to own the specified weapon type in order to have it equipped. The equipment check is only performed when the player switches their weapon in-game.&lt;br /&gt;
&lt;br /&gt;
== Armor IDs ==&lt;br /&gt;
&lt;br /&gt;
The following weapon IDs can be used in the &#039;&#039;&#039;equippedArmor&#039;&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Armor Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Skin&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Leather&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Chain&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Scale&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Breast Plate&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Field Plate&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Titanium&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || Glitchy Armor&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Note: the player does not have to own the specified armor type in order to have it equipped. The equipment check is only performed when the player switches their armor in-game.&lt;br /&gt;
&lt;br /&gt;
== Checksum ==&lt;br /&gt;
&lt;br /&gt;
The checksum is calculated as follows (example in C# and assuming saveBytes is the saved game data, sans checksum):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
checksum[0] = checksum[1] = 0;&lt;br /&gt;
foreach(var b in saveBytes) {&lt;br /&gt;
    checksum[0] += b;&lt;br /&gt;
    checksum[1] += checksum[0] - checksum[0] * checksum[0];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the checksum is incorrect for the saved game file, the player will be immediately booted back to the DOS prompt with a &amp;quot;corrupted character&amp;quot; error.&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered and documented by [[User:Spectere|Spectere]]. If you find this information helpful in a project you&#039;re working on, please give credit where credit is due. (A link back to this wiki would be nice too!)&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Character_Creation_Text&amp;diff=7054</id>
		<title>Dungeons of the Unforgiven Character Creation Text</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Character_Creation_Text&amp;diff=7054"/>
		<updated>2017-03-13T21:16:10Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Created page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Text Infobox&lt;br /&gt;
 | Type = Help&lt;br /&gt;
 | Lines = CRLF&lt;br /&gt;
 | Charset = ASCII&lt;br /&gt;
 | Games = {{Game|Dungeons of the Unforgiven}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
UROLL.TXT contains the help text for the character creator in &#039;&#039;[[Dungeons of the Unforgiven]]&#039;&#039;, starting with the difficulty screen and ending with class selection. Unlike some of the other text storage formats, the formatting, font size, and coloration of this text is done programmatically, and the line of the file determines where the text is displayed on the screen.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Line Numbers !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Prompt to select difficulty levels.&lt;br /&gt;
|-&lt;br /&gt;
| 2-6 || Normal difficulty explanation.&lt;br /&gt;
|-&lt;br /&gt;
| 7-13 || &amp;quot;I Can Handle Anything&amp;quot; difficulty explanation.&lt;br /&gt;
|-&lt;br /&gt;
| 14-27 || Contest difficulty explanation.&lt;br /&gt;
|-&lt;br /&gt;
| 28 || Prompt for the user to press a key to create their character.&lt;br /&gt;
|-&lt;br /&gt;
| 29 || &amp;quot;Create your character&amp;quot; heading.&lt;br /&gt;
|-&lt;br /&gt;
| 30-39 || General description and hints on the character creation process.&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Prompt for the user to press a key to continue.&lt;br /&gt;
|-&lt;br /&gt;
| 41 || Race selection heading.&lt;br /&gt;
|-&lt;br /&gt;
| 42-43 || Instructions on how to select a race.&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Table headings for the race selector.&lt;br /&gt;
|-&lt;br /&gt;
| 45-52 || The races that can be selected, in the following order: Humanoid, Ape, Childman, Rodent, Hobo, Giant, Midget, and Shrimp. Note that changing the specified attributes will not have any in-game effect.&lt;br /&gt;
|-&lt;br /&gt;
| 53 || Instructions on how to select a class.&lt;br /&gt;
|-&lt;br /&gt;
| 54-55 || The description for the Fighter class.&lt;br /&gt;
|-&lt;br /&gt;
| 56-57 || The description for the Worshipper class.&lt;br /&gt;
|-&lt;br /&gt;
| 58-59 || The description for the Monk class.&lt;br /&gt;
|-&lt;br /&gt;
| 60-61 || The description for the Wizard class.&lt;br /&gt;
|-&lt;br /&gt;
| 62-63 || The description for the Priest class.&lt;br /&gt;
|-&lt;br /&gt;
| 64-66 || The description for the Sage class.&lt;br /&gt;
|-&lt;br /&gt;
| 67-68 || The description for the Mage class.&lt;br /&gt;
|-&lt;br /&gt;
| 69 || Unused. In the unmodified file, this contains a hyphen, presumably as a visual indication as to the end of the file.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* {{TODO|Work out the maximum column widths for each of these, and document what happens when that&#039;s exceeded.}}&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was documented by [[User:Spectere|Spectere]]. If you find this information helpful in a project you&#039;re working on, please give credit where credit is due. (A link back to this wiki would be nice too!)&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=File:Dungeons_of_the_Unforgiven.png&amp;diff=7053</id>
		<title>File:Dungeons of the Unforgiven.png</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=File:Dungeons_of_the_Unforgiven.png&amp;diff=7053"/>
		<updated>2017-03-13T14:27:03Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Dungeons of the Unforgiven title screen.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dungeons of the Unforgiven title screen.&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven&amp;diff=7052</id>
		<title>Dungeons of the Unforgiven</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven&amp;diff=7052"/>
		<updated>2017-03-13T14:21:52Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Correct infobox display.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Unknown&lt;br /&gt;
 | Tiles = Unknown&lt;br /&gt;
 | Sprites = Unknown&lt;br /&gt;
 | Fullscreen = Unknown&lt;br /&gt;
 | Sound = Unknown&lt;br /&gt;
 | Music = Unknown&lt;br /&gt;
 | Text = Edit&lt;br /&gt;
 | Story = Unknown&lt;br /&gt;
 | Interface = Unknown&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
MoraffWare&#039;s &#039;&#039;Dungeons of the Unforgiven&#039;&#039; is a first-person dungeon crawler for MS-DOS, released as shareware in 1993 by MoraffWare. This is the third game in MoraffWare&#039;s series of role-playing games and is the direct successor to [[Moraff&#039;s World]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Dungeons of the Unforgiven&#039;&#039; is notable for its wide range of display options. It is capable of displaying graphics on everything from CGA/Hercules to SuperVGA, supporting everything from 320x200 with 4 colors to 1024x768 with 256 colors.&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = 2?&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Player Character|Player Character]]&lt;br /&gt;
 | KnownFormat = Partial&lt;br /&gt;
 | Desc = A saved player character. Up to 10 characters can be saved (with filenames ranging from 20 through 29, corresponding to the slot that the character is stored in).&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?0?.DUN&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Dungeon|Dungeon]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A map of each dungeon module. The first character of the filename is the player identifier (D is slot 0, M is slot 9) and the third character is the zero-indexed number of the module.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?MON.MAP&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Monster Map|Monster Map]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = A dump of the currently generated monsters in the dungeon. Each player character has a monster map, with filenames ranging from DMON.MAP through MMON.MAP.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = MD.BIN&amp;lt;br/&amp;gt;UH.BIN&amp;lt;br/&amp;gt;UH2.BIN&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Formatted Text|Formatted Text]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A binary file containing formatted text strings that are used in-game. This format differs from the [[Dungeons of the Unforgiven Help File|UHP]] format. Please note that UNFDUNG.BIN is not written in this format.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = UNFDUNG.BIN&lt;br /&gt;
 | Format = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = UROLL.TXT&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Character Creation Text|Character Creation Text]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = This file contains text blocks used during the character creation process. Each screen element reads a fixed number of lines from the text file.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.FNT&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Font|Font]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A few fonts that are used by the game. These are most likely vector fonts.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.PIC&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Picture Format|Picture]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A set of files containing the game&#039;s sprites, textures, and full-screen images. Due to the game&#039;s wide ranging display support, it&#039;s likely that the images are vectorized.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.UHP&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Help File|Help File]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = Stores the colored text that&#039;s displayed in the in-game help screens.&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
* All bundled executables are compressed with [[PKLite compression]]. Despite UNFORGIV.EXE being used to launch the game, all of the game logic is stored in UNF.EXE.&lt;br /&gt;
&lt;br /&gt;
[[Category:MoraffWare]]&lt;br /&gt;
[[Category:Dungeons of the Unforgiven]]&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=User:Spectere/Dungeons_of_the_Unforgiven_Formats&amp;diff=7051</id>
		<title>User:Spectere/Dungeons of the Unforgiven Formats</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=User:Spectere/Dungeons_of_the_Unforgiven_Formats&amp;diff=7051"/>
		<updated>2017-03-13T14:20:48Z</updated>

		<summary type="html">&lt;p&gt;Spectere: No longer necessary! :D&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Dungeons of the Unforgiven]]&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Player_Character&amp;diff=7050</id>
		<title>Dungeons of the Unforgiven Player Character</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Player_Character&amp;diff=7050"/>
		<updated>2017-03-13T14:19:00Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Initial page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Playerdata Infobox&lt;br /&gt;
 | Savegame = Yes&lt;br /&gt;
 | Where = ?&lt;br /&gt;
 | Elements = Player character data&lt;br /&gt;
 | Games =&lt;br /&gt;
   {{Game|Dungeons of the Unforgiven}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[char]][19] || playerName || The name of the player character (including a null terminator).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][22] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || playerRace || The race of the player character.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || playerGender || The player character&#039;s gender (0x00 == male; 0x01 == female)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || playerClass || The player character&#039;s class.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][6] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerCurrentHP || The player character&#039;s current hit points.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerMaxHP || The player character&#039;s maximum hit points.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || playerCurrentSP || The player character&#039;s current spell points.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || playerMaxSP || The player character&#039;s maximum spell points.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][2] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nakedWeight || The player&#039;s base weight.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || loadedWeight || The player&#039;s loaded weight (note: this always gets updated by the game).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][62] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponFists || Player character has their fists (normally these cannot be dropped).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponStick || Player character has the stick.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponClub || Player character has the club.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponMace || Player character has the mace.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponKnife || Player character has the knife.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponShortSword || Player character has the short sword.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponLongSword || Player character has the long sword.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponGreatSword || Player character has the great sword.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][18] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || equippedWeapon || The weapon that the player character currently has equipped.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][20] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorSkin || Player character has their skin (normally this cannot be dropped).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorLeather || Player character has leather armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorChain || Player character has chain armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorScale || Player character has scale armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorBreastPlate || Player character has the breast plate.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorFieldPlate || Player character has field plate.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorTitanium || Player character has the titanium armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorSlot8 || This &amp;quot;armor&amp;quot; is not implemented in the game and points to garbage data. {{TODO|Figure out exactly what in the executable this is pointing to, as it is technically fully usable.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || equippedArmor || The armor that the player character currently has equipped.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][156] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || orangePotions || The number of orange potions in the player&#039;s inventory (+6 Strength / -3 Luck)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || greenPotions || The number of green potions in the player&#039;s inventory (+6 Intelligence / -3 Agility)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || bluePotions || The number of blue potions in the player&#039;s inventory (+6 Wisdom / -3 Constitution)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || redPotions || The number of red potions in the player&#039;s inventory (+6 Constitution / -3 Wisdom)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || whitePotions || The number of white potions in the player&#039;s inventory (+6 Agility / -3 Intelligence)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || yellowPotions || The number of yellow potions in the player&#039;s inventory (+6 Luck / -3 Strength)&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][20] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells|SPELL_LIST]] || spellbook || The spells that the player has learned and can cast at any time at the cost of spell power.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells|SPELL_LIST]] || scrolls || The spells that the player can cast from a scroll.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells|SPELL_LIST]] || wands || The spell wands that the player possesses.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells|SPELL_LIST]] || papers || The spell papers that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][13] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || rublesInPocket || The number of rubles that the player has on hand.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || rublesInBank || The number of rubles that the player has in the bank.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][8] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || cultureStock || The amount of culture stock that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || childrenHelped || The number of children that the player helped (at the temple).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || magicCrystals || The number of magic crystals that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || americanDollars || The number of American Dollars that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][816] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Double]] || experiencePoints || The number of experience points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerLevel || The player character&#039;s current level.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerDirection || The direction that the player character is facing (0x00 == north; 0x01 == south; 0x02 == west; 0x03 == east).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerPositionX || The X coordinate of the player in the current dungeon floor.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerPositionY || The Y coordinate of the player in the current dungeon floor.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerFloor || The floor of the dungeon that the player is currently on (0 is the town).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerModule || The module that the player is currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][18] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ringsOfRegeneration || The number of rings of regeneration that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || nuclearHandGrenade || The number of nuclear hand grenades that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || stonesOfSeeing || The number of stones of seeing that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || diseaseTimer || The number of turns until poison damages constitution (0 or -1 disables the timer).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || poisonTimer || The number of turns until poison damages strength (0 or -1 disables the timer).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][2] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || bodyArmor || The number of body armor items that the player has (not related to the gear, listed above).&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ringOfProtection || The number of rings of protection that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || antiMagicRing || The number of anti-magic rings that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][3] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || playerAge || The current age of the player character.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][36] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || floorSloshers || The number of floor sloshers that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || potionsOfHealing || The number of potions of healing that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || stonesOfTeleportation || The number of stones of teleportation that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerStrength || The number of strength points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerIntelligence || The number of intelligence points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerWisdom || The number of wisdom points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerConstitution || The number of constitution points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerAgility || The number of agility points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerLuck || The number of luck points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][49] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || gauntlets || The number of gauntlets that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][162] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || difficulty || The difficulty level that the player is playing on. (0x00 == normal; 0x01 == &amp;quot;I can handle anything!&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT32LE]] || gameTimer || This appears to be some sort of hidden in-game timer. {{TODO|Figure out when this is incremented and whether or not it actually does anything.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][274] || unknown || {{TODO|Unknown.}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]][2] || checksum || The checksum of the saved game file. See [[#Checksum|below]] for more information.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Spells ==&lt;br /&gt;
&lt;br /&gt;
Spells are stored in the save file per the following table. In all cases, the spells are stored in order from left-to-right, top-to-bottom, with respect to the in-game spell browser. Each spell category has 15 unused bytes at the end.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPermanent || The permanent spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPreparation || The preparation spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsWizard || The wizard battle spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPriest || The priest battle spells that the player has access to.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Checksum ==&lt;br /&gt;
&lt;br /&gt;
The checksum is calculated as follows (example in C# and assuming saveBytes is the saved game data, sans checksum):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
checksum[0] = checksum[1] = 0;&lt;br /&gt;
foreach(var b in saveBytes) {&lt;br /&gt;
    checksum[0] += b;&lt;br /&gt;
    checksum[1] += checksum[0] - checksum[0] * checksum[0];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the checksum is incorrect for the saved game file, the player will be immediately booted back to the DOS prompt with a &amp;quot;corrupted character&amp;quot; error.&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered and documented by [[User:Spectere|Spectere]]. If you find this information helpful in a project you&#039;re working on, please give credit where credit is due. (A link back to this wiki would be nice too!)&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Monster_Map&amp;diff=7049</id>
		<title>Dungeons of the Unforgiven Monster Map</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Monster_Map&amp;diff=7049"/>
		<updated>2017-03-13T14:13:15Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Added infobox.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Playerdata Infobox&lt;br /&gt;
 | Savegame = Yes&lt;br /&gt;
 | Where = ?&lt;br /&gt;
 | Elements = Monster Locations&lt;br /&gt;
 | Games =&lt;br /&gt;
   {{Game|Dungeons of the Unforgiven}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Dungeons of the Unforgiven stores up to three floors worth of monsters in memory at any given time. Each floor can have up to 145 monsters active at any given time. As the player traverses the dungeon, monsters are dynamically created based on the player&#039;s level, active module, and current floor.&lt;br /&gt;
&lt;br /&gt;
If they reach a floor that doesn&#039;t currently have any active monsters, a new set will be created and the set that&#039;s farthest away will be discarded. {{TODO|This information is based on speculation via semi-casual observation and needs verification.}}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || set1Floor || The floor that the first set of monster&#039;s live on (0x00 or 0xFF disables that list).&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || set2Floor || The floor that the second set of monster&#039;s live on (0x00 or 0xFF disables that list).&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || set3Floor || The floor that the third set of monster&#039;s live on (0x00 or 0xFF disables that list).&lt;br /&gt;
|-&lt;br /&gt;
| [[#Monster_Instance|MONSTER]][145] || set1Array || An array of monsters that exist on the floor specified by set1Floor.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Monster_Instance|MONSTER]][145] || set2Array || An array of monsters that exist on the floor specified by set2Floor.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Monster_Instance|MONSTER]][145] || set3Array || An array of monsters that exist on the floor specified by set3Floor.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Monster Instance ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || monsterX || The X coordinate of the monster.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || monsterY || The Y coordinate of the monster.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || monsterHP || The monster&#039;s remaining hit points.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || monsterType || The [[#Monster_Types|type of monster]] on this tile.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || monsterLevel || The level of the monster.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Monster Types ==&lt;br /&gt;
&lt;br /&gt;
The following are valid monster type values. Using values outside of this range will cause unpredictable results:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || No Monster&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Giant Garbage Can&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Giant Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Light Blue Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Light Red Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Light Green Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Yellow Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || White Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Gray Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || Sky Blue Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || Dark Red Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B || Dark Green Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Brown Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0D || Black Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E || Dark Grey Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0F || Poison Flask&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Poisoned Druggie&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || Chemical Bomb&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || Poison Toxic Waste&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || Flask of Disease&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Diseased Druggie&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || Biological Bomb&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || Can of Toxic Waste&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || Module Enemy E (i.e. Gargalon in Module I, Gargonian Portion)&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Module Enemy B (i.e. Lesdidian Warrior in Module I, Gargonian Portion)&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || Module Enemy C (i.e. Harpey in Module I, Gargonian Portion)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || Module Enemy D (i.e. Sustrontime in Module I, Gargonian Portion)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered and documented by [[User:Spectere|Spectere]]. If you find this information helpful in a project you&#039;re working on, please give credit where credit is due. (A link back to this wiki would be nice too!)&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Monster_Map&amp;diff=7048</id>
		<title>Dungeons of the Unforgiven Monster Map</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Monster_Map&amp;diff=7048"/>
		<updated>2017-03-13T14:10:25Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Clarified TODO, corrected the type table (I&amp;#039;m so good at this!), added credits.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dungeons of the Unforgiven stores up to three floors worth of monsters in memory at any given time. Each floor can have up to 145 monsters active at any given time. As the player traverses the dungeon, monsters are dynamically created based on the player&#039;s level, active module, and current floor.&lt;br /&gt;
&lt;br /&gt;
If they reach a floor that doesn&#039;t currently have any active monsters, a new set will be created and the set that&#039;s farthest away will be discarded. {{TODO|This information is based on speculation via semi-casual observation and needs verification.}}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || set1Floor || The floor that the first set of monster&#039;s live on (0x00 or 0xFF disables that list).&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || set2Floor || The floor that the second set of monster&#039;s live on (0x00 or 0xFF disables that list).&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || set3Floor || The floor that the third set of monster&#039;s live on (0x00 or 0xFF disables that list).&lt;br /&gt;
|-&lt;br /&gt;
| [[#Monster_Instance|MONSTER]][145] || set1Array || An array of monsters that exist on the floor specified by set1Floor.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Monster_Instance|MONSTER]][145] || set2Array || An array of monsters that exist on the floor specified by set2Floor.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Monster_Instance|MONSTER]][145] || set3Array || An array of monsters that exist on the floor specified by set3Floor.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Monster Instance ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || monsterX || The X coordinate of the monster.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || monsterY || The Y coordinate of the monster.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || monsterHP || The monster&#039;s remaining hit points.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || monsterType || The [[#Monster_Types|type of monster]] on this tile.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || monsterLevel || The level of the monster.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Monster Types ==&lt;br /&gt;
&lt;br /&gt;
The following are valid monster type values. Using values outside of this range will cause unpredictable results:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || No Monster&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Giant Garbage Can&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Giant Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Light Blue Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Light Red Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Light Green Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Yellow Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || White Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Gray Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || Sky Blue Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || Dark Red Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B || Dark Green Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Brown Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0D || Black Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E || Dark Grey Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0F || Poison Flask&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Poisoned Druggie&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || Chemical Bomb&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || Poison Toxic Waste&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || Flask of Disease&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Diseased Druggie&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || Biological Bomb&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || Can of Toxic Waste&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || Module Enemy E (i.e. Gargalon in Module I, Gargonian Portion)&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Module Enemy B (i.e. Lesdidian Warrior in Module I, Gargonian Portion)&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || Module Enemy C (i.e. Harpey in Module I, Gargonian Portion)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || Module Enemy D (i.e. Sustrontime in Module I, Gargonian Portion)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered and documented by [[User:Spectere|Spectere]]. If you find this information helpful in a project you&#039;re working on, please give credit where credit is due. (A link back to this wiki would be nice too!)&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Monster_Map&amp;diff=7047</id>
		<title>Dungeons of the Unforgiven Monster Map</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven_Monster_Map&amp;diff=7047"/>
		<updated>2017-03-13T14:06:09Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Initial page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dungeons of the Unforgiven stores up to three floors worth of monsters in memory at any given time. Each floor can have up to 145 monsters active at any given time. As the player traverses the dungeon, monsters are dynamically created based on the player&#039;s level, active module, and current floor.&lt;br /&gt;
&lt;br /&gt;
If they reach a floor that doesn&#039;t currently have any active monsters, a new set will be created and the set that&#039;s farthest away will be discarded. {{TODO|This is based on speculation. Verify this!}}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || set1Floor || The floor that the first set of monster&#039;s live on (0x00 or 0xFF disables that list).&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || set2Floor || The floor that the second set of monster&#039;s live on (0x00 or 0xFF disables that list).&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || set3Floor || The floor that the third set of monster&#039;s live on (0x00 or 0xFF disables that list).&lt;br /&gt;
|-&lt;br /&gt;
| [[#Monster_Instance|MONSTER]][145] || set1Array || An array of monsters that exist on the floor specified by set1Floor.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Monster_Instance|MONSTER]][145] || set2Array || An array of monsters that exist on the floor specified by set2Floor.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Monster_Instance|MONSTER]][145] || set3Array || An array of monsters that exist on the floor specified by set3Floor.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Monster Instance ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || monsterX || The X coordinate of the monster.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || monsterY || The Y coordinate of the monster.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || monsterHP || The monster&#039;s remaining hit points.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || monsterType || The [[#Monster_Types|type of monster]] on this tile.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || monsterLevel || The level of the monster.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Monster Types ==&lt;br /&gt;
&lt;br /&gt;
The following are valid monster type values. Using values outside of this range will cause unpredictable results:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 | No Monster&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 | Giant Garbage Can&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 | Giant Ball&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 | Light Blue Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 | Light Red Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 | Light Green Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 | Yellow Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 | White Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 | Gray Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 | Sky Blue Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A | Dark Red Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B | Dark Green Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C | Brown Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0D | Black Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E | Dark Grey Puffball&lt;br /&gt;
|-&lt;br /&gt;
| 0x0F | Poison Flask&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 | Poisoned Druggie&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 | Chemical Bomb&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 | Poison Toxic Waste&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 | Flask of Disease&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 | Diseased Druggie&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 | Biological Bomb&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 | Can of Toxic Waste&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 | Module Enemy E (i.e. Gargalon in Module I, Gargonian Portion)&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 | Module Enemy B (i.e. Lesdidian Warrior in Module I, Gargonian Portion)&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 | Module Enemy C (i.e. Harpey in Module I, Gargonian Portion)&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A | Module Enemy D (i.e. Sustrontime in Module I, Gargonian Portion)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven&amp;diff=7046</id>
		<title>Dungeons of the Unforgiven</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven&amp;diff=7046"/>
		<updated>2017-03-13T13:57:24Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Accidentally typed &amp;quot;Game File&amp;quot; instead of &amp;quot;GameFile.&amp;quot; Oops.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Unknown&lt;br /&gt;
 | Tiles = Unknown&lt;br /&gt;
 | Sprites = Unknown&lt;br /&gt;
 | Fullscreen = Unknown&lt;br /&gt;
 | Sound = Unknown&lt;br /&gt;
 | Music = Unknown&lt;br /&gt;
 | Text = Yes&lt;br /&gt;
 | Story = Unknown&lt;br /&gt;
 | Interface = Unknown&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
MoraffWare&#039;s &#039;&#039;Dungeons of the Unforgiven&#039;&#039; is a first-person dungeon crawler for MS-DOS, released as shareware in 1993 by MoraffWare. This is the third game in MoraffWare&#039;s series of role-playing games and is the direct successor to [[Moraff&#039;s World]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Dungeons of the Unforgiven&#039;&#039; is notable for its wide range of display options. It is capable of displaying graphics on everything from CGA/Hercules to SuperVGA, supporting everything from 320x200 with 4 colors to 1024x768 with 256 colors.&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = 2?&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Player Character|Player Character]]&lt;br /&gt;
 | KnownFormat = Partial&lt;br /&gt;
 | Desc = A saved player character. Up to 10 characters can be saved (with filenames ranging from 20 through 29, corresponding to the slot that the character is stored in).&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?0?.DUN&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Dungeon|Dungeon]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A map of each dungeon module. The first character of the filename is the player identifier (D is slot 0, M is slot 9) and the third character is the zero-indexed number of the module.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?MON.MAP&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Monster Map|Monster Map]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = A dump of the currently generated monsters in the dungeon. Each player character has a monster map, with filenames ranging from DMON.MAP through MMON.MAP.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = MD.BIN&amp;lt;br/&amp;gt;UH.BIN&amp;lt;br/&amp;gt;UH2.BIN&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Formatted Text|Formatted Text]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A binary file containing formatted text strings that are used in-game. This format differs from the [[Dungeons of the Unforgiven Help File|UHP]] format. Please note that UNFDUNG.BIN is not written in this format.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = UNFDUNG.BIN&lt;br /&gt;
 | Format = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = UROLL.TXT&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Character Creation Text|Character Creation Text]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = This file contains text blocks used during the character creation process. Each screen element reads a fixed number of lines from the text file.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.FNT&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Font|Font]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A few fonts that are used by the game. These are most likely vector fonts.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.PIC&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Picture Format|Picture]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A set of files containing the game&#039;s sprites, textures, and full-screen images. Due to the game&#039;s wide ranging display support, it&#039;s likely that the images are vectorized.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.UHP&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Help File|Help File]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = Stores the colored text that&#039;s displayed in the in-game help screens.&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
* All bundled executables are compressed with [[PKLite compression]]. Despite UNFORGIV.EXE being used to launch the game, all of the game logic is stored in UNF.EXE.&lt;br /&gt;
&lt;br /&gt;
[[Category:MoraffWare]]&lt;br /&gt;
[[Category:Dungeons of the Unforgiven]]&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven&amp;diff=7045</id>
		<title>Dungeons of the Unforgiven</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Dungeons_of_the_Unforgiven&amp;diff=7045"/>
		<updated>2017-03-13T13:55:13Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Created page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Unknown&lt;br /&gt;
 | Tiles = Unknown&lt;br /&gt;
 | Sprites = Unknown&lt;br /&gt;
 | Fullscreen = Unknown&lt;br /&gt;
 | Sound = Unknown&lt;br /&gt;
 | Music = Unknown&lt;br /&gt;
 | Text = Yes&lt;br /&gt;
 | Story = Unknown&lt;br /&gt;
 | Interface = Unknown&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
MoraffWare&#039;s &#039;&#039;Dungeons of the Unforgiven&#039;&#039; is a first-person dungeon crawler for MS-DOS, released as shareware in 1993 by MoraffWare. This is the third game in MoraffWare&#039;s series of role-playing games and is the direct successor to [[Moraff&#039;s World]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Dungeons of the Unforgiven&#039;&#039; is notable for its wide range of display options. It is capable of displaying graphics on everything from CGA/Hercules to SuperVGA, supporting everything from 320x200 with 4 colors to 1024x768 with 256 colors.&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = 2?&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Player Character|Player Character]]&lt;br /&gt;
 | KnownFormat = Partial&lt;br /&gt;
 | Desc = A saved player character. Up to 10 characters can be saved (with filenames ranging from 20 through 29, corresponding to the slot that the character is stored in).&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?0?.DUN&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Dungeon|Dungeon]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A map of each dungeon module. The first character of the filename is the player identifier (D is slot 0, M is slot 9) and the third character is the zero-indexed number of the module.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = ?MON.MAP&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Monster Map|Monster Map]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = A dump of the currently generated monsters in the dungeon. Each player character has a monster map, with filenames ranging from DMON.MAP through MMON.MAP.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = MD.BIN&amp;lt;br/&amp;gt;UH.BIN&amp;lt;br/&amp;gt;UH2.BIN&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Formatted Text|Formatted Text]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A binary file containing formatted text strings that are used in-game. This format differs from the [[Dungeons of the Unforgiven Help File|UHP]] format. Please note that UNFDUNG.BIN is not written in this format.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = UNFDUNG.BIN&lt;br /&gt;
 | Format = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = UROLL.TXT&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Character Creation Text|Character Creation Text]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = This file contains text blocks used during the character creation process. Each screen element reads a fixed number of lines from the text file.&lt;br /&gt;
}}&lt;br /&gt;
{{Game File&lt;br /&gt;
 | Name = *.FNT&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Font|Font]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A few fonts that are used by the game. These are most likely vector fonts.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.PIC&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Picture Format|Picture]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = A set of files containing the game&#039;s sprites, textures, and full-screen images. Due to the game&#039;s wide ranging display support, it&#039;s likely that the images are vectorized.&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.UHP&lt;br /&gt;
 | Format = [[Dungeons of the Unforgiven Help File|Help File]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = Stores the colored text that&#039;s displayed in the in-game help screens.&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
* All bundled executables are compressed with [[PKLite compression]]. Despite UNFORGIV.EXE being used to launch the game, all of the game logic is stored in UNF.EXE.&lt;br /&gt;
&lt;br /&gt;
[[Category:MoraffWare]]&lt;br /&gt;
[[Category:Dungeons of the Unforgiven]]&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=User:Spectere/Dungeons_of_the_Unforgiven_Formats&amp;diff=7044</id>
		<title>User:Spectere/Dungeons of the Unforgiven Formats</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=User:Spectere/Dungeons_of_the_Unforgiven_Formats&amp;diff=7044"/>
		<updated>2017-03-13T12:53:16Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Added monster map (?MON.MAP) format.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Just going to dump what I&#039;ve figured out so far here. I&#039;ll drop these in their final place after I create a game page.&lt;br /&gt;
&lt;br /&gt;
== Save Format ==&lt;br /&gt;
&lt;br /&gt;
Note to self: Make sure to mark all of the unknown values accordingly.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[char]][19] || playerName || The name of the player character (including a null terminator).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][22] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || playerRace || The race of the player character.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || playerGender || The player character&#039;s gender (0x00 == male; 0x01 == female)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || playerClass || The player character&#039;s class.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][6] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerCurrentHP || The player character&#039;s current hit points.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerMaxHP || The player character&#039;s maximum hit points.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || playerCurrentSP || The player character&#039;s current spell points.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || playerMaxSP || The player character&#039;s maximum spell points.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][2] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nakedWeight || The player&#039;s base weight.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || loadedWeight || The player&#039;s loaded weight (note: this always gets updated by the game).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][62] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponFists || Player character has their fists (normally these cannot be dropped).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponStick || Player character has the stick.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponClub || Player character has the club.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponMace || Player character has the mace.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponKnife || Player character has the knife.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponShortSword || Player character has the short sword.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponLongSword || Player character has the long sword.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponGreatSword || Player character has the great sword.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][18] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || equippedWeapon || The weapon that the player character currently has equipped.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][20] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorSkin || Player character has their skin (normally this cannot be dropped).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorLeather || Player character has leather armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorChain || Player character has chain armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorScale || Player character has scale armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorBreastPlate || Player character has the breast plate.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorFieldPlate || Player character has field plate.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorTitanium || Player character has the titanium armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorSlot8 || This &amp;quot;armor&amp;quot; is not implemented in the game and points to garbage data. (TODO: Figure out exactly what it&#039;s pointing to.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || equippedArmor || The armor that the player character currently has equipped.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][156] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || orangePotions || The number of orange potions in the player&#039;s inventory (+6 Strength / -3 Luck)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || greenPotions || The number of green potions in the player&#039;s inventory (+6 Intelligence / -3 Agility)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || bluePotions || The number of blue potions in the player&#039;s inventory (+6 Wisdom / -3 Constitution)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || redPotions || The number of red potions in the player&#039;s inventory (+6 Constitution / -3 Wisdom)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || whitePotions || The number of white potions in the player&#039;s inventory (+6 Agility / -3 Intelligence)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || yellowPotions || The number of yellow potions in the player&#039;s inventory (+6 Luck / -3 Strength)&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][20] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells|SPELL_LIST]] || spellbook || The spells that the player has learned and can cast at any time at the cost of spell power.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells|SPELL_LIST]] || scrolls || The spells that the player can cast from a scroll.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells|SPELL_LIST]] || wands || The spell wands that the player possesses.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells|SPELL_LIST]] || papers || The spell papers that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][13] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || rublesInPocket || The number of rubles that the player has on hand.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || rublesInBank || The number of rubles that the player has in the bank.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][8] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || cultureStock || The amount of culture stock that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || childrenHelped || The number of children that the player helped (at the temple).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || magicCrystals || The number of magic crystals that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || americanDollars || The number of American Dollars that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][816] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[Double]] || experiencePoints || The number of experience points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerLevel || The player character&#039;s current level.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerDirection || The direction that the player character is facing (0x00 == north; 0x01 == south; 0x02 == west; 0x03 == east).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerPositionX || The X coordinate of the player in the current dungeon floor.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerPositionY || The Y coordinate of the player in the current dungeon floor.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerFloor || The floor of the dungeon that the player is currently on (0 is the town).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerModule || The module that the player is currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][18] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ringsOfRegeneration || The number of rings of regeneration that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || nuclearHandGrenade || The number of nuclear hand grenades that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || stonesOfSeeing || The number of stones of seeing that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || diseaseTimer || The number of turns until poison damages constitution (0 or -1 disables the timer).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || poisonTimer || The number of turns until poison damages strength (0 or -1 disables the timer).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][2] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || bodyArmor || The number of body armor items that the player has (not related to the gear, listed above).&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ringOfProtection || The number of rings of protection that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || antiMagicRing || The number of anti-magic rings that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][3] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || playerAge || The current age of the player character.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][36] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || floorSloshers || The number of floor sloshers that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || potionsOfHealing || The number of potions of healing that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || stonesOfTeleportation || The number of stones of teleportation that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerStrength || The number of strength points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerIntelligence || The number of intelligence points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerWisdom || The number of wisdom points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerConstitution || The number of constitution points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerAgility || The number of agility points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerLuck || The number of luck points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][49] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || gauntlets || The number of gauntlets that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][162] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || difficulty || The difficulty level that the player is playing on. (0x00 == normal; 0x01 == &amp;quot;I can handle anything!&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT32LE]] || gameTimer || This appears to be some sort of hidden in-game timer. (TODO: Figure out where this is incremented and if it actually does anything)&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][274] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]][2] || checksum || The checksum of the saved game file.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spells ===&lt;br /&gt;
&lt;br /&gt;
Spells are stored in the save file per the following table. In all cases, the spells are stored in order from left-to-right, top-to-bottom, with respect to the in-game spell browser. Each spell category has 15 unused bytes at the end.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPermanent || The permanent spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPreparation || The preparation spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsWizard || The wizard battle spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPriest || The priest battle spells that the player has access to.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Checksum ===&lt;br /&gt;
&lt;br /&gt;
The checksum is calculated as follows (example in C# and assuming saveBytes is the saved game data, sans checksum):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
checksum[0] = checksum[1] = 0;&lt;br /&gt;
foreach(var b in saveBytes) {&lt;br /&gt;
    checksum[0] += b;&lt;br /&gt;
    checksum[1] += checksum[0] - checksum[0] * checksum[0];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Monster Map Format ==&lt;br /&gt;
&lt;br /&gt;
Dungeons of the Unforgiven stores up to three floors worth of monsters in memory at any given time. Each floor can have up to 145 monsters active at any given time. As the player traverses the dungeon, monsters are dynamically created based on the player&#039;s level, active module, and current floor.&lt;br /&gt;
&lt;br /&gt;
(Note: Speculation, based on observation.) If they reach a floor that doesn&#039;t currently have any active monsters, a new set will be created and the set that&#039;s farthest away will be discarded.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || set1Floor || The floor that the first set of monster&#039;s live on (0x00 or 0xFF disables that list).&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || set2Floor || The floor that the second set of monster&#039;s live on (0x00 or 0xFF disables that list).&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || set3Floor || The floor that the third set of monster&#039;s live on (0x00 or 0xFF disables that list).&lt;br /&gt;
|-&lt;br /&gt;
| [[#Monster_Instance|MONSTER]][145] || set1Array || An array of monsters that exist on the floor specified by set1Floor.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Monster_Instance|MONSTER]][145] || set2Array || An array of monsters that exist on the floor specified by set2Floor.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Monster_Instance|MONSTER]][145] || set3Array || An array of monsters that exist on the floor specified by set3Floor.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Monster Instance ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || monsterX || The X coordinate of the monster.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || monsterY || The Y coordinate of the monster.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || monsterHP || The monster&#039;s remaining hit points.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || monsterType || The type of monster on this tile.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || monsterLevel || The level of the monster.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=User:Spectere/Dungeons_of_the_Unforgiven_Formats&amp;diff=7039</id>
		<title>User:Spectere/Dungeons of the Unforgiven Formats</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=User:Spectere/Dungeons_of_the_Unforgiven_Formats&amp;diff=7039"/>
		<updated>2017-03-09T22:02:40Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Changed the way the spell list &amp;quot;data type&amp;quot; was being displayed.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Just going to dump what I&#039;ve figured out so far here. I&#039;ll drop these in their final place after I create a game page.&lt;br /&gt;
&lt;br /&gt;
== Save Format ==&lt;br /&gt;
&lt;br /&gt;
Note to self: Make sure to mark all of the unknown values accordingly.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[char]][19] || playerName || The name of the player character (including a null terminator).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][22] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || playerRace || The race of the player character.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || playerGender || The player character&#039;s gender (0x00 == male; 0x01 == female)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || playerClass || The player character&#039;s class.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][6] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerCurrentHP || The player character&#039;s current hit points.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerMaxHP || The player character&#039;s maximum hit points.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || playerCurrentSP || The player character&#039;s current spell points.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || playerMaxSP || The player character&#039;s maximum spell points.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][2] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nakedWeight || The player&#039;s base weight.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || loadedWeight || The player&#039;s loaded weight (note: this always gets updated by the game).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][62] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponFists || Player character has their fists (normally these cannot be dropped).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponStick || Player character has the stick.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponClub || Player character has the club.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponMace || Player character has the mace.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponKnife || Player character has the knife.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponShortSword || Player character has the short sword.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponLongSword || Player character has the long sword.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponGreatSword || Player character has the great sword.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][18] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || equippedWeapon || The weapon that the player character currently has equipped.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][20] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorSkin || Player character has their skin (normally this cannot be dropped).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorLeather || Player character has leather armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorChain || Player character has chain armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorScale || Player character has scale armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorBreastPlate || Player character has the breast plate.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorFieldPlate || Player character has field plate.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorTitanium || Player character has the titanium armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorSlot8 || This &amp;quot;armor&amp;quot; is not implemented in the game and points to garbage data. (TODO: Figure out exactly what it&#039;s pointing to.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || equippedArmor || The armor that the player character currently has equipped.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][156] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || orangePotions || The number of orange potions in the player&#039;s inventory (+6 Strength / -3 Luck)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || greenPotions || The number of green potions in the player&#039;s inventory (+6 Intelligence / -3 Agility)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || bluePotions || The number of blue potions in the player&#039;s inventory (+6 Wisdom / -3 Constitution)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || redPotions || The number of red potions in the player&#039;s inventory (+6 Constitution / -3 Wisdom)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || whitePotions || The number of white potions in the player&#039;s inventory (+6 Agility / -3 Intelligence)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || yellowPotions || The number of yellow potions in the player&#039;s inventory (+6 Luck / -3 Strength)&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][20] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells|SPELL_LIST]] || spellbook || The spells that the player has learned and can cast at any time at the cost of spell power.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells|SPELL_LIST]] || scrolls || The spells that the player can cast from a scroll.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells|SPELL_LIST]] || wands || The spell wands that the player possesses.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells|SPELL_LIST]] || papers || The spell papers that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][13] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || rublesInPocket || The number of rubles that the player has on hand.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || rublesInBank || The number of rubles that the player has in the bank.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][8] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || cultureStock || The amount of culture stock that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || childrenHelped || The number of children that the player helped (at the temple).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || magicCrystals || The number of magic crystals that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || americanDollars || The number of American Dollars that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][816] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[Double]] || experiencePoints || The number of experience points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerLevel || The player character&#039;s current level.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerDirection || The direction that the player character is facing (0x00 == north; 0x01 == south; 0x02 == west; 0x03 == east).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerPositionX || The X coordinate of the player in the current dungeon floor.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerPositionY || The Y coordinate of the player in the current dungeon floor.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerFloor || The floor of the dungeon that the player is currently on (0 is the town).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerModule || The module that the player is currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][18] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ringsOfRegeneration || The number of rings of regeneration that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || nuclearHandGrenade || The number of nuclear hand grenades that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || stonesOfSeeing || The number of stones of seeing that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || diseaseTimer || The number of turns until poison damages constitution (0 or -1 disables the timer).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || poisonTimer || The number of turns until poison damages strength (0 or -1 disables the timer).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][2] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || bodyArmor || The number of body armor items that the player has (not related to the gear, listed above).&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ringOfProtection || The number of rings of protection that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || antiMagicRing || The number of anti-magic rings that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][3] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || playerAge || The current age of the player character.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][36] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || floorSloshers || The number of floor sloshers that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || potionsOfHealing || The number of potions of healing that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || stonesOfTeleportation || The number of stones of teleportation that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerStrength || The number of strength points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerIntelligence || The number of intelligence points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerWisdom || The number of wisdom points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerConstitution || The number of constitution points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerAgility || The number of agility points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerLuck || The number of luck points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][49] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || gauntlets || The number of gauntlets that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][162] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || difficulty || The difficulty level that the player is playing on. (0x00 == normal; 0x01 == &amp;quot;I can handle anything!&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT32LE]] || gameTimer || This appears to be some sort of hidden in-game timer. (TODO: Figure out where this is incremented and if it actually does anything)&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][274] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]][2] || checksum || The checksum of the saved game file.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spells ===&lt;br /&gt;
&lt;br /&gt;
Spells are stored in the save file per the following table. In all cases, the spells are stored in order from left-to-right, top-to-bottom, with respect to the in-game spell browser. Each spell category has 15 unused bytes at the end.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPermanent || The permanent spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPreparation || The preparation spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsWizard || The wizard battle spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPriest || The priest battle spells that the player has access to.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Checksum ===&lt;br /&gt;
&lt;br /&gt;
The checksum is calculated as follows (example in C# and assuming saveBytes is the saved game data, sans checksum):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
checksum[0] = checksum[1] = 0;&lt;br /&gt;
foreach(var b in saveBytes) {&lt;br /&gt;
    checksum[0] += b;&lt;br /&gt;
    checksum[1] += checksum[0] - checksum[0] * checksum[0];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=User:Spectere/Dungeons_of_the_Unforgiven_Formats&amp;diff=7038</id>
		<title>User:Spectere/Dungeons of the Unforgiven Formats</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=User:Spectere/Dungeons_of_the_Unforgiven_Formats&amp;diff=7038"/>
		<updated>2017-03-09T22:01:19Z</updated>

		<summary type="html">&lt;p&gt;Spectere: Quick infodump.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Just going to dump what I&#039;ve figured out so far here. I&#039;ll drop these in their final place after I create a game page.&lt;br /&gt;
&lt;br /&gt;
== Save Format ==&lt;br /&gt;
&lt;br /&gt;
Note to self: Make sure to mark all of the unknown values accordingly.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[char]][19] || playerName || The name of the player character (including a null terminator).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][22] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || playerRace || The race of the player character.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || playerGender || The player character&#039;s gender (0x00 == male; 0x01 == female)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || playerClass || The player character&#039;s class.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][6] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerCurrentHP || The player character&#039;s current hit points.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerMaxHP || The player character&#039;s maximum hit points.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || playerCurrentSP || The player character&#039;s current spell points.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || playerMaxSP || The player character&#039;s maximum spell points.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][2] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nakedWeight || The player&#039;s base weight.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || loadedWeight || The player&#039;s loaded weight (note: this always gets updated by the game).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][62] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponFists || Player character has their fists (normally these cannot be dropped).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponStick || Player character has the stick.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponClub || Player character has the club.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponMace || Player character has the mace.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponKnife || Player character has the knife.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponShortSword || Player character has the short sword.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponLongSword || Player character has the long sword.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || weaponGreatSword || Player character has the great sword.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][18] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || equippedWeapon || The weapon that the player character currently has equipped.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][20] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorSkin || Player character has their skin (normally this cannot be dropped).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorLeather || Player character has leather armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorChain || Player character has chain armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorScale || Player character has scale armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorBreastPlate || Player character has the breast plate.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorFieldPlate || Player character has field plate.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorTitanium || Player character has the titanium armor.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || armorSlot8 || This &amp;quot;armor&amp;quot; is not implemented in the game and points to garbage data. (TODO: Figure out exactly what it&#039;s pointing to.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || equippedArmor || The armor that the player character currently has equipped.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][156] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || orangePotions || The number of orange potions in the player&#039;s inventory (+6 Strength / -3 Luck)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || greenPotions || The number of green potions in the player&#039;s inventory (+6 Intelligence / -3 Agility)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || bluePotions || The number of blue potions in the player&#039;s inventory (+6 Wisdom / -3 Constitution)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || redPotions || The number of red potions in the player&#039;s inventory (+6 Constitution / -3 Wisdom)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || whitePotions || The number of white potions in the player&#039;s inventory (+6 Agility / -3 Intelligence)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || yellowPotions || The number of yellow potions in the player&#039;s inventory (+6 Luck / -3 Strength)&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][20] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells]] || spellbook || The spells that the player has learned and can cast at any time at the cost of spell power.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells]] || scrolls || The spells that the player can cast from a scroll.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells]] || wands || The spell wands that the player possesses.&lt;br /&gt;
|-&lt;br /&gt;
| [[#Spells]] || papers || The spell papers that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][13] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || rublesInPocket || The number of rubles that the player has on hand.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || rublesInBank || The number of rubles that the player has in the bank.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][8] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || cultureStock || The amount of culture stock that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || childrenHelped || The number of children that the player helped (at the temple).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || magicCrystals || The number of magic crystals that the player owns.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || americanDollars || The number of American Dollars that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][816] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[Double]] || experiencePoints || The number of experience points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerLevel || The player character&#039;s current level.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerDirection || The direction that the player character is facing (0x00 == north; 0x01 == south; 0x02 == west; 0x03 == east).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerPositionX || The X coordinate of the player in the current dungeon floor.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerPositionY || The Y coordinate of the player in the current dungeon floor.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerFloor || The floor of the dungeon that the player is currently on (0 is the town).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerModule || The module that the player is currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][18] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ringsOfRegeneration || The number of rings of regeneration that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || nuclearHandGrenade || The number of nuclear hand grenades that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || stonesOfSeeing || The number of stones of seeing that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || diseaseTimer || The number of turns until poison damages constitution (0 or -1 disables the timer).&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || poisonTimer || The number of turns until poison damages strength (0 or -1 disables the timer).&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][2] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || bodyArmor || The number of body armor items that the player has (not related to the gear, listed above).&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ringOfProtection || The number of rings of protection that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || antiMagicRing || The number of anti-magic rings that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][3] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || playerAge || The current age of the player character.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][36] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || floorSloshers || The number of floor sloshers that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || potionsOfHealing || The number of potions of healing that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || stonesOfTeleportation || The number of stones of teleportation that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerStrength || The number of strength points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerIntelligence || The number of intelligence points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerWisdom || The number of wisdom points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerConstitution || The number of constitution points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerAgility || The number of agility points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || playerLuck || The number of luck points that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][49] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || gauntlets || The number of gauntlets that the player has.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][162] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]] || difficulty || The difficulty level that the player is playing on. (0x00 == normal; 0x01 == &amp;quot;I can handle anything!&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT32LE]] || gameTimer || This appears to be some sort of hidden in-game timer. (TODO: Figure out where this is incremented and if it actually does anything)&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][274] || unknown || Unknown.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]][2] || checksum || The checksum of the saved game file.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Spells ===&lt;br /&gt;
&lt;br /&gt;
Spells are stored in the save file per the following table. In all cases, the spells are stored in order from left-to-right, top-to-bottom, with respect to the in-game spell browser. Each spell category has 15 unused bytes at the end.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPermanent || The permanent spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPreparation || The preparation spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsWizard || The wizard battle spells that the player has access to.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]][45] || spellsPriest || The priest battle spells that the player has access to.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Checksum ===&lt;br /&gt;
&lt;br /&gt;
The checksum is calculated as follows (example in C# and assuming saveBytes is the saved game data, sans checksum):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
checksum[0] = checksum[1] = 0;&lt;br /&gt;
foreach(var b in saveBytes) {&lt;br /&gt;
    checksum[0] += b;&lt;br /&gt;
    checksum[1] += checksum[0] - checksum[0] * checksum[0];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Spectere</name></author>
	</entry>
</feed>