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