===============================================================================
DISGAEA: HOUR OF DARKNESS
SAVE GAME HACKING FAQ
version 1.0 (February 01 2005)
Author: Kamek (kspamsink@gmail.com)
Copyright 2005 by Rick Foltz ("Kamek"). All rights reserved.
===============================================================================
This may be not be reproduced under any circumstances except for personal,
private use. It may not be placed on any web site or otherwise distributed
publicly without advance written permission. Use of this guide on any other web
site or as a part of any public display is strictly prohibited, and a violation
of copyright. All trademarks and copyrights contained in this document are
owned by their respective trademark and copyright holders.

gamefaqs.com is the only web site authorized to host this FAQ.
===============================================================================
TABLE OF CONTENTS
=================
1. Version History
2. Introduction
3. What You Need
4. Extracting the Save
5. Character Hacking
6. Item Hacking
7. Unlocked Character Class Hacking
8. Restoring the Save
9. Credits

APPENDIX
========
A. Disgaea Data Structures for Hex Workshop
B. Hex Values for Text Characters
C. Hex Values for Spells/Skills
D. Hex Values for Specialist Jobs
E. Hex Values for Character Classes
===============================================================================
1. VERSION HISTORY
==================
Version 1.0: first public release. Appendices included but incomplete.
===============================================================================
2. INTRODUCTION
===============
This FAQ is a guide for those who wish to hack their saved game files for
Disgaea: Hour of Darkness. This is not a simple task. This guide is for
advanced players who wish to delve into the internals of the Disgaea game.
Those with limited or no knowledge of hacking or computer programming should
stop reading this FAQ now and instead obtain a cheat device such as
Codebreaker.

If you wish to continue, I strongly suggest that you have a general working
knowledge of the following.

* General hex editing and basic computer programming, especially the
hexadecimal numbering system
* A basic understanding of the C++ computer language, used for structure 
definitions in Hex Workshop and possibly other hex editors
* A thorough understanding of the Disgaea battle system, including character 
stats/abilities and the Item World. The best sources for this information are 
bend's Item Guide and JungleJim's Training FAQ, both available on this site
(gamefaqs.com).

This guide is a work in progress. It will outline the basics of the character 
and item structures, as well as methods to unlock secret character classes that 
can't normally be used during play.

To my knowledge, myself and Pyriel are the only ones who have any working 
knowledge of the save file structure. As such there are lots of unknowns about 
the save file structure as well as the internal character and item structures. 
Feel free to tinker with the unknown values. If you discover something, please 
let me know and I'll update this FAQ and the structures accordingly.
===============================================================================
3. WHAT YOU NEED
================
In order to hack save files, you'll need some special equipment and software.
At a minimum you will need the following:

* The obvious: a PS2, a copy of Disgaea (US version) and a PS2 memory card
* A good hex editor. I strongly suggest Hex Workshop, because the structures I 
will define in this document can be imported into Hex Workshop to make the 
editing process a lot easier.
* A save file transfer kit, such as SharkPort, XPort, ARMax, etc. I use the 
SharkPort, which is rather old and outperformed by some of the newer devices 
such as ARMax, which accept a simple USB Flash Drive for save transfers.
* A cheat device. I currently use CodeBreaker. The cheat device is necessary to
bypass the checksum validation performed by Disgaea when you load a save file.
* A program called PS2 Save Builder. This program allows you to dissect the
game save and pull out the actual save data. This can be downloaded from
www.ps2savetools.com or do a Google search on it.
* A lot of patience. Hacking in general can be a hit-or-miss process. If it
doesn't turn out the way you like it at first, don't lose your cool.
===============================================================================
4. EXTRACTING THE SAVE
======================
After you've obtained the above equipment and software, you're ready to start 
hacking. First, you'll need a Disgaea save file on your PS2 memory card. Just 
save the file like you normally would. I highly recommend saving to a different 
slot than you normally save to. If the **** hits the fan and you break your
save, you won't lose your hundreds of hours of play time you've probably racked 
up by now.

In fact, you might find it easier just to use a brand new blank memory card
exclusively for save hacking. This way, you won't get save files confused with 
one another and end up hacking the wrong save.

Now that you have a save file, you need to get the save from your memory card
to your computer's hard drive. This is where your SharkPort, ARMax, etc. comes
in. With the SharkPort, you have a USB cord that connects from your PS2 to
your computer and special software to be run on the PS2 and your computer
simultaneously. With the ARMax, it's a bit easier, because you can simply load
the ARMax and transfer your save to a USB flash drive. For instructions,
consult the manual for your save transfer kit.

Now you have a Disgaea save on your hard drive. Next, you need to use the PS2 
Save Builder. PS2 Save Builder supports virtually every type of save transfer 
kit there is. First, locate the Disgaea save. It might have an extension like
.sps or .npo or something. Open the file using PS2 Save Builder.

Now you'll see three files in the left window pane, and the save game icon in
the right window pane. The file you want is the one called "BASLUS-20666xx".
The xx will vary depending on the ID number of the save. If it's the first or
only save on your memory card, it will be 00. If it's the fifth save it will
be 04. Right-click on that file and hit EXTRACT. You can save it wherever you
want, but I recommend creating a folder just for Disgaea save hacks. Pick the
location and hit SAVE.

Now, you have the actual "meat" of the save. This is the file you're going to
be using your hex editor on.

*** MAKE A BACKUP OF THIS FILE BEFORE YOU DO ANYTHING ELSE!!! *** I can't
stress the importance of backing up your files. One wrong move and your
legendary Level 100 Yoshitsuna with 12 maxed out Gladiators will turn into an
ABC Gum with no specialists, I kid you not. You'll have a reference so that
you can undo your changes or start over if you screw something up.

Now that you have your save file, you can begin your hacking. Open up your hex 
editor, find the BASLUS-20666xx file, and open it up for editing.
===============================================================================
5. CHARACTER HACKING
====================
To my knowledge, there is nothing "dynamic" to a Disgaea save. In other words, 
any offsets I give you should be constant throughout any Disgaea saves you
might be hacking. In the event that there is a discrepancy, please notify me
and send any details you think might be causing the offset to be different.

Anyway, the first offset you're going to hack is at 0x00000BA8. This offset 
marks the beginning of the very first character in your lineup. Chances are, 
that character is Laharl, unless you've been training a Divine Majin or some 
other character and that character is at the beginning of the lineup.

For reference, I recommend that while you hack, have your Disgaea game running
with the exact same save file open. This allows you to verify that any data you 
come across in the save file is indeed correct.

Warning: it's going to get pretty dry from here on out. Try to keep up. I'm a 
hacker, not a teacher, although I will try my best to keep things clear.

At 0x00000BA8 is the EXP value of the first character in your lineup. This is
a 64-bit number. Example: C0F9 C105 0000 0000. Remember that the data here is
Intel byte order, meaning the first byte is low and the second byte is high.
Therefore, FF00 0000 0000 0000 would be 255, not 18374686479671623680. (You
may want to have a hexadecimal calculator available. The built-in Windows
Calculator actually does a decent job here.)

Depending on your hex editor, you may have a window pane that shows what the
value of the cursor number is. In that case, simply highlight the eight bytes
and your hex editor will tell you the value of your EXP. Compare this with
your Disgaea game. If you want to max out your character's EXP, simply set it
to FFFF FFFF FFFF FFFF. The game will compensate the next time you take that
character into battle and you should wind up at Level 9999, with the
appropriate stats and all.

The next few pages of data refer to your character's equipped weaponry and
accessories. For now let's skip this and instead jump to 0x00000ED0. You might
see something like:

826B 8281 8288 8281 8292 828C 0000

What does this mean? This is the name of your character. The numbers I just
gave you translate to "Laharl". Yes, you can now rename Laharl into anything
you want! Since I can't think of anything witty, for now we're going to change
his name to "Harlie", which happens to be Jennifer's pet name for him. Plus,
it also happens to be exactly the same length as Laharl's regular name, so
you won't run into any conflicts there. Here is the hex data for "Harlie":

8267 8281 8292 828C 8289 8285 0000
H    a    r    l    i    e    *end*

If you want to use a different name, see Appendix B for an incomplete list of 
what hex bytes convert to what text characters.

Next is the character's job class, at offset 0x00000EF2. For Laharl's case,
this is Demon Prince:

8263 8285 828D 828F 828E 8140 826F 8292 8289 828E 8283 8285 0000
D    e    m    o    n    *sp* P    r    i    n    c    e    *end*

However, if you've defeated Baal the Lord of Terror, it will be Tyrant:

8273 8299 8292 8281 828E 8294 0000 8292 8289 828E 8283 8285 0000
T    y    r    a    n    t    *end*r    i    n    c    e    *end*

Let's give him a title change, too. Here are the hex values for "Overlord":

826E 8296 8285 8292 828C 828F 8292 8284 0000
O    v    e    r    l    o    r    d    *end*

Again, refer to Appendix B if you want to put something more witty there.

After the names are some unknown bytes that I haven't deciphered yet. Next is
status resistance! Status resistance values are unsigned shorts (16-bit) and
are located at the following offsets:

0x00000F36: Poison
0x00000F38: Sleep
0x00000F3A: Deprave
0x00000F3C: Forget
0x00000F3E: Paralyze

Note that these values take into account class resistance as well as any 
Specialists you have equipped. The maximum effective value is 99 (6300).

After the status resistance values are more unknown bytes, followed by
information about your character's learned skills. To date, I have had no
success in getting the game to accept any changes I make to a character's
learned skills. Apparently, the game dynamically recalculates these values and
rearranges them based on your weapon mastery, character class, and so on.
However, you CAN alter the experience and level of your learned skills. Skill
levels max out at 99. I'm not sure what experience this corresponds to, but I
do know that 50 experience puts you at level 1. If your character is learning
magic through pupils, the EXP value will be less than 50 and the Level will
actually be 255, not 0. I think Level 0 is like an "off" bit for that
particular skill.

Anyway, here are the appropriate offsets for learned skills.

Skill EXP: 4 bytes (32 bits)
0x00000FB0: EXP for Skill #1
0x00000FB4: EXP for Skill #2
0x00000FB8: EXP for Skill #3
.
.
.
0x0000112C: EXP for Skill #96

Actual Skills: 2 bytes (16 bits)
0x00001130: Skill #1
0x00001132: Skill #2
0x00001134: Skill #3
.
.
.
0x000011EE: Skill #96

Skill Levels: 1 byte (8 bits)
0x000011F0: Level for Skill #1
0x000011F1: Level for Skill #2
0x000011F2: Level for Skill #3
.
.
.
0x000012F4: Level for Skill #96

Now the fun part: your character's stat values! In this section, there are 2
different stat values. The first set of stats includes equipment, and the
second set of stats is your "actual" stat value. Editing the first set of
stats is a waste of time because they change immediately upon level up or
adding/removing equipment, but here is the info anyway.

Stat Values including Equipment: 4 bytes (32 bits)
0x00001250: Current HP
0x00001254: Current SP
0x00001258: Maximum HP
0x0000125C: Maximum SP
0x00001260: Attack
0x00001264: Defense
0x00001268: Intelligence
0x0000126C: Speed
0x00001270: Hit
0x00001274: Resistance

Any changes made to the above values (except for Current HP and Current SP)
will revert immediately after performing an attack in battle or altering your
equipment.

The following values are your character's "actual" stats. The game will never
"recompute" these stat values, so any changes you make are considered
permanent.

Actual Stats: 4 bytes (32 bits)
0x00001278: Maximum HP
0x0000127C: Maximum SP
0x00001280: Attack
0x00001280: Defense
0x00001288: Intelligence
0x0000128C: Speed
0x00001290: Hit
0x00001294: Resistance

WARNING: The maximum value for any stat is 2147483648 (VERIFY), or 2^31. After
this value the stat will "roll over". This value should never be reached during 
regular play, however.

After the character's resistance is 32 bytes of unknown data, and then a 4 byte
value containing the character's current Mana:

0x000012B8: Mana

Following the Mana value are some more unknowns, and then the character's base 
stats. The base stats are what you see on the transmigration/create new 
character screen, including both blue and yellow bars. To my knowledge they're 
used only for computing stat gain at level up, and have no impact on 
transmigration.

Base Stats: 1 byte (8 bits)
0x000012E4: Maximum HP
0x000012E5: Maximum SP
0x000012E6: Attack
0x000012E7: Defense
0x000012E8: Intelligence
0x000012E9: Speed
0x000012EA: Hit
0x000012EB: Resistance

After that is about 36 more bytes of unknown data, and then the next character 
record starts at 0x00001370.

Want to hack another character? You can use this formula to determine what 
offset to hack at based on the above offsets for the first character.

ACTUAL OFFSET = BASE OFFSET + 0x07C8 * (CHARACTER NUMBER - 1)

The Character Number is determined by counting down from the top of the roster.
The first character in the roster is Character Number 1, then the next
character is Number 2, and so on.

So, if you wanted to edit the Mana value of Character Number 5, you would use:

ACTUAL OFFSET = 0x000012B8 + 0x07C8 * (5 - 1)
= 0x12B8 + 0x07C8 * 4
= 0x12B8 + 0x1F20
= 0x31D8

This can be quickly verified by comparing the data at 0x000031D8 with the
actual Mana file of Character Number 5 according to your saved game.

The maximum number of characters in your party is 200 (VERIFY).

--------------------------
= STILL TO BE DISCOVERED =
--------------------------
* Transmigration counter
* Number of stored levels
* Mentor/Pupil information
* Character Class and/or Portrait
* Weapon Masteries
* Elemental Affinities
* Aptitude values
* Demon Ranking in the Dark Congress

If you manage to find this data, please email me so I can update the FAQ and
structure libraries with the info.
===============================================================================
6. ITEM HACKING
===============
** This info courtesy of Pyriel from the CMGSCCC Forums **

Item structures are simpler than character structures. They are much shorter
and there are fewer unknown values.

Items can be found equipped on characters, in your Item Bag, or in the
Warehouse.

The following offsets are for Character 1's items:

0x00000BB0: Equipped Weapon
0x00000C78: Equipped Accessory #1
0x00000D40: Equipped Accessory #2
0x00000E08: Equipped Accessory #3

To edit another character's items, simply use the formula from Section 5.

