| https://akurasu.net/downloads/Mazin_head.png | Come hang out with us in the Discord server.
Account creation is disabled due to spam. If you want to help out on the Wiki, poke us in on our Discord server in #wiki. Please consider supporting the site with the PlayAsia referral links here or via the donate buttons in the sidebar, it really does help. | https://akurasu.net/downloads/Flonne_cheer.png |
Makai Senki Disgaea 2/Save Hacking
From Akurasu
Jump to navigationJump to search
Notes:
- I'm going to do this as simple as possible right now. I'm just going to start with my Data Structures for Hex Workshop and explain where things are located.
- Currently I have no way to actually edit the saves, due to the checksum check.
- If anyone wants to contact me to talk about D2 Save Hacking my Email is Daichi
akurasu.net
-Daichi 16:34, 31 August 2006 (EDT)
Header
#include "standard-types.hsl"
struct timestamp
{
ushort Hours;
ubyte Minutes;
ubyte Seconds;
};
struct header
{
ubyte unknown[8]; //checksum?
struct timestamp Timestamp;
ubyte unknown;
char Name[19];
ushort Level;
ushort unknown; //Nothing?
ushort Chapter;
};
Header location: 0x00000000
Items
struct innocent
{
ushort Level;
ushort Unknown;
ushort JobID;
ushort NameID;
};
struct s //Stat Attributes
{
long HP;
long SP;
long Atk;
long Def;
long Int;
long Spd;
long Hit;
long Res;
};
struct item
{
struct innocent Innocents[10];
struct s Stats;
struct s Base_Stats;
short TypeID;
short Level;
short Unknown[11];
BYTE Rarity;
short Unknown;
BYTE Population;
BYTE Unknown[27];
char Name[40]; // US Save file
//char Name[16]; // Japanese Save file
char Unknown[31];
};
struct Storage //Item Bag & Warehouse
{
struct item Item_Bag[24];
struct item Warehouse1[128];
struct item Warehouse2[128];
struct item Warehouse3[128];
struct item Warehouse4[128];
};
Item Bag (24 Item): 0x00051B98 // US Save
Warehouse (512 Item): 0x00053518 // US Save
Storage: 0x00051B98 // US Save
//Item Bag (24 Item): 0x0004BBA8 // Japanese Save
//Warehouse (512 Item): 0x0004D2E8 // Japanese Save
//Storage: 0x0004BBA8 // Japanese Save
Character Inventory (4 Item): + 0x00000008 from Character Offset
Characters
struct resistances
{
ushort Poison_Res;
ushort Sleep_Res;
ushort Deprave_Res;
ushort Forget_Res;
ushort Paralyze_Res;
};
struct Character
{
uquad EXP;
struct item Weapon;
struct item Item1;
struct item Item2;
struct item Item3;
char Name[41]; // US Save file
char Class[61]; // US Save file
//char Name[21]; // Japanese Save file
//char Class[25]; // Japanese Save file
ubyte Unknown[34];
struct resistances Resistances;
ubyte Unknown[114];
ulong SkillEXP[96];
ushort Skills[96];
ubyte SkillLevel[96];
ulong HP_current;
ulong SP_current;
struct s stats;
long unknown_stats[8]; //Base stats?
ubyte Unknown[32];
ulong Mana;
short Unknown[8];
ubyte Unknown[9];
ubyte Unknown[7];
ubyte Unknown[128];
ubyte Unknown[32];
};
Characters (? character): 0x00000BC8
Note: Character structure might start earlier, too much unknown data at the end of the struct right now.
Senators
struct senator
{
ushort Level;
ushort ID;
ushort Attendence;
ushort Killed;
ubyte Unknown[3];
ubyte Magic_Num;
ubyte Unknown;
ubyte Unknown; // Maybe Status related
char Name[31]; // US Save
//char Name[17]; // Japanese Save
byte Attitude;
};
struct Senators
{
struct senator Ghost_Sentaor[10];
struct senator PetitOrc_Sentaor[10];
struct senator WhiteDragon_Sentaor[10];
struct senator Mothman_Sentaor[10];
struct senator WoodGolem_Sentaor[10];
struct senator Baciel_Sentaor[10];
struct senator Legendary_Sentor[4];
};
Senators: 0x000497D8 // US Save //Senators: 0x00044BC8 // Japanese Save