===============================================================================
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.
===============================================================================