The offset 0x000472C8 points to your stored items. The first 16 items are your 
Item Bag, and the remaining 256 are your Warehouse. Each item consists of the 
following offsets (using Item Bag Item #1 as reference):

Specialists. Each Item has 16 slots for specialists, but the number of 
specialists used depends on the item. The specialists take the following form:

0x000472C8: Item #1 Specialist #1 Level (2 bytes, 16 bits)
0x000472CA: Item #1 Specialist #1 Job Identifier (1 byte)
0c000472CB: Item #1 Specialist #1 Name/Character Class (1 byte)

The specialist Level is a number from 1 to 19999. If the Level is above 9999,
the specialist is counted as Subdued and the actual level is determined by
(UNKNOWN).

The specialist Job Identifier determines the type of Specialist, whether it be
a Gladiator, Marksman, or what have you. Quantity digits are forthcoming.

The specialist Name/Character Class is a number from 0 to 255. Each number 
corresponds to a random monster name and character class.

After the 16 specialists is the item's EXP. Currently, it is unknown what role 
the item's EXP plays in its development.

0x00047308: Item #1 EXP (8 bytes)

After the EXP are two unknown values and then the item's actual stat values.
The actual stat values take into account the item's Level, base stats, and
what Specialists are equipped. These values are (VERIFY) dynamically recomputed
if the item's specialists are moved or the item gains a level.

Item Stats: 4 bytes each
0x00047318: HP
0x0004731C: SP
0x00047320: Atk
0x00047324: Def
0x00047328: Int
0x0004732C: Spd
0x00047330: Hit
0x00047334: Res

Immediately after these stats are the item's base stat values. The base stat
values are initially set when the item is created and take into account the
rarity of the item (normal, rare, or legendary). Also, if the item is leveled
up in the Item World, these values are subject to change depending on whether
Specialists are present at the time that an Item General, King, God, or God 2
is defeated. For additional information, see bend's Item FAQ. It's old but
has very useful information.

Item Base Stats: 2 bytes each
0x00047338: Base HP
0x0004733A: Base SP
0x0004733C: Base Atk
0x0004733E: Base Def
0x00047340: Base Int
0x00047342: Base Spd
0x00047344: Base Hit
0x00047346: Base Res

The next two values, 2 bytes each, determine the item's type and its current 
Level.

0x00047348: Item Type
0x0004734A: Item Level

The Item Type tells the game what kind of item it is, whether it's a Cosmic
Blade, Super Robo Suit, Horse Wiener, etc. The Item Level determines what
level the item is, and whether you can enter the Item World on that level or
level it up any further. It is unknown what the impact on the item's stats is
by changing this value.

0x00047350: Item Rarity (1 byte)

The item Rarity is a value from 0 to 255. If the value is 0-7, it is a
Legendary item. If the value is 8-31, it is a Rare item. Otherwise, it is a
normal item. The item rarity determines what color the item should flash (at
all) and the maximum Level of the item.

0x00047353: Number of Specialist Slots (1 byte)

This is a number from 4 (VERIFY) to 16. Obviously it determines how many 
Specialists can fit on the item. Setting this number above 16 will have adverse 
effects by causing the game to read invalid Specialist data. Altering the 
invalid Specialists will cause damage to the item by altering its base stats, 
current stats, item name, or some other item value.

And finally, you can rename your item.

0x00047363: Item Name (32 bytes)

Again, see Appendix B if you want to rename your item.

Armed with this information, you can proceed to customize every item you have
on hand. If you don't like the Horse Wiener's base stats, you can beef them
up and make them equivalent to that of Crowdia's Beauty. Or you can create 16
maxed Gladiators for your Yoshitsunas, or rename your Super Robo Suit to your
favorite Gundam.

To hack other items, use this formula:

ACTUAL OFFSET = BASE OFFSET + 0x727C8 * (CHARACTER NUMBER - 1)

--------------------------
= STILL TO BE DISCOVERED =
--------------------------
* Bit that causes the blue flashing vice gold
* Item leveling variables mentioned in bend's FAQ
* Item icon (possibly determined by the Type)
===============================================================================
7. UNLOCKED CHARACTER CLASS HACKING
===================================
The info regarding the character classes you have unlocked starts at 0x000003F8
(VERIFY) and ends at 0x00000BA8.

Each structure is 10 bytes long and follows this pattern:

2 bytes: Number of enemies of this class killed (monster units only)
2 bytes: Character class
2 bytes: Unknown
2 bytes: Unknown
2 bytes: Unknown

This repeats until 0x00000BA8. There is no other information currently
available regarding this data structure. See Appendix E for a list of known
good values for the character class.
===============================================================================
8. RESTORING THE SAVE
=====================
Now that you've hacked up a storm, it's time to upload the data back to your 
memory card. Save any changes you made to the BASLUS-20666xx file, then go back 
to the PS2 Save Builder.

Re-open the original transfer file from your save game transfer if necessary.
Now, you want to delete the current BASLUS-20666xx file in the save and replace
it with the one you just hacked. Right-click on the BASLUS-20666xx file in the
left window pane and hit Delete.

After doing this, click on Edit and then Add File. Locate your hacked version
of the BASLUS-20666xx file and add it in. The file must be exactly the same
name as the BASLUS-20666xx file that was already there, or else Disgaea won't
recognize the file. After doing this, click on File and Save As. Save it to
your hard drive, preferably under a new name, then click OK.

Now you want to use SharkPort, ARMax, or whatever you used to get the new save 
back to your memory card. Consult the manual for your save transfer kit to do
so.

Now you have a hacked Disgaea save on your memory card. There's one problem, 
though. Disgaea will not load the save file in its current form. Most games, 
Disgaea included, run a checksum on the file to ensure that it is not corrupted 
before loading the data. Corrupt data in itself will likely not harm your
system, but what we have done with the hex editor has corrupted our file, 
because we did not fix the checksum. Info regarding checksum calculation is 
still unknown. Therefore, we have to use a Cheat Device to bypass the checksum.

The Enable Code for Disgaea built-in to most Cheat Devices will do the job.
However, it may still come back as corrupt when you attempt to load the save.
If so, use the following CodeBreaker code to bypass the checksum:

0E3C7DF2 1853E59E
EE8DCA42 BCBAC7D2

I do not have this code in any other form. If you have some other type of Cheat 
Device and the enable code isn't working for you, you'll have to find some way 
of converting this CodeBreaker code to your particular Cheat Device. 
Unfortunately that is beyond the scope of this FAQ, not to mention I don't have
a clue on how to do it anyway, so you're on your own here.

After inputting the code and loading Disgaea, you may now load your save file.
If all goes well, you will arrive at the Overlord's Castle. Check out any
characters or items you made any changes to and ensure they are what you
wanted. If not, you may have to open up the hex editor again.

The good part is you do not have to use the Cheat Device again if you don't do
any more hacking. When you load the save under the Cheat Device, immediately
save your game, and the checksum will be re-calculated. The new save will load
even without the above code.
===============================================================================
9. CREDITS
==========
Major thanks to Pyriel, who gave me the Item Structure and encouraged my
Disgaea save game editor. The editor is not currently available for download
due to some bugs, though.

Thanks to Atlus for bringing us this awesome Nippon-Ichi game, and Nippon-Ichi
for continuing to make awesome strategy RPGs.

Thanks to JungleJim and bend for their excellent FAQs regarding items and
transmigration.

And finally, thanks to GameFAQs for hosting this FAQ.
===============================================================================
- APPENDIX -
===============================================================================
A. DISGAEA DATA STRUCTURES FOR HEX WORKSHOP
===========================================
If you are using Hex Workshop, you can use these Structure Libraries to make
your life easier. Simply create a text file called "disgaea.hsl" and load it up
in Hex Workshop. Then you can associate offsets with their appropriate
structures, making editing certain values a lot easier.

// Begin Disgaea: Hour of Darkness Data Structure
// Kamek Feb 01, 2005

// Note: "UNKNOWN" values have been compressed into arrays for easier editing
// of known values.

#include "standard-types.hsl"

struct Text
{
	ushort chara[16];
};

struct Specialist
{
 	ushort Level;
 	ubyte Job;
 	ubyte Unknown;
};

struct Item
{
 	struct Specialist Specialists[16];

 	uquad EXP;

 	ulong Unknown;
 	ulong Unknown;

 	ulong HP;
 	ulong SP;
 	ulong Atk;
 	ulong Def;
 	ulong Int;
 	ulong Spd;
 	ulong Hit;
 	ulong Res;

 	ushort HP_base;
 	ushort SP_base;
 	ushort Atk_base;
 	ushort Def_base;
 	ushort Int_base;
 	ushort Spd_base;
 	ushort Hit_base;
 	ushort Res_base;

 	ushort Type;

	ushort Level;

	ulong Unknown;

	ubyte Rarity;
	
	ubyte Unknown;
	ubyte Unknown;
	
	ubyte SpecialistSlots;
	
	ushort Unknown;
	ubyte Unknown;
	ubyte Unknown;
	uquad Unknown;
	ubyte Unknown;
	ubyte Unknown;
	ubyte Unknown;

	struct Text Name;
	
	ubyte Unknown[13];
};

struct StoredItems
{
 	struct Item ItemBag[16];
 	struct Item Warehouse1[128];
 	struct Item Warehouse2[128];
};

struct Character
{
	uquad EXP;

	struct Item Weapon;
	struct Item Etc1;
	struct Item Etc2;
	struct Item Etc3;

	struct Text Name;
	ushort Unknown;
	struct Text Class;
	ushort Unknown;
	ubyte Unknown[34];
	ushort PoisonResistance;
	ushort SleepResistance;
	ushort DepraveResistance;
	ushort ForgetResistance;
	ushort ParalyzeResistance;
	ubyte Unknown[112];
	ulong SkillEXP[96];
	ushort Skills[96];
	ubyte SkillLevel[96];
	ulong HP_current;
	ulong SP_current;
	ulong HP;
	ulong SP;
	ulong Atk;
	ulong Def;
	ulong Int;
	ulong Spd;
	ulong Hit;
	ulong Res;
	ulong HP_actual;
	ulong SP_actual;
	ulong Atk_actual;
	ulong Def_actual;
	ulong Hit_actual;
	ulong Spd_actual;
	ulong Int_actual;
	ulong Res_actual;
	ubyte Unknown[32];
	ulong Mana;
	ulong Unknown;
	ubyte Unknown[12];
	ubyte Unknown[24];
	
	ubyte HP_base;
	ubyte SP_base;
	ubyte Atk_base;
 	ubyte Def_base;
 	ubyte Int_base;
 	ubyte Spd_base;
 	ubyte Hit_base;
 	ubyte Res_base;

	ubyte Unknown[36];
};

// End Disgaea: Hour of Darkness Data Structure
===============================================================================
B. HEX VALUES FOR TEXT CHARACTERS
=================================
The following is a list of known Hex Values and the Text Characters they
correspond to.

Byte order is Intel, as you would enter it into your hex editor.

A: 8260    B: 8261    C: 8262    D: 8263    E: 8264
F: 8265    G: 8266    H: 8267    I: 8268    J: 8269
K: 826A    L: 826B    M: 826C    N: 826D    O: 826E
P: 826F    Q: 8270    R: 8271    S: 8272    T: 8273
U: 8274    V: 8275    W: 8276    X: 8278    Y: 8279
Z: 827A

a: 8281    b: 8282    c: 8283    d: 8284    e: 8285
f: 8286    g: 8287    h: 8288    i: 8289    j: 828A
k: 828B    l: 828C    m: 828D    n: 828E    o: 828F
p: 8290    q: 8291    r: 8292    s: 8293    t: 8294
u: 8295    v: 8296    w: 8297    x: 8298    y: 8299
z: 829A

(space): 8140   (colon): 8146
-: 817C    ': 8166    .: 8144

Other hex values are forthcoming.
===============================================================================
C. HEX VALUES FOR SPELLS/SKILLS
===============================
The following is a list of known Hex Values and the magic spells, weapon
skills,  or monster skills they correspond to.

Byte order is BACKWARDS -- if you are entering these into the hex editor you
will have to put the second byte first (e.g., for Triple Strike, enter 6500
instead of 0065).

These values are courtesy of cmgsccc.com.

FIST ATTACKS
0065 - Triple Strike    0066 - Tiger Charge      0067 - Lion's Roar
0068 - King of Beasts   0069 - Rising Dragon     006A - Big Bang

SWORD ATTACKS
00C9 - Blade Rush       00CA - Hurricane Slash   00CB - Wind Cutter
00CC - Winged Slayer    00CD - Nightsever        00CE - Dimension Slash

SPEAR ATTACKS
012D - Impaler          012E - Sky Lunge         012F - Asteroid Drop
0130 - Avalanche        0131 - Turbulence        0132 - Spear Storm

ARROW ATTACKS
0191 - Poison Arrow     0192 - Dark Flash        0193 - Delta Split
0194 - Sturmhimmel      0195 - Zielregen         0196 - Doppelganger

GUN ATTACKS
01F5 - Tri-Burst        01F6 - Rapidfire         01F7 - Proximal Shot
01F8 - Bullet Storm     01F9 - Totenkreuz        01FA - Inferno

AXE ATTACKS
0259 - Boulder Crush    025A - Skull Splitter    025B - Colossal Fissure
025C - Violent Storm    025D - Graviton Bomb     025E - Calamity Drive

RED MAGIC
02BD - Fire             02BE - Mega Fire         02BF - Giga Fire
02C0 - Omega Fire       02C1 - Tera Fire

GREEN MAGIC
02C7 - Wind             02C8 - Mega Wind         02C9 - Giga Wind
02CA - Omega Wind       02CB - Tera Wind

BLUE MAGIC
02D1 - Ice              02D2 - Mega Ice          02D3 - Giga Ice
02D4 - Omega Ice        02D5 - Tera Ice

STAR MAGIC
02DB - Star             02DC - Mega Star         02DD - Giga Star
02DE - Omega Star       02DF - Tera Star

HEAL MAGIC
0321 - Heal             0322 - Mega Heal
0323 - Giga Heal        0324 - Omega Heal

MISC. MAGIC
0325 - Espoir           032B - Braveheart        032C - Shield
032D - Magic Boost      032E - Magic Wall

?????
032F - Enfeeble         0330 - Armor Break

SCOUT SPECIALS
0385 - Geo Change       0386 - Dark Cannon

DEMON PRINCE/TYRANT (LAHARL) SPECIALS
03E9 - Blazing Knuckle  03EA - Overlord's Wrath  03EB - Meteor Impact

VASSAL SPECIALS
03F3 - Prinny Raid      03F4 - Sexy Beam         03F5 - Chaos Impact

ANGEL (FLONNE) SPECIALS
03FD - Power of Love    03FE - Holy Arrows       03FF - Divine Ray

DEFENDER SPECIALS
0407 - Gordon Spark     0408 - Gordon Punch      0409 - Gordon Blitz

SIDEKICK SPECIALS
0411 - Star Buster      0412 - Cosmic Arrow      0413 - Terminus Omega

FAERIE SPECIALS
07D1 - Petit Flare      07D2 - Demon's Breath
07D3 - Camaraderie      07D4 - Chomper Combo

SPIRIT SPECIALS
07DB - Pixie Magic      07DC - Shock Magic
07DD - Bomb Magic       07DE - Ice Magic

GOLEM SPECIALS
07E5 - Golem Dunk       07E6 - Golem Cannon
07E7 - Psionic Wave     07E8 - Golem Smash

TREANT SPECIALS
07EF - Putrid Breath    07F0 - Stomp-o-rama
07F1 - Pounding Spree   07F2 - Paranoia

WINGED SPECIALS
07F9 - Hell Pepper      07FA - Holy Dust
07FB - Ionize           07FC - Air Assault

DARK KNIGHT SPECIALS
0803 - Power Slice      0804 - Lightning Slash
0805 - Gigantic Slash   0806 - Blade Frenzy

LANTERN SPECIALS
080D - Jackknife        080E - Jack the Ripper
080F - Jack Rush        0810 - Jackpot

GARGOYLE SPECIALS
0817 - Minimize         0818 - Soul Eater
0819 - Cannonball       081A - Eruption

SHADOW SPECIALS
0821 - Fire Dance       0822 - Ice Dance
0823 - Light Dance      0824 - Fire & Ice

UNDEAD SPECIALS
0849 - Zombie Puke      084A - Zombie Twister
084B - Zombie Gatling   084C - Zombie Swarm

NETHER NOBLE SPECIALS
0853 - Spinning Slash   0854 - Darkness Slash
0855 - Earthshaker      0856 - Megaton Crush

TYRANT (BAAL) SPECIALS
085D - Sword Rain       085E - Gran Sword

BEAST SPECIALS
0867 - Stinger Strike   0868 - Beast Rend
0869 - Devour           086A - Beast Ray

SUCCUBUS SPECIALS
0871 - Hip Attack       0872 - Thunderbolt
0873 - Evil Healing     0874 - Flying Sparks

KITKAT SPECIALS
087B - Rapid Kick       087C - Fists of Fury
087D - Mystic Blast     087E - Delta Kick

NOSFERATU SPECIALS
0885 - Chaos Fire       0886 - Chaos Swarm
0887 - Chaos Force      0888 - Chaos Plasma

SUPER ROBOT SPECIALS
0899 - Robo Attack      089A - Robo Crush
089B - Robo Bazooka     089C - Arigato Roboto

PRINNY SPECIALS
08A3 - Prinny Barrage   08A4 - Prinny Dance
08A5 - Prinny Bomb      08A6 - Pringer Beam

RIVAL (PRINNY KURTIS) SPECIALS
08AD - Rocket Punch     08AE - Final Punch
08AF - Nuclear Fusion   08B0 - Pringer Beam

UBER PRINNY SPECIALS
097F - Prinny Barrage   0980 - Prinny Dance
0981 - Prinny Bomb      0982 - Pringer Beam

MID-BOSS SPECIALS
09C5 - Adonic Shot      09CF - Adonic Blast
09D9 - Adonic Fury      09E3 - Adonic Buster

ARCHANGEL SPECIALS
0A0B - Divine Anger     0A0C - Angelic Gospel    0A0D - Holy Lightning

SERAPH SPECIALS
0A15 - Judgment         0A16 - Armageddon

RIVAL (HUMAN KURTIS) SPECIALS
0A1F - Rocket Punch     0A20 - Final Punch       0A21 - Nuclear Fusion

1ST DEFENDER SPECIALS
0A29 - Hero Slash       0A2A - Galactic Power

PRISM RANGER SPECIAL
0A33 - Swift Justice

OVERLORD (PRIERE) SPECIALS
0BB9 - Dragon's Rage    0BBA - Requiem Aeternam 

WITCH SPECIAL
0BC3 - Dark Conjuration

SERPENT SPECIALS
0DAD - Flap Dance       0DAE - Quadra Nosedive
0DAF - Death Drop       0DB0 - Supernova

0DB7 - Flap Dance       0DB8 - Quadra Nosedive
0DB9 - Death Drop       0DBA - Supernova

0DC1 - Flap Dance       0DC2 - Quadra Nosedive
0DC3 - Death Drop       0DC4 - Supernova

0DCB - Flap Dance       0DCC - Quadra Nosedive
0DCD - Death Drop       0DCE - Supernova

0DD5 - Flap Dance       0DD6 - Quadra Nosedive
0DD7 - Death Drop       0DD8 - Supernova

0DDF - Flap Dance       0DE0 - Quadra Nosedive
0DE1 - Death Drop       0DE2 - Supernova

GALACTIC DEMON SPECIALS
0E11 - Magnetic Wave    0E12 - Magnetic Blast
0E13 - Magnetic Field   0E14 - Magnetic Flash

0E1B - Magnetic Wave    0E1C - Magnetic Blast
0E1D - Magnetic Field   0E1E - Magnetic Flash

0E25 - Magnetic Wave    0E26 - Magnetic Blast
0E27 - Magnetic Field   0E28 - Magnetic Flash

0E2F - Magnetic Wave    0E30 - Magnetic Blast
0E31 - Magnetic Field   0E32 - Magnetic Flash

0E39 - Magnetic Wave    0E3A - Magnetic Blast
0E3B - Magnetic Field   0E3C - Magnetic Flash

0E43 - Magnetic Wave    0E44 - Magnetic Blast
0E45 - Magnetic Field   0E46 - Magnetic Flash

DRAGON SPECIALS
0E75 - Bloody Talons    0E76 - Ice Breath
0E77 - Blue Nova        0E78 - Dragonic Furor

0E7F - Bloody Talons    0E80 - Ice Breath
0E81 - Blue Nova        0E82 - Dragonic Freeze

0E89 - Bloody Talons    0E8A - Fire Breath
0E8B - Red Nova         0E8C - Dragonic Flare

0E93 - Bloody Talons    0E94 - Fire Breath
0E95 - Red Nova         0E96 - Dragonic Flare

0E9D - Bloody Talons    0E9E - Ice Breath
0E9F - Blue Nova        0EA0 - Dragonic Flare

0EA7 - Bloody Talons    0EA8 - Ice Breath
0EA9 - Red Nova         0EAA - Dragonic Flare

GREAT WYRM SPECIALS
0ED9 - Fiery Dance      0EDA - Fiery Column
0EDB - Fiery Roar       0EDC - Fiery Burst

0EE3 - Raging Dance     0EE4 - Raging Column
0EE5 - Raging Roar      0EE6 - Raging Burst

0EED - Frigid Dance     0EEE - Frigid Column
0EEF - Frigid Roar      0EF0 - Frigid Burst

0EF7 - Astral Dance     0EF8 - Astral Column
0EF9 - Astral Roar      0EFA - Astral Burst

0F01 - Diabolic Dance   0F02 - Diabolic Column
0F03 - Diabolic Roar    0F04 - Diabolic Burst

0F0B - Fiery Dance      0F0C - Fiery Column
0F0D - Fiery Roar       0F0E - Fiery Burst
===============================================================================
D. HEX VALUES FOR SPECIALIST JOBS
=================================
(COMING SOON)
===============================================================================
E. HEX VALUES FOR CHARACTER CLASSES
===================================
All of the following hex values are considered "valid" even though I may not 
know exactly what produces what. There are probably some missing values, too. 
However, invalid values will cause your character creation/transmigration 
screens to freeze.

Byte order is Intel, as you would enter it into your hex editor.

---------------------
= KNOWN GOOD VALUES =
---------------------
The following are verified values and are known to work.

FAERIE CLASSES
D007 - Hobbit           D107 - Puck              D207 - Brownie
D307 - Koropokkuru      D407 - Lilliput          D507 - Phooka

SPIRIT CLASSES
DA07 - Ghost            DB07 - Boggart           DC07 - Specter
DD07 - Wraith           DE07 - Fiend             DF07 - Phantom

GOLEM CLASSES
E407 - Golem            E507 - Spriggan          E607 - Ekim
E707 - Djinn            E807 - Ullikummi         E907 - Gogmagog

TREANT CLASSES
EE07 - Man-Eater        EF07 - Oakrot            F007 - Treant
F107 - Zakkum           F207 - Erl King          F307 - Yggdrasil

WINGED CLASSES
F807 - Imp              F907 - Gremlin           FA07 - Agathion
FB07 - Alp              FC07 - Incubus           FD07 - Daemon

DARK KNIGHT CLASSES
0208 - Killer Armor     0308 - Dark Knight       0408 - Dullahan
0508 - Avenger          0608 - Demonic Suit      0708 - Executioner

LANTERN CLASSES
0C08 - Pumpkin          0D08 - Decoy             0E08 - Mandrake
0F08 - Scarecrow        1008 - Jack              1108 - Halloween

GARGOYLE CLASSES
1608 - Gargoyle         1708 - Guardian          1808 - Nebiros
1908 - Balrog           1A08 - Seth              1B08 - Pazuzu

SHADOW CLASSES
2008 - Nightmare        2108 - Shade             2208 - Lich
2308 - Chernobog        2408 - Death             2508 - Thanatos

SERPENT CLASSES
2A08 - Serpent          2B08 - Mizuchi           2C08 - Sea Dragon
2D08 - Rahab            2E08 - Leviathan         2F08 - Midgardsorm

GALACTIC DEMON CLASSES
3408 - Cyclops          3508 - Sentinel          3608 - Nataku
3708 - Talos            3808 - Ravana            3908 - Argus

DRAGON CLASSES
3E08 - Dragon           3F08 - Fafnir            4008 - Nidhogg
4108 - Azhi Dahaka      4208 - Tiamat            4308 - Bahamut

UNDEAD CLASSES
4808 - Zombie           4908 - Ghoul             4A08 - Corpse
4B08 - Ghast            4C08 - Wight             4D08 - Zombie King

NETHER NOBLE CLASSES
5208 - Brute            5308 - Death Boar        5408 - Minotaur
5508 - Humbaba          5608 - Archdemon         5708 - Behemoth

BEAST CLASSES
6608 - Manticore        6708 - Nue               6808 - Myrmecoleo
6908 - Chimera          6A08 - Tao Tieh          6B08 - Sphinx

SUCCUBUS CLASSES
7008 - Empusa           7108 - Lilim             7208 - Succubus
7308 - Carmilla         7408 - Hecate            7508 - Lilith

KITKAT CLASSES
7A08 - Nekomata         7B08 - Cait Sith         7C08 - Werecat
7D08 - Tailring         7E08 - Elbacky           7F08 - Bastet

NOSFERATU CLASSES
8408 - Vampire          8508 - Strigoi           8608 - Neuntoter
8708 - Varcolaci        8808 - Nosferatu         8908 - Unholy King

GREAT WYRM CLASSES
8E08 - Efreet           8F08 - Shaitan           9008 - Marid
9108 - Flamberg         9208 - Surt              9308 - Kagutsuchi

---------------------
= UNVERIFIED VALUES =
---------------------
The following identifier values were inferred using existing save data and have 
not been verified.

EDF SOLDIER CLASSES
7E04 - Recruit          7F04 - Officer           8004 - Cyborg
8104 - Psi-Soldier      8204 - Space Police      8304 - Space Marine

CLERIC (MALE) CLASSES
6004 - Cleric           6104 - Priest            6204 - Bishop
6304 - Sage             6404 - Prophet           6504 - Savior

THIEF CLASSES
9204 - Rogue            9304 - Thief             9404 - Bandit
9504 - Prowler          9604 - Raider            9704 - Space Pirate

ANGEL CLASSES
8804 - Angel            8904 - Angel Cadet       8A04 - Angel Soldier
8B04 - Crusader         8C04 - Avenger           8D04 - Paladin

SCOUT CLASSES
7404 - Scout            7504 - Surveyor          7604 - Ranger
7704 - Strider          7804 - Geo Master        7904 - Lord

CLERIC (FEMALE) CLASSES
6A04 - Cleric           6B04 - Priest            6C04 - Bishop
6D04 - Sage             6E04 - Prophet           6F04 - Savior

MAGE CLASSES
5604 - Red Mage         5704 - Green Mage        5804 - Blue Mage
5904 - Star Mage        5A04 - Prism Mage        5B04 - Galaxy Mage

------------------
= UNKNOWN VALUES =
------------------
The following values are valid, but it is unknown which classes they correspond 
to.

4F04 - ?????            5004 - ?????             5104 - ?????

320A - ?????            330A - ?????             340A - ?????
350A - ?????            360A - ?????             370A - ?????

0100 - ?????            0200 - ?????             0300 - ?????
0400 - ?????            0500 - ?????

0104 - ?????            0A0A - ?????             140A - ?????
1E0A - ?????            280A - ?????             5C08 - ?????
6009 - ?????            6A09 - ?????             7409 - ?????
7E09 - ?????            9808 - ?????             A708 - ?????
A808 - ?????            B80B - ?????             C20B - ?????
C409 - ?????            CE09 - ?????             D809 - ?????
E209 - ?????            F203 - ?????

The following are classes for which there should be identifier values, but
have  not been discovered or are uncertain. Some of the above values may fit
into some  of the blanks below.

SKULL CLASSES
???? - Red Skull        ???? - Green Skull       ???? - Blue Skull
???? - Star Skull       ???? - Prism Skull       ???? - Galaxy Skull

ARCHER CLASSES
???? - Archer           ???? - Sniper            ???? - Striker
???? - Valkyrie         ???? - Ace Archer        ???? - Freischutz

RUNE KNIGHT CLASSES
???? - Knight           ???? - Vanquisher        ???? - Rune Knight
???? - Chaos Knight     ???? - High Knight       ???? - Space Knight

RONIN CLASSES
???? - Ronin            ???? - Samurai           ???? - Bushi
???? - Kengo            ???? - Blademaster       ???? - Shogun

NINJA CLASSES
???? - Ninja            ???? - Adept Ninja       ???? - Elite Ninja
???? - Shadow Ninja     ???? - Master Ninja      ???? - Shinobi

MAJIN CLASSES
???? - Majin            ???? - Mega Majin        ???? - Giga Majin
???? - Omega Majin      ???? - Tera Majin        ???? - Divine Majin

WARRIOR (FEMALE) CLASSES
???? - Warrior          ???? - Battler           ???? - Centurion
???? - Champion         ???? - Hero              ???? - Galactic Hero

WARRIOR (MALE) CLASSES
???? - Warrior          ???? - Battler           ???? - Centurion
???? - Champion         ???? - Hero              ???? - Galactic Hero

MONK (FEMALE) CLASSES
???? - Brawler          ???? - Pugilist          ???? - Fighter
???? - Black Belt       ???? - Wushu Master      ???? - Eternal Fist

MONK (MALE) CLASSES
???? - Brawler          ???? - Pugilist          ???? - Fighter
???? - Black Belt       ???? - Wushu Master      ???? - Eternal Fist

PRINNY CLASSES
???? - Pvt. Prinny      ???? - Cpt. Prinny       ???? - Gen. Prinny
???? - Prinny King      ???? - Prinny God
???? - Mother Prinny    ???? - Rival (Kurtis)

STORY CHARACTER CLASSES
???? - Demon Prince     ???? - Vassal            ???? - Angel (Flonne)
???? - Defender         ???? - Sidekick          ???? - Super Robot
???? - Rich Demon       ???? - Demon Sire        ???? - Tyrant (Laharl)

SECRET CHARACTER CLASSES
???? - Overlord (Priere)               ???? - Witch

PRISM RANGER CLASSES
???? - Prism Ranger (Red)              ???? - Prism Ranger (Blue)
???? - Prism Ranger (Yellow)           ???? - General
???? - Defender? (Lt.Grey)             ???? - Defender? (Dk.Grey)

MID-BOSS CLASSES
???? - Mid-Boss (1st)   ???? - Mid-Boss (2nd)    ???? - Mid-Boss (3rd)
???? - Mid-Boss (4th)

ENEMY CLASSES
???? - Demonslayer      ???? - Rival (Human Kurtis)
???? - Tyrant (Baal)    ???? - Uber Prinny
???? - Alt. Overlord    ???? - 1st Defender
???? - Archangel        ???? - Seraph
???? - Item God         ???? - Item God 2

MISC. CLASSES
???? - (Pleinair)
===============================================================================
END OF FILE.
===============================================================================