<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://disgaea.rustedlogic.net/index.php?feed=atom&amp;namespace=0&amp;title=Special%3ANewPages</id>
		<title>Netherworld Research - New pages [en]</title>
		<link rel="self" type="application/atom+xml" href="https://disgaea.rustedlogic.net/index.php?feed=atom&amp;namespace=0&amp;title=Special%3ANewPages"/>
		<link rel="alternate" type="text/html" href="https://disgaea.rustedlogic.net/Special:NewPages"/>
		<updated>2026-04-19T16:35:08Z</updated>
		<subtitle>From Netherworld Research</subtitle>
		<generator>MediaWiki 1.26.3</generator>

	<entry>
		<id>https://disgaea.rustedlogic.net/Disgaea_5</id>
		<title>Disgaea 5</title>
		<link rel="alternate" type="text/html" href="https://disgaea.rustedlogic.net/Disgaea_5"/>
				<updated>2018-05-02T17:15:21Z</updated>
		
		<summary type="html">&lt;p&gt;Xkeeper: uh oh&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Disgaea 5! Now on PC!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Data &amp;quot;Encryption&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;system.dat&amp;lt;/tt&amp;gt; and the various &amp;lt;tt&amp;gt;Save_000.dat&amp;lt;/tt&amp;gt; files all use the same &amp;quot;encryption&amp;quot; format:&lt;br /&gt;
&lt;br /&gt;
* XOR every byte with &amp;lt;tt&amp;gt;0xF0&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Swap every byte&amp;#039;s nybbles (&amp;lt;tt&amp;gt;62&amp;lt;/tt&amp;gt; -&amp;amp;gt; &amp;lt;tt&amp;gt;26&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;system.dat&amp;lt;/tt&amp;gt; seems to be a bunch of shader functions.&lt;br /&gt;
&lt;br /&gt;
Save files include all the story characters that get added eventually, plus names for most maps in the game (?).&lt;/div&gt;</summary>
		<author><name>Xkeeper</name></author>	</entry>

	<entry>
		<id>https://disgaea.rustedlogic.net/Table_files_(D1DS)</id>
		<title>Table files (D1DS)</title>
		<link rel="alternate" type="text/html" href="https://disgaea.rustedlogic.net/Table_files_(D1DS)"/>
				<updated>2018-01-20T19:59:06Z</updated>
		
		<summary type="html">&lt;p&gt;FireFly: Document mitem.dat structure&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Table files&amp;#039;&amp;#039;&amp;#039; are files describing properties and statistics of various entities inside the game, e.g. items, classes or characters.  Each file essentially corresponds to a database table, with rows and columns, or (probably more true to the actual implementation) a row count followed by an array of some struct, with that many elements.&lt;br /&gt;
