hide results

    Hacking Guide by Thundergod

    Version: 3.4 | Updated: 06/11/01 | Printable Version | Search Guide | Bookmark Guide

    Super Mario RPG Save State Hacking Guide
    Usable with the ZSNES emulator (.zst style save states)
    Written by Thundergod (dragon_god_inferno@yahoo.com)
    
    Version 1.0: First draft, all character information.
    Version 2.0: Added all equipment/item modifier digits and non-character 
    offsets.
    Version 2.1: Corrected a few errors.
    Version 2.2: Added the maximums of the stats (Coins, Frog Coins, Flower 
    Points, and HP) for easy reference.
    Version 3.0: Added an extra help section, since I received so many e-mails 
    asking how to do this.
    Version 3.1: Changed the layout slightly, for easier reading, and added a 
    special note.
    Version 3.2: Added an explanation of offsets.
    Version 3.3: Minor corrections made.
    Version 3.4: More minor changes.
    
    Unpublished work Copyright 1999 Thundergod
    
    This FAQ is for private and personal use only.  It can only be reproduced 
    electronically, and if placed on a web page or site, may be altered as long 
    as this disclaimer and the above copyright notice appears in full.  This FAQ 
    is not to be used for profitable/promotional purposes; this includes being 
    used by publishers of magazines, guides, books, etc. or being incorporated 
    into magazines, etc. in ANY way. This FAQ was created and is owned by me, 
    Thundergod <dragon_god_inferno@yahoo.com>. All copyrights and trademarks are 
    acknowledged that are not specifically mentioned in this FAQ.  Please give 
    credit where it is due.
    
    Thanks go to:
    
    Ragnarosen (ragnarosen@hotmail.com) for the form of the following paragraph, 
    and for the section on hexadecimal.
    Kao Megura (kmegura@yahoo.com) for the copyright statement.
    
    To download ROMs and emulators for all systems, go to www.pe2000.net.
    
    To alter the statistics of your characters through hacking into your save 
    state (or .zst file), you'll need to go to Break Point Software 
    (http://www.bpsoft.com) and download a program called "Hex Workshop." Once 
    you're finished downloading and the program is finished running SETUP.EXE 
    automatically, open Hex Workshop and use it to open any Super Mario RPG .zst 
    files you may have.
    
    NOTE: This Hacking Guide was designed for use with the ZSNES emulator, and 
    was hacked with Break Point Software's Hex Workshop. This guide will not work 
    with any other programs, as each one works with the save states differently.
    
    -----------------------------------------------------------
    
    OFFSETS:
    
    Most of the questions I get anymore have to do with offsets  what are they, 
    how do I tell what I'm editing, I don't understand hacking in general, etc.  
    As far as I am concerned, the help Section is as thorough is it is going to 
    get.  The only way I could explain it any better would be to point at the 
    screen and say, "See that there?  That's what you need to change!"  Since I 
    can't do that, you'll just have to be on your own if you need any help more 
    detailed than what I have included below.
    
    If you REALLY cannot figure out offsets and hacking on your own, read the Hex 
    Workshop help file.  For the best explanation (with pictures), open the help 
    file and click on the Find tab.  Search for offset, click on the first option 
    (there should be four), and click on "How to Hex Edit" in the box below.  
    Read over that very carefully, and you should have no trouble with hacking 
    and finding offsets after that.  If you STILL do not understand, then odds 
    are hacking is, quite seriously, not for you.  If you have reached this stage 
    and do not understand, do not e-mail me, for I will not be able to help you.  
    Do not ask me to hack files for you; I will ignore any request to do so.
    
    -----------------------------------------------------------
    
    Help!  Answers for commonly asked questions:
    
    You don't use a cartridge in the SNES for this process.  Have you heard of 
    emulation?  An emulator is a program on your PC (or Mac) that you can use to 
    play the games you have.  First, you need to download an emulator (ZSNES is 
    the best, in my opinion) and the Super Mario RPG ROM.
    
    Once you have both, load up the ROM in your emulator.  If you are using 
    ZSNES, press F2 to save the game's state.  This will make a copy of that 
    EXACT moment in the game, so when you load the state (F4) it will reappear 
    right at that point.  Now that you have a save state file (.zst for ZSNES), 
    load up the Hex Workshop program, load the save state, and hack away!
    
    This can only be done on the computer, when you are using an emulator (like 
    ZSNES) and ROMs (in this case, Super Mario RPG.)  Go to www.pe2000.net for 
    ROMs, emulators, and how to use them.  If you already know, and/or are 
    already using an emulator, then move on to the next paragraph.  Otherwise, 
    get them so that you can follow the rest of this.
    
    Once you are using an emulator, you may have found out how to use save 
    states.  Basically, save states save all the details of your game at that 
    exact moment.  Thus, you can use it more often, and faster, than regular 
    saving.  For example, if you want to save your state right before making a 
    choice (like a fork in the road,) if you choose the wrong path, you can just 
    load up your save state and choose again.
    
    At any rate, to begin hacking, go to the Breakpoint software homepage 
    (www.bpsoft.com) and download a copy of Hex Workshop.  Load up your favorite 
    emulator (whatever that may be) and make a save state.  A ZSNES save state 
    will have the same name as the ROM, and will have the file extension .ZST.  
    For ZSNES (the best emulator , in my opinion) press F2 to save a state, and 
    F4 to load a state.  Next, load up Hex Workshop and load the save state (ex: 
    smrpg.zst)  Use the "go to" command, which should be under Edit, to got to 
    the offset you are looking for.  For example, if the offset is 90B4, type 
    90B4 and press enter, and it will take you right to it.
    
    Keep in mind that this all uses the hexadecimal system, which means that not 
    only is there 0 - 9, but also A - F.  A = 10, B = 11, and so on.  This is 
    called hexadecimal because there are 16 numbers instead of ten.
    
    So, let's say that offset 24041 is the offset for speed, and you want speed 
    to be at max (255, FF in hexadecimal).  Use "go to" to go to offset 24041, 
    and then type in FF.  Next, save the data, and open the emulator again.  Load 
    the state, and voila! the character's speed will be at 255.  Note that you 
    can make as many changes as you want before reloading the state (not just 
    one, as in the example), and that you should close Hex Workshop before 
    reloading the state.
    
    There is no lv 99 in SMRPG.  Lv 30 is the max.  The best way to do this would 
    be to change the exp to max.  I may have already said this in the guide, but 
    I'll say it again here:
    
    The max exp you can get is 9999.  This amount is what is needed to get you to 
    lv 30.  However, because of the way it was programmed, the game will not 
    allow any more level gains at two points: when a character has 9999 exp or is 
    on lv 30, and both of those conditions usually happen at the same time.  To 
    get to lv 30 most easily, set your exp to 9995 or something that can be 
    gained in one or two fights.
    
    To find a particular offset easily, use the "go to" command in the edit menu 
    (I think).  Remember, because of the hexadecimal system you can also enter 
    letters from A to F.  For example, if the offset is 2041A, use "go to" and 
    type in 2041A.  The program will take you right to it!  Also, somewhere on 
    the screen (bottom right corner I think) a small box will say what offset you 
    are currently on (ex. Offset: 2041A).
    
    Now for the entering of values.  Lets say you want to change Mario's attack 
    to 99 (the max is 255).  To do that, go to the offset that changes attack (I 
    forget the number) and type in two number (or letters from A to F)  The 
    hexadecimal system is hard to grasp at first.  In the 99 example, 99 become 
    63 in hexadecimal form.  In decimal (or standard) form, the base is ten.  
    This means that for a number (say 1429) each digit is multiplied by an 
    increasing power of ten.  For 1429, it looks like this:
    
    (9*1)+(2*10)+(4*100)+(1*1000) or (9*10^0)+(2*10^1)+(4*10^2)+(1*10^3)
    
    with the carat (^) referring to the power of the number.  If you already know 
    how to work with powers, I  apologize for repeating this basic information.  
    As you can see, the powers of the digits increase at we go along.  In 
    hexadecimal, the base is 16, not 10, so there are a few changes.  Here's what 
    1429 would look like in hexadecimal:
    
    (9*1)+(2*16)+(4*256)+(1*4096) or (9*16^0)+(2*16^1)+(4*16^2)+(1*16^3)
    
    Thus, 63 in hexadecimal equals 99 in decimal because (3*1)+(6*16) equals 99.  
    The highest number you can get with one offset is 255 (FF in hexadecimal).
    
    Two offset changes are much harder, because the number that you are trying to 
    change is broken up into two pieces.  For these numbers, refer to the list of 
    useful numbers at the beginning of the guide.  For example, input E703 to get 
    999 (great for HP and money) and 0F27 to get 9999 (good for exp, but modify 
    it slightly).  Thus, if the two offsets for exp are 2041C and 2041D, type in 
    0F at offset 2041C and 27 at offset 2041D.  Keep in mind that the first 
    offset controls the lower numbers (up to 255) so if you change that by one 
    you will change the number by one.  However, the second offset controls the 
    larger numbers, so a change of one might change the number by 100 or more.  
    If you want, say, 9995 exp, lower the first offset from 0F to 0C, which is 
    four numbers lower.
    
    -----------------------------------------------------------------------------
    ---
    
    Those new to hex and hex editors can read the following:
      - Typical hex editors display a file with "offsets" on the left of the
    screen, "hex values" in the middle, and the "printed garbage" on the right
    of the screen.
      - Offsets are the addresses. It may appear like this: 00000000
      - Hex values are the values. They may appear like this: E6 03 20 20 FF
      - The printed garbage is there only so humans can look at it. It's not
    very pretty; it won't help you in most cases; don't worry about it.
      - This guide will represent the offsets in this format: #B9
      - The last number (0-9, A-F) in an offset is the COLUMN you need to go
    to. So for the offset of #B9, go to the line "000000B0" and the 9th column
    to the right.
    
    -----------------------------------------------------------------------------
    ---
    
      - For the different offsets, here's a Quick List of the most commonly
    used values:  
    
    HEX VALUE       DECIMAL VALUE           USES
    -----------------------------------------------------------------------
    "63"            for "99"        used for levels, item quantities
    "FF"            for "255"       used for statistics
    "E7 03"         for "999"       used for HP, Max HP, statistics
    "0F 27"         for "9999"      used for HP, Max HP
    "FF FF"         for "65535"     used for HP, Max HP
    "7F 96 98"      for "9,999,999" used for money or experience
    
    -----------------------------------------------------------------------------
    ---
    
    NOTE: For the two- or three-column HEX VALUES ("E7 03"), the numbers must
    be entered "backward" as shown above to work properly.
        - When saving large numbers to computer language, the order of the hex
    values are reversed.  If you open Windows Calculator and enter "999" in
    decimal form and convert it to hexadecimal form, it will show "3E7" (note
    that Calculator will remove any leading zeros).  To use this multi-column
    hex value, add any necessary leading zeros (in this case, in front of the
    "3") to make even pairs ("03 E7").  Put the number pairs in reverse order
    ("E7 03") in the smrpg.zst files.
        - THIS DOES NOT MEAN TO REVERSE THE VALUES!  "03 E7" must be entered
    as "E7 03", not "30 7E"!  For the basic rule of thumb, number pairs are
    entered like this: #2 #1 (or #3 #2 #1 for very large numbers)
    
    -----------------------------------------------------------
    
    Equipment: 20477  20494
    Items: 20495  204B1 (204B2 is the trash can, so change at your own risk)
    Special Items: 204B3  204C1
    Coins: 204C2, 204C3
    Current Flower Points: 204C4 (99 max)
    Maximum Flower Points: 204C5 (99 max)
    Frog Coins: 204C6, 204C7 (999 max)
    Player Name: 204C8  204CF
    
    
    CHARACTER STATISTICS:
    
    Mario:
    
    Level: 20413
    Current HP: 20414, 20415
    Maximum HP: 20416, 20417
    Speed: 20418
    Attack: 20419
    Defense: 2041A
    M. Attack: 2041B
    M. Defense: 2041C
    Exp: 2041D, 2041E
    Equipped Weapon: 2041F
    Equipped Armor: 20420
    Equipped Accessory: 20421
    Technique List: 20423
    
    Toadstool:
    
    Level: 20427
    Current HP: 20428, 20429
    Maximum HP: 2042A, 2042B
    Speed: 2042C
    Attack: 2042D
    Defense: 2042F
    M. Attack: 20430
    M. Defense: 20431
    Exp: 20432, 20433
    Equipped Weapon: 20434
    Equipped Armor: 20435
    Equipped Accessory: 20436
    Technique List: 20438, 20439
    
    Bowser:
    
    Level: 2043B
    Current HP: 2043C, 2043D
    Maximum HP: 2043E, 2043F
    Speed: 20440
    Attack: 20441
    Defense: 20442
    M. Attack: 20443
    M. Defense: 20444
    Exp: 20445, 20446
    Equipped Weapon: 20447
    Equipped Armor: 20448
    Equipped Accessory: 20449
    Technique List: 2044C
    
    Geno:
    
    Level: 2044F
    Current HP: 20450, 20451
    Maximum HP: 20452, 20453
    Speed: 20454
    Attack: 20455
    Defense: 20456
    M. Attack: 20457
    M. Defense: 20458
    Exp: 20459, 2045A
    Equipped Weapon: 2045B
    Equipped Armor: 2045C
    Equipped Accessory: 2045D
    Technique List: 20461
    
    Mallow:
    
    Level: 20463
    Current HP: 20464, 20465
    Maximum HP: 20466, 20467
    Speed: 20468
    Attack: 20469
    Defense: 2046A
    M. Attack: 2046B
    M. Defense: 2046C
    Experience: 2046D, 2046E
    Equipped Weapon: 2046F
    Equipped Armor: 20470
    Equipped Accessory: 20471
    Technique List: 20475, 20476
    
    Notes:
    
    The five main stats (speed, attack, etc.) that can be altered are the base 
    stats.  Any bonuses from weapons are added during the game, and are not 
    included here.  The maximum value for the base stats is 255, or FF in 
    hexadecimal.  Maximum HP is 999.
    
    The experience number is the total experience of the character, and the 
    experience needed to reach the next level is derived from that.  If you input 
    a value greater than of the needed experience, after one fight the 
    character's level will raise to whatever it should be with that amount of 
    experience.  However, if you input 9999 (0F 27 in hexadecimal) the game stops 
    keeping track of experience, so the character will gain no levels.
    
    Similarly, changing the level stat will only raise the amount of needed 
    experience, delaying the next level up, without giving the character the 
    bonuses and techniques for the levels that were skipped over.  Also, if the 
    character's level is set to 30, the game stop keeping track of experience, 
    and the character will gain no levels.  In short, changing the level stat is 
    a bad idea.
    
    I advise against messing with the technique lists, as what tests I have done 
    have proved little.  For example, Toadstool's and Mallow's lists are broken 
    up into two pieces, one for use out of combat and one for use in combat only, 
    thus they have two offsets each.  Bowser only uses one offset, but inputting 
    some values give him only half of his techniques and others give him some of 
    Geno's techniques.  For now, experiment with these at your own risk until I 
    solve this bizarre puzzle.  Of course, if you want to solve it yourself, go 
    right ahead!  I can use the help.
    
    MODIFIER DIGITS FOR ITEMS AND EQUIPMENT:
    
    * = Dummy item, unusable
    
    00: Weapon*
    01: Armor*
    02: Accessory*
    03: Space*
    04: Space*
    05: Hammer
    06: Froggie Stick
    07: Nok Nok Shell
    08: Punch Glove
    09: Finger Shot
    0A: Cymbals
    0B: Chomp
    0C: Masher
    0D: Chomp Shell
    0E: Super Hammer
    0F: Hand Gun
    10: Whomp Glove
    11: Slap Glove
    12: Troopa Shell
    13: Parasol
    14: Hurly Glove
    15: Double Punch
    16: Ribbit Stick
    17: Spiked Link
    18: Mega Glove
    19: War Fan
    1A: Hand Cannon
    1B: Sticky Glove
    1C: Ultra Hammer
    1D: Super Slap
    1E: Drill Claw
    1F: Star Gun
    20: Sonic Cymbal
    21: Lazy Shell
    22: Frying Pan
    23: Hammer*
    24: Spare*
    25: Shirt
    26: Pants
    27: Thick Shirt
    28: Thick Pants
    29: Mega Shirt
    2A: Mega Pants
    2B: Work Pants
    2C: Mega Cape
    2D: Happy Shirt
    2E: Happy Pants
    2F: Happy Cape
    30: Happy Shell
    31: Polka Dress
    32: Sailor Shirt
    33: Sailor Pants
    34: Sailor Cape
    35: Nautical Dress
    36: Courage Shell
    37: Fuzzy Shirt
    38: Fuzzy Pants
    39: Fuzzy Cape
    3A: Fuzzy Dress
    3B: Fire Shirt
    3C: Fire Pants
    3D: Fire Cape
    3E: Fire Shell
    3F: Fire Dress
    40: Hero Shirt
    41: Prince Pants
    42: Star Cape
    43: Heal Shell
    44: Royal Dress
    45: Super Shirt
    46: Lazy Shell
    47: Spare*
    48: Spare*
    49: Spare*
    4A: Zoom Shoes
    4B: Safety Badge
    4C: Jump Shoes
    4D: Safety Ring
    4E: Amulet
    4F: Scrooge Ring
    50: Exp Booster
    51: Attack Scarf
    52: Rare Scarf
    53: B'Tub Ring
    54: Antidote Pin
    55: Wake Up Pin
    56: Fearless Pin
    57: Trueform Pin
    58: Coin Trick
    59: Ghost Medal
    5A: Jinx Belt
    5B: Feather
    5C: Troopa Pin
    5D: Signal Ring
    5E: Quartz Charm
    5F: Spare*
    60: Mushroom
    61: Mid Mushroom
    62: Max Mushroom
    63: Honey Syrup
    64: Maple Syrup
    65: Royal Syrup
    66: Pick Me Up
    67: Able Juice
    68: Bracer
    69: Energizer
    6A: Yoshi-Ade
    6B: Red Essence
    6C: KeroKero Cola
    6D: Yoshi Cookie
    6E: Pure Water
    6F: Sleepy Bomb
    70: Bad Mushroom
    71: Fire Bomb
    72: Ice Bomb
    73: Flower Tab
    74: Flower Jar
    75: Flower Box
    76: Yoshi Candy
    77: Froggie Drink
    78: Muku Cookie
    79: Elixer
    7A: Megaelixer
    7B: See Ya
    7C: Temple Key
    7D: Goodie Bag
    7E: Earlier Times
    7F: Freshen Up
    80: Rare Frog Coin
    81: Wallet
    82: Cricket Pie
    83: Rock Candy
    84: Castle Key 1
    85: Debug Bomb*
    86: Castle Key 2
    87: Bambino Bomb
    88: Sheep Attack
    89: Carbo Cookie
    8A: Shiny Stone
    8B: DUMMY*
    8C: Room Key
    8D: Elder Key
    8E: Shed Key
    8F: Lamb's Lure
    90: Fright Bomb
    91: Mystery Egg
    92: Beetle Box
    93: Beetle Box
    94: Luck Jewel
    95: DUMMY*
    96: Soprano Card
    97: Alto Card
    98: Tenor Card
    99: Cystalline
    9A: Power Blast
    9B: Wilted Shroom
    9C: Rotten Mush
    9D: Moldy Mush
    9E: Seed
    9F: Fertilizer
    A0: Waste Basket
    A1: Big Boo Flag
    A2: Dry Bones Flag
    A3: Greaper Flag
    A4: Secret Game
    A5: S. Crow Bomb*
    A6: Cricket Jam
    A7: Bane Bomb*
    A8: Doom Bomb*
    A9: Fear Bomb*
    AA: Sleep Bomb*
    AB: Mute Bomb*
    AC: Fireworks
    AD: Bomb*
    AE: Bright Card
    AF: Mushroom
    B0: Star Egg
    B1 - FE: DUMMY*
    FF: Nothing (clears any equipment/item in that slot)