Table files (D1DS)
Table files 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.
This page documents the structs for the various table files inside D1DS.
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's, and then seek back 4 bytes if they're equal.)
Contents
char.dat
Holds character/class data.
struct { char name[19]; char title[19]; u8 type; // 0 = Static? (cutscene/geo); 3 = Usable in-battle; 4 = Prinny; 6 = Prism Red (Doll) u8 unk1; u8 pad1; u8 gender; // 1 = Male; 2 = Female; 11 = Male (generic); 12 = Female (generic); 13 = Other (generic) u8 unk2; u8 tier; // "Tier" into class/colour palette index u8 magic_rate; // Rate of specials acquisition, judging by http://ningyokan.nisfan.net/game/disgaea/usa/usa-units3.html u8 jump; struct { u8 fist, sword, spear, bow, gun, axe, staff; } wpn_mastery; u8 pad2; struct { u8 hp, sp, atk, def, int, spd, hit, res; } aptitude; u16 immunity; // Bitfield of immunities (0 for most, 255 for Divine Majin) u16 id; u16 family; // Seemingly corresponds to row in "create character" screen, e.g. Male/Female Brawler kept separate, but mages are grouped, as are skulls. u16 unk3; // (always 100) u16 unk4; // (always 20) u16 throw; u16 help; // (Key into charhelp.dat) Help entry text for this character, or 0. struct { u16 hp, sp, atk, def, int, spd, hit, res; } base_stats; u16 unk5; // (always 5) u16 move_range; u16 move_class; // 0 = normal; 1 = flying; 2 = warping u16 unk6; // (always 1) u16 unk7; u16 unk8; u16 unk9; // (always 10) u8 pad3[4]; u16 unk10; u16 counter; u16 magic[32]; // (Key into magic.dat) Special index, for specials learned by this char/class, or 0 for unused. u16 magic_lvl[32]; // Level at which character learns the corresponding special };
charhelp.dat
Class help descriptions.
dungeon.dat
Gatekeeper warp data.
ge.dat
Geo effects.
geocube.dat
Geocube effects (multiplayer).
habit.dat
Item inhabitants.
hospital.dat
Hospital rewards.
magic.dat
Specials/spells.
mitem.dat
Item table.
musicshop.dat
Song list.
thief.dat
Stat stealing entries.
wish.dat
Dark Assembly bills.
== zukan.dat Bestiary entries.