&lt;br /&gt;
This page documents the structs for the various table files inside [[D1DS]].&lt;br /&gt;
&lt;br /&gt;
Each table starts with the number of rows, as a u32, sometimes repeated twice for seemingly no good reason.  (One ugly way to deal with this is to start by reading two u32&amp;#039;s, and then seek back 4 bytes if they&amp;#039;re equal.)&lt;br /&gt;
&lt;br /&gt;
== char.dat ==&lt;br /&gt;
Holds character/class data.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
struct {&lt;br /&gt;
  char name[19];&lt;br /&gt;
  char title[19];&lt;br /&gt;
  u8 type;         // 0 = Static? (cutscene/geo); 3 = Usable in-battle; 4 = Prinny; 6 = Prism Red (Doll)&lt;br /&gt;
  u8 unk1;&lt;br /&gt;
  u8 pad1;&lt;br /&gt;
  u8 gender;       // 1 = Male; 2 = Female; 11 = Male (generic); 12 = Female (generic); 13 = Other (generic)&lt;br /&gt;
  u8 unk2;&lt;br /&gt;
  u8 tier;         // &amp;quot;Tier&amp;quot; into class/colour palette index&lt;br /&gt;
  u8 magic_rate;   // Rate of specials acquisition, judging by http://ningyokan.nisfan.net/game/disgaea/usa/usa-units3.html&lt;br /&gt;
  u8 jump;&lt;br /&gt;
&lt;br /&gt;
  struct {&lt;br /&gt;
    u8 fist, sword, spear, bow, gun, axe, staff;&lt;br /&gt;
  } wpn_mastery;&lt;br /&gt;
  u8 pad2;&lt;br /&gt;
&lt;br /&gt;
  struct {&lt;br /&gt;
    u8 hp, sp, atk, def, int, spd, hit, res;&lt;br /&gt;
  } aptitude;&lt;br /&gt;
&lt;br /&gt;
  u16 immunity;     // Bitfield of immunities (0 for most, 255 for Divine Majin)&lt;br /&gt;
  u16 id;&lt;br /&gt;
  u16 family;       // Seemingly corresponds to row in &amp;quot;create character&amp;quot; screen, e.g. Male/Female Brawler kept separate, but mages are grouped, as are skulls.&lt;br /&gt;
  u16 unk3;         // (always 100)&lt;br /&gt;
  u16 unk4;         // (always 20)&lt;br /&gt;
  u16 throw;&lt;br /&gt;
  u16 help;         // (Key into charhelp.dat) Help entry text for this character, or 0.&lt;br /&gt;
&lt;br /&gt;
  struct {&lt;br /&gt;
    u16 hp, sp, atk, def, int, spd, hit, res;&lt;br /&gt;
  } base_stats;&lt;br /&gt;
&lt;br /&gt;
  u16 unk5;         // (always 5)&lt;br /&gt;
  u16 move_range;&lt;br /&gt;
  u16 move_class;   // 0 = normal; 1 = flying; 2 = warping&lt;br /&gt;
  u16 unk6;         // (always 1)&lt;br /&gt;
  u16 unk7;&lt;br /&gt;
  u16 unk8;&lt;br /&gt;
  u16 unk9;         // (always 10)&lt;br /&gt;
  u8 pad3[4];&lt;br /&gt;
  u16 unk10;&lt;br /&gt;
  u16 counter;&lt;br /&gt;
&lt;br /&gt;
  u16 magic[32];    // (Key into magic.dat) Special index, for specials learned by this char/class, or 0 for unused.&lt;br /&gt;
  u16 magic_lvl[32]; // Level at which character learns the corresponding special&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== charhelp.dat ==&lt;br /&gt;
Class help descriptions.  These are shown in the &amp;quot;create character&amp;quot; screen, and so the table file includes strings that aren&amp;#039;t ever shown in-game (e.g. for story characters or enemies).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
struct {&lt;br /&gt;
  u16 id;&lt;br /&gt;
  char description[62];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dungeon.dat ==&lt;br /&gt;
Gatekeeper warp data, powering the warp menu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
struct {&lt;br /&gt;
  char name[18];&lt;br /&gt;
  u8 pad;&lt;br /&gt;
  u16 id;&lt;br /&gt;
  u16 talk;        // talk.dat entry to execute when map is selected from warp menu&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ge.dat ==&lt;br /&gt;
Geo effects.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
struct {&lt;br /&gt;
  char name[21];&lt;br /&gt;
  char description[57];&lt;br /&gt;
  u16 id;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== geocube.dat ==&lt;br /&gt;
Geocube effects (multiplayer).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
struct {&lt;br /&gt;
  u8 id;&lt;br /&gt;
  u8 unk1;&lt;br /&gt;
  u8 unk2;&lt;br /&gt;
  u8 unk3;&lt;br /&gt;
  u16 unk4;&lt;br /&gt;
  char name[17];&lt;br /&gt;
  char description[65];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== habit.dat ==&lt;br /&gt;
Item inhabitants.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
struct {&lt;br /&gt;
  u32 unk1;&lt;br /&gt;
  char name[21];&lt;br /&gt;
  u8 pad1[1];&lt;br /&gt;
  u16 id;&lt;br /&gt;
  u8[20] item_chance;  // Chance to appear in an item, by item class. Which element corresponds to which item class isn&amp;#039;t known exactly.&lt;br /&gt;
  // My best guess: ? Fist Sword Spear Bow Gun Axe Staff Monster ? Armor Belt Shoes Orb Glasses Muscle ? ? EX ?&lt;br /&gt;
  u8 pad2[1];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== hospital.dat ==&lt;br /&gt;
Hospital rewards, with minimum requirements.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
struct {&lt;br /&gt;
  u16 id;&lt;br /&gt;
  u16 req_deceased;&lt;br /&gt;
  u32 item;    // (Key into mitem.dat) Item to obtain&lt;br /&gt;
  u32 req_hp;&lt;br /&gt;
  u32 req_sp;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== magic.dat ==&lt;br /&gt;
Specials/spells.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
struct {&lt;br /&gt;
  u16 id;&lt;br /&gt;
  u16 wpn_level;       // Min. weapon skill level to unlock, if unlocked by weapon&lt;br /&gt;
  u16 power;           // Determines damage (TBD: how?)&lt;br /&gt;
  u16 sp;              // Base SP cost (TBD: determine growth curve)&lt;br /&gt;
  char name[17];&lt;br /&gt;
  char description[57];&lt;br /&gt;
  u16 unk1;            // ??&lt;br /&gt;
  u8 effect_param[5];  // Parameter to skill effect (see below)&lt;br /&gt;
  u8 wpn_type;         // 0 = not weapon tied; 1 = fist; 2 = sword; 3 = spear; 4 = bow; 5 = gun; 6 = axe&lt;br /&gt;
  u8 element;          // 0 = none; 1 = fire; 2 = wind; 3 = ice; 4 = star&lt;br /&gt;
  u8 spell_class;      // 2 = melee; 3 = magic; 4 = heal; 5 = buff; 6 = debuff&lt;br /&gt;
  u8 wpn_type_2;       // (copy of wpn_type)&lt;br /&gt;
  u8 range;&lt;br /&gt;
  u8 pattern;          // Attack pattern, complex, see below&lt;br /&gt;
  u8 range_up;         // Attack range vertically, constraints on height difference between tiles&lt;br /&gt;
  u8 range_down;&lt;br /&gt;
  u8 effect[5];        // Attack effects (see below), or 0 for no effect&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some of these fields warrant additional explanation.  The &amp;#039;&amp;#039;effect&amp;#039;&amp;#039; and &amp;#039;&amp;#039;effect_param&amp;#039;&amp;#039; fields allow up to 5 effects to be associated with a spell.  Known effect numbers are listed below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! # !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 1 || ?&lt;br /&gt;
|-&lt;br /&gt;
| 2 || ?&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Atk +n%&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Def +n%&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Res +n%&lt;br /&gt;
|-&lt;br /&gt;
| 14 || Int +n%&lt;br /&gt;
|-&lt;br /&gt;
| 21 || Poison (n = % chance to inflict)&lt;br /&gt;
|-&lt;br /&gt;
| 22 || Sleep&lt;br /&gt;
|-&lt;br /&gt;
| 23 || Paralyze&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Amnesia&lt;br /&gt;
|-&lt;br /&gt;
| 25 || Deprave&lt;br /&gt;
|-&lt;br /&gt;
| 101 || Cure ailments (n=?)&lt;br /&gt;
|-&lt;br /&gt;
| 102 || HP Drain&lt;br /&gt;
|-&lt;br /&gt;
| 104 || Self-destruct&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;pattern&amp;#039;&amp;#039; field describes the attack pattern (which tiles are targeted relative to the user, etc). (TBD: document these.)&lt;br /&gt;
&lt;br /&gt;
== mitem.dat ==&lt;br /&gt;
Item table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
struct {&lt;br /&gt;
  u32 price;&lt;br /&gt;
  u16 id;&lt;br /&gt;
&lt;br /&gt;
  struct {&lt;br /&gt;
    u16 hp, sp, atk, def, int, spd, hit, res;&lt;br /&gt;
  } base_stats;&lt;br /&gt;
&lt;br /&gt;
  char name[17];&lt;br /&gt;
  char description[81];&lt;br /&gt;
  u8 rank;&lt;br /&gt;
  u8 range;&lt;br /&gt;
  u8 jump;&lt;br /&gt;
  u8 icon;&lt;br /&gt;
  u8 type;     // (see below)&lt;br /&gt;
  u8 movement;&lt;br /&gt;
  u8 ailment;  // 21 = poison; 22 = sleep; 23 = paralyze; 24 = amnesia; 25 = deprave&lt;br /&gt;
  u8 pad1[1];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following item types are known.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! # !! Name&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Wpn/Fist&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Wpn/Sword&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Wpn/Spear&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Wpn/Bow&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Wpn/Gun&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Wpn/Axe&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Wpn/Staff&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Wpn/Monster&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Armor/Armor&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Armor/Belt&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Armor/Shoes&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Armor/Orb&lt;br /&gt;
|-&lt;br /&gt;
| 14 || Armor/Glasses&lt;br /&gt;
|-&lt;br /&gt;
| 15 || Armor/Muscle&lt;br /&gt;
|-&lt;br /&gt;
| 18 || Etc/EX&lt;br /&gt;
|-&lt;br /&gt;
| 19 || Etc/Symbol&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Etc/Use&lt;br /&gt;
|-&lt;br /&gt;
| 21 || Etc/Special (Hand)&lt;br /&gt;
|-&lt;br /&gt;
| 22 || Etc/Special (Gency)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== musicshop.dat ==&lt;br /&gt;
Song list for the music shop.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
struct {&lt;br /&gt;
  u32 price;&lt;br /&gt;
  u8 pad1[4];&lt;br /&gt;
  u16 id;&lt;br /&gt;
  u16 song_id;  // Uncertain&lt;br /&gt;
  char name[21];&lt;br /&gt;
  char title[65];&lt;br /&gt;
  u16 options; // 0 = locked; 1 = starts unlocked; 3 = starts unlocked &amp;amp; default selected&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== thief.dat ==&lt;br /&gt;
Stat stealing entries.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
struct {&lt;br /&gt;
  char name[21];&lt;br /&gt;
  u16 type;  // 0 = steal HP; 1 = SP; 2 = Atk; 3 = Def; 4 = Int; 5 = Spd; 6 = Hit; 7 = Res; 10 = Exp; 11 = HL?&lt;br /&gt;
  u8 pad1[1];&lt;br /&gt;
  u32 unk1;  // (always 1)&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== wish.dat ==&lt;br /&gt;
Dark Assembly bills.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
struct {&lt;br /&gt;
  u32 mana;&lt;br /&gt;
  u8 id;&lt;br /&gt;
  u16 rank;  // Min. rank required to reveal bill&lt;br /&gt;
  i8 skew;   // Skews senators&amp;#039; general opinion on the bill, -100 to +100 (higher is more favourable)&lt;br /&gt;
  char name[31];&lt;br /&gt;
  char description[53];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== zukan.dat ==&lt;br /&gt;
Bestiary entries.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
struct {&lt;br /&gt;
  u16 id;&lt;br /&gt;
  u16 class_id;&lt;br /&gt;
  char name[21];&lt;br /&gt;
  char line1[45];&lt;br /&gt;
  char line2[45];&lt;br /&gt;
  char line3[45];&lt;br /&gt;
  char line4[45];&lt;br /&gt;
  char line5[45];&lt;br /&gt;
  char line6[45];&lt;br /&gt;
  char line7[45];&lt;br /&gt;
  char line8[45];&lt;br /&gt;
  u8 pad1[3];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== External links == &lt;br /&gt;
* [https://docs.google.com/spreadsheets/d/1QuShaZsuQe1cRybufzAFD97f6xQ0JlLXDIvsynusxZc/edit?usp=sharing D1DS table files in spreadsheet form]&lt;/div&gt;</summary>
		<author><name>FireFly</name></author>	</entry>

	<entry>
		<id>https://disgaea.rustedlogic.net/DSARCIDX_format</id>
		<title>DSARCIDX format</title>
		<link rel="alternate" type="text/html" href="https://disgaea.rustedlogic.net/DSARCIDX_format"/>
				<updated>2018-01-20T19:04:16Z</updated>
		
		<summary type="html">&lt;p&gt;FireFly: Created page with &amp;quot;The &amp;#039;&amp;#039;&amp;#039;DSARCIDX format&amp;#039;&amp;#039;&amp;#039; is a run-of-the-mill archive format.  No built-in compression, has filenames but only &amp;quot;flat&amp;quot;--no directory tree.  == Header == &amp;lt;pre&amp;gt; struct header {...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;#039;&amp;#039;&amp;#039;DSARCIDX format&amp;#039;&amp;#039;&amp;#039; is a run-of-the-mill archive format.  No built-in compression, has filenames but only &amp;quot;flat&amp;quot;--no directory tree.&lt;br /&gt;
&lt;br /&gt;
== Header ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
struct header {&lt;br /&gt;
  char magic[8];   // &amp;quot;DSARCIDX&amp;quot;&lt;br /&gt;
  u32 count;&lt;br /&gt;
  u32 unk1;        // always 00&lt;br /&gt;
  u16 ids[count];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is seemingly padded to a 4-byte boundary by 0xFF bytes.&lt;br /&gt;
The meaning of the file IDs is uncertain, but in e.g. bg.dat the file bgXXX.mpb corresponds to the entry with ID X (with gaps in the numbering being present).&lt;br /&gt;
&lt;br /&gt;
== File directory ==&lt;br /&gt;
The header is followed by the file directory, with one entry per file in the archive.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
struct file_entry {&lt;br /&gt;
  char filename[40];&lt;br /&gt;
  u32 size;&lt;br /&gt;
  u32 offset;      // relative to start of archive&lt;br /&gt;
} entries[count];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== File data ==&lt;br /&gt;
This is followed by the file data.  The data for each file is aligned to an 8-byte boundary, padded with null bytes between files if necessary.&lt;br /&gt;
&lt;br /&gt;
[[Category:File formats]]&lt;/div&gt;</summary>
		<author><name>FireFly</name></author>	</entry>

	</feed>