hide results

    Save State Hacking Guide by Tortoise262

    Version: 1.00 | Updated: 10/18/07 | Search Guide | Bookmark Guide

    Shining Force 2 Savestate Hacking Guide (version 1.00)
    by David E. Heinz (Tortoise262)
    Written on October 17, 2007
    Questions? Comments? Anything to add?
    E-mail me at tortoise262@yahoo.com and make sure the subject line says
    something about SF2, otherwise I will delete it.
    | INTRO |
    I know that there are already two hacking guides to this game, so you may be
    wondering why I would add a third one. That's simple. There are a couple of
    things that stufff and taleden left out. Honestly, stufff did a fine job and
    I don't want to upstage him. I hacked this game long before I even knew that
    there were hacking guides on the internet, and one of the things I found was
    how to make characters fly. I emailed stufff about this several years ago, but
    he never replied or updated his guide and I long since forgot about it. Well
    I'm taking matters into my own hands now. The other two points that this guide
    will touch up on are a character's condition and his coordinates on the battle
    grid. In short, I do not intend to repeat what was already said by these two
    users, but to add a few more options.
    I am not going to go into details about how to edit save states, and I am not
    going to list offsets for any character other than BOWIE. It's easy enough to
    find the corresponding offsets for the other characters, just add 38 (56). That
    brings me to my final point. Any number that I mention will be in hexadecimal
    unless otherwise noted. Where appropriate, I may include the decimal equivalent
    in parentheses. Also note that this game uses Big Endian format, which means
    that the decimal number 256 will be expressed using two bytes as "01 00" as
    opposed to "00 01"
    Now, on to business...
    Your hex editor should be displaying f (16) values in each row. This will make
    finding the right offsets simple. I find it helps to visualize it like this. If
    you want, get out a piece of graph paper and a T-square and draw the following
    chart, replacing the letters with an abbreviation or perhaps a little picture
    of what the letters represent. Or just draw some sloppy squares on a some spare
    stationery you stole from the office where you work, I don't care.
    Odd-numbered characters (BOWIE, CHESTER, KAZIN, ...)
    (BOWIE)     offset = 10C78------->| A | A | A | A | A | A | A | A |
    +---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+
    | A | A | B | C | D | D | E | E | | F | G | H | H | H | H | H | H |
    +---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+
    | H | H |   |   |   |   | ? | ? | |   | I |   | I |   | I |   | I |
    +---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+
    | J | J | J | J | K*| K*| L*| L*| | M | N*| O | O |   |   | P | P |
    +---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+
    Even-numbered character (SARAH, JAHA, SLADE, ...)
    +---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+
    | A | A | A | A | A | A | A | A | | A | A | B | C | D | D | E | E |
    +---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+
    | F | G | H | H | H | H | H | H | | H | H |   |   |   |   | ? | ? |
    +---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+
    |   | I |   | I |   | I |   | I | | J | J | J | J | K*| K*| L*| L*|
    +---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+
    | M | N*| O | O |   |   | P | P |
    *: This is an area not covered by an existing save state guide for this game
    | (A) Character's name |
    The character's name in ASCII. Most hex editors will allow you to see/edit the
    ASCII on the right-hand side of the hex values, making it easy to find the
    character you want to edit.
    | (B) Class |
    See stufff's guide for values.
    | (C) Level |
    | (D) Max HP |
    |  (E) Current HP   |
    This value will reset to equal Max HP after a battle as long as it's not 0.
    | (F) Max MP |
    | (G) Current MP |
    This value will reset after a battle.
    | (H) Ability Scores |
    Each pair is a different ability. The first is ATT, then DEF, AGI, MOV
    The first number in each pair is the base score.
    The second number is the effective score including equipment and magical buffs
    (BOOST, ATTACK, and SLOW). It will be recalculated at the end of the
    character's turn, so if you want a permanent change, then change the base value
    (first number in the pair)
    When the character is promoted, MOV is reset to the default for the new class
    (Don't waste your Running Pimento!)
    | (?) 03? |
    I have no idea what this is for, but I just wanted to point out that for most
    characters, both values are 03. I haven't thought of any significance of that,
    | (I) Items |
    See stufff's guide for values.
    Add 80 (128) to equip.
    As for the value preceding each item, I've never seen it be anything but 00.
    My theory is that the programmers left the space available in case they needed
    to add more than 80 (128) items. Or perhaps it was an "equipped" boolean until
    they decided to use the +80 method.
    | (J) Spells |
    See stufff's guide for values. There are some really neat spells you get from
    dummy values, so check it out!
    | (K) Condition |
    These two bytes are actually a bitmap. Instead of thinking of it as a 4-digit
    hex number, think of it as a 16-digit binary number, or a row of 16 light
    0 0 0 0   0 0 0 0       0 0 0 0   0 0 0 0
      A   B     S   S         A   M     C P P
      t   o     l   i         s   u     u o a
      t   o     o   l         l   d     r i r
      a   s     w   e         e   d     s s a
      c   t         n         e   l     e o l
      k             c         p   e     d n y
                    e             d       e z
                    d                     d e
    Maybe you'll understand it better this way:
        00 00 is normal status.
    Add 00 01 for Paralyzed
    Add 00 02 for Poisoned
    Add 00 04 for Cursed
    Add 00 10 for Muddled
    Add 00 40 for Asleep
    Add 01 00 for Silenced
    Add 04 00 for Slow
    Add 10 00 for Boost
    Add 40 00 for Attack
    Some conditions seem to be covered by multiple switches, and I don't know why.
    I omitted repeats. At the end of the character's turn, the game recalculates
    whether or not he is cursed based on his equipment. Buffs such as BOOST,
    ATTACK, and SLOW have a specific duration of 3 turns. There must be a "turns
    left" value for these buffs somewhere, but I haven't found it. Also, they
    gradually decrease, but the magnitude of the effect is probably a function of
    the "turns left" value.
    | (L) Coordinates |
    This is the position of the character on the battle grid.
    The first number is the horizontal x-axis.
    The second number is the verticle y-axis.
    The upper-left corner of the map is coordinate 01 01. Count over from there.
    Any living character with coordinates on the playing field will be included in
    the turn sequence, even if he is not in your party or not active. This means
    that you can fight with all the characters you want! Just be warned that if
    there are too many sprites on the battle field, then the graphics will start
    getting screwy. I was excited when I read taleden's guide on how to set who is
    in your party and who is active, but it still didn't allow you to fight with
    more than 12 characters. Now you can!
    I did a lot of playing around with this, and there are a couple of things to
    point out. Changing the character's coordinates allows him to be targeted on
    the new square, and his flashy movement squares will generate from the new
    spot, but he will still act as if he's on the spot where his sprite is. The
    position of his sprite is somewhere else in the save state. If he can't reach
    his new flashy squares, he cannot move! Sucks, right?
    Now for the good news! When the game goes to the action screen (when someone
    attacks, casts a spell, or uses an item) and comes back, it will redraw the
    map and place your character's sprite based on the values at these offsets!
    Have some fun!
    | (M) Experience |
    | (N) Mobility |
    Ahhhh... Finally, the whole reason I wrote this guide. When going back to
    find the offset for mobility, I stumbled upon the condition and coordinates
    offsets, but this is the whole reason I even did anything.
    sorted by class...
    ARCH 80
    BDBT 50
    BDMN 50
    BRGN 40
    BRN  10
    BWNT 90
    GLDT 10
    GLM  10
    HERO 10
    KNTE 20
    MAGE B0
    MMNK 10
    MNST 60
    NINJ 30
    PGNT 50
    PHNK 60
    PHNX 50
    PLDN 20
    PRST C0
    RBT  10
    RDBN 10
    RNGR 90
    SDMN 10
    SNIP 80
    SORC B0
    THIF 10
    TORT 30
    VICR C0
    WARR 10
    WFBR 30
    WFMN 30
    WIZ  B0
    sorted by value...
    20 = KNTE, PLDN
    40 = BRGN
    60 = MNST, PHNK
    80 = ARCH, SNIP
    90 = BWNT, RNGR
    B0 = MAGE, SORC, WIZ
    C0 = PRST, VICR
    What's the significance? Some classes fly while others benefit from terrain
    with increased defense. For a full explanation check here:
    Honestly, I think this person is overcomplicating a very simple issue, but
    the main reason I put that link there is for the chart. I'm not sure that it's
    100% accurate, since mobility is based on class and nothing else, but it should
    be pretty close.
    Remember that when a character is promoted, his mobility is automatically
    changed to the default value of the new class, so you may have to change it
    Wanna have some fun? Try giving BOWIE the ability to fly, since he will remain
    on the same square once the battle ends. By doing this, you can get the
    treasures in Mitula's shrine and the prism flower garden. Also try sneaking
    behind Galam castle during battle #6. Just remember that if you end the battle
    on a space where you'll get stuck, you'll have to reset the game.
    You can also try some values that don't match up with character classes. Here
    are some that I've tried:
    70 = Can't move, but land effect is 25%. Hmm... maybe this is the value for
         swimming creatures like Kraken?
    D0 = Huh? 6 movement points per square? OUCH!
    E0 = Crazy! It seems like it's harder to walk on path than on grass! Also,
         defense boost on squares that are normally 0.
    F0 = This one is really weird, and I didn't bother trying to understand it any.
    | (O) Kills |
    | (P) Defeats |
    Legal Mumbo Jumbo
    Feel free to distribute this guide in any form, electronic or otherwise, but it
    may not be altered in any way.

    View in: