hide results

    Hex Edit Guide by Curambar

    Version: 0.3 | Updated: 07/10/09 | Search Guide | Bookmark Guide

                              Sword of Mana Hex addresses 0.3
                         ========================================
                                       By Curambar
    
    
    
                                   \-----------------/
                                   |Table of Contents|
                                   /-----------------\
    
    
                     \-------------------------------------------/
                     | 1. Intro                                  |
                     |-------------------------------------------|
                     | 2. Updates                                |
                     |-------------------------------------------|
                     | 3. The codes                              |
                     |                                           |
                     |    3.0. How To Use                        |
                     |                                           |
                     |    3.1. Common Codes                      |
                     |        3.1.1.  Event Items                |
                     |        3.1.2.  Recovery Items             |
                     |        3.1.3.  Mistery Items              |
                     |        3.1.4.  Trait Coins                |
                     |        3.1.5.  Spirit Icons               |
                     |        3.1.6.  Meat Items                 |
                     |        3.1.7.  Seeds                      |
                     |        3.1.8.  Fruits                     |
                     |        3.1.9.  Veggies                    |
                     |        3.1.10. Weird Items                |
                     |        3.1.11. Accesories                 |
                     |        3.1.12. Raw Materials              |
                     |        3.1.13. Summon Items               |
                     |        3.1.14. Lucre                      |
                     |        3.1.15. Monsters killed            |
                     |                                           |
                     |    3.2. Hero Specific Codes               |
                     |        3.2.1. Level & XP                  |
                     |        3.2.2. HP & MP                     |
                     |        3.2.3. Weapon Levels               |
                     |        3.2.4. Spirit Levels               |
                     |        3.2.5. Class Levels                |
                     |        3.2.6. Stats                       |
                     |                                           |
                     |    3.3. Heroine Specific Codes            |
                     |        3.3.1. Level & XP                  |
                     |        3.3.2. HP & MP                     |
                     |        3.3.3. Weapon Levels               |
                     |        3.3.4. Spirit Levels               |
                     |        3.3.5. Class Levels                |
                     |        3.3.6. Stats                       |
                     |-------------------------------------------|
                     | 4. Appendixes                             |
                     |                                           |
                     |    4.1. Hexadecimal, Decimal and Binary   |
                     |        4.1.1. Binary                      |
                     |        4.1.2. Hexadecimal                 |
                     |        4.1.3. Base transformation         |
                     |                                           |
                     |    4.2. How to make your own codes        |
                     |        4.2.1. Basics                      |
                     |        4.2.2. Search                      |
                     |        4.2.3. Analisys                    |
                     |                                           |
                     |    4.3. Codebreaker                       |
                     |        4.3.1. Codebreaker formats         |
                     |                                           |
                     |    4.4. The codes in Sword of Mana        |
                     |-------------------------------------------|
                     | 5. Ending                                 |
                     |                                           |
                     |    5.1. Thanks                            |
                     |    5.2. Final words                       |
                     /-------------------------------------------\
      
      
    ===============================================================================
       
                                    ----------
                                   | 1. Intro |
                                    ----------
        When I played this game, I had some trouble finding certain quest items,
    such as Bubu Worms or Moon Drops. I looked for these codes everywhere, but they
    seemed to be nowhere. Then I remembered what my dad said: "If you want
    something to be done, do it yourself". After that, I started looking for the
    codes myself, using the cheat utility included in VisualBoy Advance.
    
    
    ===============================================================================
    
                                    ------------
                                   | 2. Updates |
                                    ------------
    
    VERSION 0.3:
                Weapon and Levels
                EXP
                Hex edit guide
                Codebreaker
                Major math mumbo-jumbo
    
    vERSION 0.2:
                Added codes for the US version.
                Corrected some tpyos ^_^
                Added Magic Rope and Popoi's Notebook
                Added Weird Items (Thanks to Dan Sawchuk for the data)
                Added Level, Exp and stuff.
                Added Number of Killed Monsters
                Some esthetic changes
    
    Version 0.1:
                Just started, all the item codes available.
                 
    ===============================================================================
    
                                    --------------
                                   | 3. The Codes |
                                    --------------
    
    ===============
    3.0. How To Use
    ===============
    
        If you want to use this codes, you'll need an emulator that allows hex
    cheat codes, such as VisualBoy Advance. Usually, the codes have the format
    
        XXXXXXXX:YY or XXXXXXXX:YYYY
        
    where XXXXXXXX is the memory address, YY is the value of that address for 1
    byte codes (from 0 to 255), and YYYY the value for 2 byte codes (from 0 to
    65535), in hexadecimal format.
    
    For example, if I need 80 Chocolumps, the code is 02020D6A:50, and if I need to
    have 999 Batmos killed, the code is 02020F72:03E7
    
    If you need a value in hex, I advise you to use the calculator included with
    Windows, if you select the option Scientific, you'll be able to calculate hex
    values. Otherwise, I'll leave some values here:
    
    DEC     HEX
    01      01
    09      09
    10      0A
    99      63
    999     03E7
    
    The codes will be listed in the following format:
    
     -----------------------------
    |Code 02020XXX:YY             |
    |                             |
    |Replace XXX with:            |
    |                             |
    |USA   EUR   Item             |
    |---   ---   ----             |
    |D38   D48   Cactus Essence   |
    |D3A   D4A   Mana Pendant     |
    |D3C   D4C   Rusty Sword      |
    |D3E   D4E   Moon Mirror      |
    |...                          |
     -----------------------------
    
    The first part of the code is given (02020, in this case), and you have to
    replace the last 2 or 3 digits of the memory address for the ones in the chart,
    depending on the rom version you're using [QUICK HINT: when you start the game,
    your character will be having a bad dream. If you see an intro with a tree
    and some legend about the tree and the goddess and such, you're playing the
    USA version. If the intro is not there, you're playing the EUR version].
    As for the YY, it represents the amount of such item. Say, if you need 99
    of them, you will replace it for 63 (that's 99 in hex).
    
    
    ==========
    3.1. Items
    ==========
    
    
    3.1.1. Event Items
    ------------------
    
    Code 02020XXX:YY
    
    Replace XXX with:
    
    USA   EUR   Item
    ---   ---   ----
    D38   D48   Cactus Essence
    D3A   D4A   Mana Pendant
    D3C   D4C   Rusty Sword
    D3E   D4E   Moon Mirror
    
    D40   D50   Control Room Key
    D42   D52   Gold Key
    D44   D54   Silver Key
    D46   D56   Leaflet
    D48   D58   Glittering Sword
    D4A   D5A   Glittering Armour
    D4C   D5C   Glittering Helm
    D4E   D5E   Dudbear's Gold
    
    D50   D60   Honey
    D52   D62  .Keepsake Pendant
    D54   D64 . Silver Knife
    D56   D66.  Blood Pouch
    
    ED0   EE0   Courtney's Letter
    ED2   EE2   Kurt's Letter
    ED4   EE4   Barbecued Newt
    ED6   EE6   Barbecued Tail
    ED8   EE8   Invoice
    EDA   EEA   Black Mask
    EDC   EEC   Moon Drop
    EDE   EEE   Cancun Feather
    
    EE0   EF0   BubU Worm
    EE2   EF2   Light Geode
    EE4   EF4   Dark Geode
    EE6   EF6   Moon Geode
    EE8   EF8   Fire Geode
    EEA   EFA   Water Geode
    EEC   EFC   Wood Geode
    EEE   EFE   Wind Geode
    
    EF0   F00   Earth Geode
    EF2   F02   Sword of Mana
    
    
    3.1.2. Recovery Items
    ---------------------
    
    Code 02020DXX:YY
    
    Replace XX with:
    
    USA   EUR   Item
    ---   ---   ----
    58    68    Gumdrop
    5A    6A    Chocolump
    5C    6C    Honey Elixir
    5E    6E    Magic Walnut
    
    60    70    Prestoveggie
    62    72    Stardust Herb
    64    74    Angel Grail
    66    76    GummiFrog
    
    
    3.1.3. Mistery Items
    --------------------
    
    Remember that Amigo Whistle only appears during battle.
    
    Code 02020DXX:YY
    
    Replace XX with:
    
    USA   EUR   Item
    ---   ---   ----
    68    78    Blink Weed
    6A    7A    Potent Posy (Fragrant Flower)
    6C    7C    Tone Stone
    6E    7E    Dream Reed
    
    70    80    Magic Rope         
    72    82    Poi Poi's Notebook   (Not an actual item, more like a menu ^^)
    74    84    Tiny Tapper
    76    86    Amigo Whistle
    
    
    3.1.4. Trait Coins
    ------------------
    
    Remember that Trait Coins only appear during battle.
    
    Code 02020DXX:YY
    
    Replace XX with:
    
    USA   EUR   Item
    ---   ---   ----
    78    88    Light Coin
    7A    8A    Dark Coin
    7C    8C    Moon Coin
    7E    8E    Fire Coin
    
    80    90    Water Coin
    82    92    Wood Coin
    84    94    Wind Coin
    86    96    Earth Coin
    
    
    3.1.5. Spirit Icons
    -------------------
    
    Remember that Spirit Icons only appear during battle.
    
    Code 02020DXX:YY
    
    Replace XX with:
    
    USA   EUR   Item
    ---   ---   ----
    88    98    Wisp Icon
    8A    9A    Shade Icon
    8C    9C    Luna Icon
    8E    9E    Salamander Icon
    
    90    A0    Undine Icon
    92    A2    Dryad Icon
    94    A4    Jinn Icon
    96    A6    Gnome Icon
    
    
    3.1.6. Meat Items
    -----------------
    
    Code 02020DXX:YY
    
    Replace XX with:
    
    USA   EUR   Item
    ---   ---   ----
    98    A8    Animal Meat
    9A    AA    Thin Meat
    9C    AC    Insect Meat
    9E    AE    Lizard Meat
    
    A0    B0    Bird Meat
    A2    B2    Morph Meat
    A4    B4    Fish Meat
    A6    B6    Magical Meat
    A8    B8    Tough Meat
    AA    BA    Rotten Meat
    AC    BC    Demon Meat
    AE    BE    Dragon Meat
    
    B0    C0    Odd Meat
    B2    C2    Mixed Meat
    B4    C4    Spicy Meat
    B6    C6    Phantom Meat
    
    
    3.1.7. Seeds
    ------------
    
    Code 02020DXX:YY
    
    Replace XX with:
    
    USA   EUR   Item
    ---   ---   ----
    B8    C8    Round Seed
    BA    CA    Small Seed
    BC    CC    Oblong Seed
    BE    CE    Long Seed
    
    C0    D0    Crooked Seed
    C2    D2    Flat Seed
    C4    D4    Big Seed
    C6    D6    Spiny Seed
    
    
    3.1.8. Fruits
    -------------
    
    Code 02020DXX:YY
    
    Replace XX with:
    
    USA   EUR   Item
    ---   ---   ----
    C8    D8    Bellgrapes
    CA    DA    Diceberry
    CC    DC    Peach Puppy
    CE    DE    Applesocks
    
    D0    E0    Orange'opus
    D2    E2    Citrisquid
    D4    E4    Springanana
    D6    E6    Mangolephant
    D8    E8    Rocket Papaya
    DA    EA    Loquat-Shoes
    DC    EC    Boarmelon
    DE    EE    Pine O'Clock
    
    E0    F0    Rhinolupe
    E2    F2    Kittypie
    E4    F4    Cherry Bombs
    E6    F6    Fishy Fruit
    
    
    3.1.9. Veggies
    --------------
    
    Code 02020XXX:YY
    
    Replace XXX with:
    
    USA   EUR   Item
    ---   ---   ----
    DE8   DF8   Lilipods
    DEA   DFA   Masked Potato
    DEC   DFC   Spiny Carrot
    DEE   DFE   Honey Onion
    
    DF0   E00   Cornflower
    DF2   E02   Dolphin Squash
    DF4   E04   Cabbadillo
    DF6   E06   Conchurnip
    DF8   E08   Needlettuce
    DFA   E0A   Whalamato
    DFC   E0C   Orcaplant
    DFE   E0E   Mush-in-a-Box
    
    E00   E10   Bumpkin
    E02   E12   Garlicrown
    E04   E14   Heart Mint
    E06   E16   Spade Basil
    
    
    3.1.10. Weird Items (Thanks to Dan Sawchuk who made me note this weird thing)
    -------------------
    
    I think these codes are useless, they are for some items called "Shields" and
    "Eggs", but they don't appear in the regular item screen, but in the sell
    screen in any shop. My guess is that they were supposed to be regular items in
    the game but they were dropped for some reason. The blank fifth row in the
    armor subscreen makes me wonder... but I disgress. If you want to see them,
    though, here they are:
    
    Code 02020EXX:YY
    
    Replace XX with:
    
    USA   EUR   Item
    ---   ---   ----
    08    18    Holy Shield
    0A    1A    Dark Shield
    0C    1C    Moonlight Shield
    0E    1E    Burning Shield
    
    10    20    SeaMist Shield
    12    22    Arbor Shield
    14    24    Anemoi Shield
    16    26    Terra Shield
    18    28    Diamond Shield
    
    A4    B4    Fauna Egg
    A6    B6    Flora Egg
    A8    B8    Insect Egg
    AA    BA    Reptile Egg
    AC    BC    Fowl Egg
    AE    BE    Amorph Egg
    
    B0    C0    Fish Egg
    B2    C2    Magicali Egg
    B4    C4    Demihuman Egg
    B6    C6    Undead Egg
    B8    C8    Demon Egg
    BA    CA    Dragon Egg
    
    
    3.1.11. Accesories
    ------------------
    
    Code 02020EXX:YY
    
    Replace XX with:
    
    USA   EUR   Item
    ---   ---   ----
    20    30    BB Ring
    22    32    Gem Ring
    24    34    Cicada Earrings
    26    36    Quartz Ring
    28    38    Cobra Earring
    2A    3A    WhiteLight Ring
    2C    3C    Fiend Fang
    2E    3E    Bandit Earrings
    
    30    40    Red Moon Horn
    32    42    D-Fence Ring
    34    44    Mist Pendant
    36    46    Knight Crest
    38    48    Gjallar Horn
    3A    4A    Dragon Choker
    3C    4C    Sage Stone
    3E    4E    Cardinal Eye
    
    40    50    FlameFlicker
    42    52    Draupnir
    44    54    General Crest
    46    56    Dragon Ring
    48    58    Rune Earrings
    4A    5A    Code Bead
    4C    5C    Wishbone
    4E    5E    Crystal Ring
    
    A0    B0    Brownie Ring
    A2    B2    Bath Set
    
    CC    DC    Belle Bell
    CE    DE    Chimpfish Iris
    
    
    3.1.12. Raw Materials
    ---------------------
    
    Code 02020EXX:YY
    
    Replace XX with:
    
    USA   EUR   Item
    ---   ---   ----
    50    60    Topple Cotton
    52    62    Sultan Silk
    54    64    Jadd Hemp
    56    66    Altena Felt
    58    68    Oak Wood
    5A    6A    Holly Wood
    5C    6C    Baobab Wood
    5E    6E    Charcoal
    
    60    70    Ash Wood
    62    72    Dion wood
    64    74    Mistletoe Wood
    66    76    Fossil Wood
    68    78    Animal Hide
    6A    7A    Gator Skin
    6C    7C    Centaur Hide
    6E    7E    Pegasus Hide
    
    70    80    Animal Bone
    72    82    Elephant Tusk
    74    84    Black Bone
    76    86    Fossil
    78    88    Menos Bronze
    7A    8A    Forsena Iron
    7C    8C    Granz Steel
    7E    8E    Lorimar Iron
    
    80    90    Altena Alloy
    82    92    Maia Lead
    84    94    Mythril Silver
    86    96    Orichalcum
    88    98    Fish Scale
    8A    9A    Lizard Scale
    8C    9C    Snake Scale
    8E    9E    Dragon Scale
    
    90    A0    Jake Aerolite
    92    A2    Hal Aerolite
    94    A4    Anhk Aerolite
    96    A6    Vinek Aerolite
    98    A8    Marble
    9A    AA    Obsidian
    9C    AC    Pedan Stone
    9E    AE    Crystal
    
    
    3.1.13. Summon Items
    --------------------
    
    Remember that Summon Items only appear during battle.
    
    Code 02020EXX:YY
    
    Replace XX with:
    
    USA   EUR   Item
    ---   ---   ----
    BE    CE    Selva Card
    
    C0    D0    Pokiehl Card
    C2    D2    Tote Card
    C4    D4    Rosiotti Card
    C6    D6    Olbohn Card
    C8    D8    Gaia Card
    CA    DA    Matilda Card
    
    
    3.1.14. Lucre
    ------------
    
    Lucre is set in 3 bytes. The addresses are
    
    USA VERSION     EUR VERSION
    -----------     -----------
    02020D20:XXXX   02020D30:XXXX
    02020D22:YY     02020D32:YY
    
    The maximum lucre is 99999 (01869F in hex), so you'll need the codes
    
    USA VERSION     EUR VERSION
    -----------     -----------
    02020D20:869F   02020D30:869F
    02020D22:01     02020D32:01
    
    
    3.1.15. Monsters Killed
    ----------------------
    
    This codes are really useful for getting the black monsters.
    I'm NOT writing down the name of each monster, you have the
    numbers in the Popoi's notebook :p
    
    [For a quick alternative with Codebreaker, see the bottom of the chart]
    
    Code 0202XXXX:YYYY
    
    YYYY is 2 byte, thus, for 999 monsters killed, use 03E7,
    or use 03E8 for 1000 (Black) monsters.
    
    Replace XXX with:
    
    USA   EUR   Monster #
    ----  ----  ---------
    0F38  0F48  001
    0F3A  0F4A  002
    0F3C  0F4C  003
    0F3E  0F4E  004
    0F40  0F50  005
    0F42  0F52  006
    0F44  0F54  007
    0F46  0F56  008
    0F48  0F58  009
    0F4A  0F5A  010
    0F4C  0F5C  011
    0F4E  0F5E  012
    0F50  0F60  013
    0F52  0F62  014
    0F54  0F64  015
    0F56  0F66  016
    0F58  0F68  017
    0F5A  0F6A  018
    0F5C  0F6C  019
    0F5E  0F6E  020
    0F60  0F70  021
    0F62  0F72  022
    0F64  0F74  023
    0F66  0F76  024
    0F68  0F78  025
    0F6A  0F7A  026
    0F6C  0F7C  027
    0F6E  0F7E  028
    0F70  0F80  029
    0F72  0F82  030
    0F74  0F84  031
    0F76  0F86  032
    0F78  0F88  033
    0F7A  0F8A  034
    0F7C  0F8C  035
    0F7E  0F8E  036
    0F80  0F90  037
    0F82  0F92  038
    0F84  0F94  039
    0F86  0F96  040
    0F88  0F98  041
    0F8A  0F9A  042
    0F8C  0F9C  043
    0F8E  0F9E  044
    0F90  0FA0  045
    0F92  0FA2  046
    0F94  0FA4  047
    0F96  0FA6  048
    0F98  0FA8  049
    0F9A  0FAA  050
    0F9C  0FAC  051
    0F9E  0FAE  052
    0FA0  0FB0  053
    0FA2  0FB2  054
    0FA4  0FB4  055
    0FA6  0FB6  056
    0FA8  0FB8  057
    0FAA  0FBA  058
    0FAC  0FBC  059
    0FAE  0FBE  060
    0FB0  0FC0  061
    0FB2  0FC2  062
    0FB4  0FC4  063
    0FB6  0FC6  064
    0FB8  0FC8  065
    0FBA  0FCA  066
    0FBC  0FCC  067
    0FBE  0FCE  068
    0FC0  0FD0  069
    0FC2  0FD2  070
    0FC4  0FD4  071
    0FC6  0FD6  072
    0FC8  0FD8  073
    0FCA  0FDA  074
    0FCC  0FDC  075
    0FCE  0FDE  076
    0FD0  0FE0  077
    0FD2  0FE2  ---   \
    0FD4  0FE4  ---    |--> Not listed, probably dropped.
    0FD6  0FE6  ---   /
    0FD8  0FE8  078
    0FDA  0FEA  079
    0FDC  0FEC  080
    0FDE  0FEE  081
    0FE0  0FF0  082
    0FE2  0FF2  083
    0FE4  0FF4  084
    0FE6  0FF6  085
    0FE8  0FF8  086
    0FEA  0FFA  087
    0FEC  0FFC  088
    0FEE  0FFE  089
    0FF0  1000  090
    0FF2  1002  091
    0FF4  1004  092
    0FF6  1006  093
    0FF8  1008  094
    0FFA  100A  095
    0FFC  100C  096
    0FFE  100E  097
    1000  1010  098
    1002  1012  099
    1004  1014  100
    1006  1016  101
    1008  1018  102
    100A  101A  103
    100C  101C  104
    100E  101E  105
    1010  1020  106
    1012  1022  107
    1014  1024  108
    1016  1026  109
    1018  1028  110
    101A  102A  111
    101C  102C  112
    101E  102E  113
    1020  1030  114
    1022  1032  115
    1024  1034  116
    1026  1036  117
    1028  1038  118
    102A  103A  119
          
    
    Ok, writing down all of these codes is plain nasty. But behold, oh VBA users,
    for we have the CODEBREAKER!!!
    CODEBREAKER basically is the same as putting the codes manually, but it has
    a few pros and cons: It's more complicated, but much more confortable.
    
    We will use a "slide code", that is, a code that repeats itself until we say
    so. In this case, we want it for our 119 monsters, rite? So, let´s select a
    CODEBREAKER code (top right button in the cheat menu) and put this code:
    (Replace YYYY with the number of your choice. 1000 is 03E8 in hex):
    
    USA VERSION     EUR VERSION
    -------------   -------------
    42020F38 YYYY   42020F48 YYYY
    0000004D 0002   0000004D 0002
    42020FD8 YYYY   42020FE8 YYYY
    0000002A 0002   0000002A 0002
    
    
    That's it. Easy, right? For those of you that want to know what the heck are
    you doing here, keep reading the appendixes, specially the 4.3. Codebreaker.
    
    
    ========================
    3.2. Hero specific codes
    ========================
    
    3.2.1. Level & XP
    -----------------
    
    Your player level is coded in hex, as usual. Remember that if you want lvl 99
    you'll have to use hex code 63. Be warned, if you use this code, you'll bypass
    the lvl-up process, thus not acquiring the stat bonuses nor the class upgrades!
    Actually, this code is kinda useless xD
    
    USA VERSION   EUR VERSION
    -----------   -----------
    020203F2:YY   02020402:YY
    
       The real way to do this is to mess with the gained XP. This address uses 2
    bytes, meaning that if you need 5000 XP, you'll use YYYY = 1388.
       
    USA VERSION     EUR VERSION
    -----------     -----------
    02020424:YYYY   02020434:YYYY
    
       Once you use this code, the next enemy you kill will make the "lvl Up" pop
    up, and you'll have to go through the level up process until you reach the
    level you're supposed to have with that amount of XP (No idea how much XP for
    each lvl, sorry). Don't put a big number here (as FFFF) or else the game may
    freeze.
    
    
    3.2.2. 999 HP & MP
    ------------------
    
    For a full explanation on how to put different values of HP and MP, please
    refer to the appendixes, section 4.4. The codes in Sword of Mana.
    
    USA VERSION   EUR VERSION
    -----------   -----------
    020203F8:E7   02020408:E7
    020203F9:9F   02020409:9F
    020203FA:7F   0202040A:7F
    020203FB:BE   0202040B:BE
    0202040C:CE   0202041C:CE
    0202040D:07   0202041D:07 (*)
    
    (*) This code depends directly on the Rod Weapon Level. In this case, as we are
    playing as the Hero, we don't care. But, if you wanted to have a lvl 99 rod
    nevertheless, you'd have to put 0202040D:1F instead.
    
    
    3.2.3. Weapon Levels
    --------------------
    
    For a full explanation on how to put different values other than 99, please
    refer to the appendixes, section 4.4. The codes in Sword of Mana.
    
    The following list is for all weapons lvl 99.
    
    USA VERSION   EUR VERSION
    -----------   -----------
    020203F3:63   02020403:63
    020203F6:18   02020406:18
    020203F7:03   02020407:03
    0202040D:18   0202041D:18 (2)
    0202040E:8F   0202041E:8F
    0202040F:31   0202041F:31
    02020410:1E   02020420:1E
    02020411:8F   02020421:8F
    02020412:C7   02020422:C7
    02020413:18   02020423:18
    02020414:03   02020424:03 (1)
    
       A lot of this lines messes some other parts of the game, so it's not a good
    idea to let this code activated. For inputting this, it's better to save the
    game if you wish, pause the game, input the code, go back to the game, and back
    again to the cheat screen in order to delete all of these codes.
    
    (1) This line messes up the XP of your sword. By using this, you're setting it
    to 0. If you'd like to put a high value on the sword XP as a bonus, use
    02020414:FF instead.
    
    (2) This line depends on the Max HP. If you are using this along with the 999
    max HP code, you'll have to use 0202040D:1F instead. Here's a full list of the
    actual value you have to input here, depending on your current Max HP (that is,
    if you don't want to accidentally change it)
    
                  Max HP      Value
                ----------    -----
                  0 to 127     18
                128 to 255     19
                256 to 383     1A
                384 to 511     1B
                512 to 639     1C
                640 to 767     1D
                768 to 895     1E
                896 to 999     1F
    
    
    3.2.4. Spirit Levels
    --------------------
    
    For a full explanation on how to put different values other than 99, please
    refer to the appendixes, section 4.4. The codes in Sword of Mana.
    
    The following list is for all spirits lvl 99.
    
    USA VERSION   EUR VERSION
    -----------   -----------
    02020421:30   02020431:30
    02020422:1E   02020432:1E
    02020423:8F   02020433:8F
    02020424:61   02020434:61
    02020425:3C   02020435:3C
    02020426:1E   02020436:1E
    02020427:8F   02020437:8F
    02020428:C1   02020438:C1
    02020429:18   02020439:18
    
       A lot of this lines may mess some other parts of the game, so it's not a
    good idea to let this code activated. For inputting this, it's better to save
    the game if you wish, pause the game, input the code, go back to the game, and
    back again to the cheat screen in order to delete all of these codes.
    
    
    3.2.5. Class Levels
    -------------------
    
       There's a problem here. If you activate this codes, you'll automatically get
    a high level some classes, but you won't get the bonuses you get when you go up
    a level. Also, if I put, for example, all the classes in, let's say, lvl 50,
    next time I get a level up, I'll have a hard time selecting which "job" I'll
    get, because your stats are likely to met full conditions for more than one job.
       So, I'll put here the variables you need in order to get a specific setting, 
    along with the formula and ranges for each one. For more information, please
    refer to section 4.5.
    
       Each class has it's formula. For each formula, we'll have 2 or three numbers
    called variables, which we get by doing simple math.
       
    Warrior level:
                   Take your level and divide it by 8.
                   The result is A1, the integer rest is A0
                   
                   Example: Level 29 --> 29:8 = 3
                                         The rest is 29 - 3*8 = 5
                                         So, A1 = 3, A0 = 5
                                         
    Monk Level:
                   Convert the level into hex. You'll have, in order, B1 and B0.
                   
    Magician Level:
                   Divide the level by 32. The result is C2.
                   Take the rest and divide it by 2. The result is C1.
                   and the rest is C0.
                   Example: Level 45 --> 45:32 = 1 ==> C2 = 1
                                         Rest = 45 - 1*32 = 13
                                         13:2 = 6 ==> C1 = 6
                                         Rest = 13 - 2*6 = 1 ==> C0 = 1
    
    Sage Level:
                   Divide the level by 64. The result is D2.
                   Take the rest and divide it by 4. The result is D1.
                   and the rest is D0.
                   Example: Level 45 --> 45:64 = 0 ==> D2 = 0
                                         Rest = 45 - 0*64 = 45
                                         45:4 = 11 ==> D1 = B (11 in hex)
                                         Rest = 45 - 4*11 = 1 ==> D0 = 1
    
    Thief Level:
                   Take your level and divide it by 8.
                   The result is E1, the integer rest is E0
                   Same as in Warrior Level.
                   
    Random Level:
                   Convert the level into hex. You'll have, in order, F1 and F0.
                   
    Once you have all of your desired variables, let's make the codes, shall we?
    For each code we need to calculate both the first and second words. The first X
    represents the first word and Y the second one. All of the addresses start with
    02020DXX
    
    USA   EUR   X (1st digit)     Y (2st digit)
    ---   ---   -------------     -------------
    2F    3F    X = 2*A0          Y = A1
    30    40    X = B1 + 8*C0     Y = B0
    31    41    X = C2 + 4*D0     Y = C1
    32    42    X = D2 + 2*E0     Y = D1
    33    43    X = F0            Y = E1
    34    44    X = 0             Y = F1
    
    ------
       Let's see an example. I'm already a Cleric (That is, I've 5 levels in Sage),
    and I want to be a Priest, for which I need 5 levels in Magician and 10 levels
    in Sage. So, I need A = 0, B = 0, C = 5 , D = 10, E = 0, F = 0. Let's do the
    maths, shall we?
    
    A) A = 0 means result and rest equals 0, hence A0 = 0 and A1 = 0.
    
    B) 0 in hex is 00, so B0 = 0, B1 = 0.
    
    C) We divide 5 by 32. The result is 0, and the rest is 5. => C2 = 0
       We take the rest (5), divide it by 2, and we have result 2 and rest 1, thus
       C1 = 2, C0 = 1.
       
    D) We divide 10 by 32. The result is 0, and the rest is 10. => D2 = 0
       We take the rest (10), divide it by 4, and we have result 2 and rest 2, thus
       D1 = 2, D0 = 2.
       
    E) It's all 0's, so E1 = 0 and E0 = 0
    
    F) Same as above, F1 = 0, F0 = 0.
    
    Now let's make the codes.
    
    Address
    2F       X = 2*A0       = 2*0       = 0 , Y = A1 = 0 => 02020D2F:00
    30       X = B1 + 8*C0  = 0 + 8*1   = 8 , Y = B0 = 0 => 02020D30:80
    31       X = C2 + 4*D0  = 0 + 4*2   = 8 , Y = C1 = 2 => 02020D31:82
    32       X = D2 + 2*E0  = 0 + 2*0   = 0 , Y = D1 = 2 => 02020D32:02
    33       X = F0         = 0             , Y = E1 = 0 => 02020D33:00
    34       X = 0          = 0             , Y = F1 = 0 => 02020D34:00
    
    The only ones we really need to use are the ones that have not only 0's.
    Please note you won't automatically win the Priest class, but you'll have to go
    up yet another level, whether normally or with the XP cheat code. Then, you go
    up a level in some class (related to your desired class) and just then you'll
    get your class lvl up.
    
    
    3.2.6. Stats
    ------------
    
    Code 02025XXX:YYYY
    
    YYYY is 2 byte, thus, for 999 in all stats, use 03E7
    
    Replace XXX with:
    
    USA   EUR   Stat
    ---   ---   ----
    A10   6E0    POW
    A12   6E2    DEF
    A14   6E4    INT
    A16   6E6    MND
    A18   6E8    AGI
    
    
    ===========================
    3.3. Heroine specific codes
    ===========================
    
    Many of the heroine specific codes are just the same as the hero codes, with an
    hex 0058 added to the hero address.
    
    3.2.1. Level & XP
    -----------------
    
    Your player level is coded in hex, as usual. Remember that if you want lvl 99
    you'll have to use hex code 63. Be warned, if you use this code, you'll bypass
    the lvl-up process, thus not acquiring the stat bonuses nor the class upgrades!
    Actually, this code is kinda useless xD
    
    USA VERSION   EUR VERSION
    -----------   -----------
    0202044A:YY   0202045A:YY
    
       The real way to do this is to mess with the gained XP. This address uses 2
    bytes, meaning that if you need 5000 XP, you'll use YYYY = 1388.
       
     USA VERSION     EUR VERSION
     -----------     -----------
    02020498:YYYY    020204A8:YYYY
    
       Once you use this code, the next enemy you kill will make the "lvl Up" pop
    up, and you'll have to go through the level up process until you reach the
    level you're supposed to have with that amount of XP (No idea how much XP for
    each lvl, sorry). Don't put a big number here (as FFFF) or else the game may
    freeze.
    
    
    3.2.2. 999 HP & MP
    ------------------
    
    For a full explanation on how to put different values of HP and MP, please
    refer to the appendixes, section 4.4. The codes in Sword of Mana.
    
    USA VERSION   EUR VERSION
    -----------   -----------
    02020450:E7   02020460:E7
    02020451:9F   02020461:9F
    02020452:7F   02020462:7F
    02020453:BE   02020463:BE
    02020464:CE   02020474:CE
    02020465:07   02020475:07 (*)
    
    (*) This code depends directly on the Rod Weapon Level. If you use this code,
    you have to be sure your Rod level is below 32. If you wanted to have a lvl 99
    Rod here, you'd have to put 02020465:1F instead.
    
    
    3.2.3. Weapon Levels
    --------------------
    
    For a full explanation on how to put different values other than 99, please
    refer to the appendixes, section 4.4. The codes in Sword of Mana.
    
    The following list is for all weapons lvl 99.
    
    USA VERSION   EUR VERSION
    -----------   -----------
    0202044B:63   0202045B:63
    0202034E:18   0202045E:18
    0202034F:03   0202045F:03
    02020465:18   02020475:18 (2)
    02020466:8F   02020476:8F
    02020467:31   02020477:31
    02020468:1E   02020478:1E
    02020469:8F   02020479:8F
    0202046A:C7   0202047A:C7
    0202046B:18   0202047B:18
    0202046C:03   0202047C:03 (1)
    
       A lot of this lines messes some other parts of the game, so it's not a good
    idea to let this code activated. For inputting this, it's better to save the
    game if you wish, pause the game, input the code, go back to the game, and back
    again to the cheat screen in order to delete all of these codes.
    
    (1) This line messes up the XP of your sword. By using this, you're setting it
    to 0. As we are playing as the heroine, we don't care much. but, if you'd like
    to put a high value on the sword XP as a bonus, use 0202046C:FF instead.
    
    (2) This line depends on the Max HP. If you are using this along with the 999
    max HP code, you'll have to use 02020465:1F instead. Here's a full list of the
    actual value you have to input here, depending on your current Max HP (that is,
    if you don't want to accidentally change it)
    
                  Max HP      Value
                ----------    -----
                  0 to 127     18
                128 to 255     19
                256 to 383     1A
                384 to 511     1B
                512 to 639     1C
                640 to 767     1D
                768 to 895     1E
                896 to 999     1F
    
    
    3.2.4. Spirit Levels
    --------------------
    
    For a full explanation on how to put different values other than 99, please
    refer to the appendixes, section 4.4. The codes in Sword of Mana.
    
    The following list is for all spirits lvl 99.
    
    USA VERSION   EUR VERSION
    -----------   -----------
    02020479:30   02020489:30
    0202047A:1E   0202048A:1E
    0202047B:8F   0202048B:8F
    0202047C:61   0202048C:61
    0202047D:3C   0202048D:3C
    0202047E:1E   0202048E:1E
    0202047F:8F   0202048F:8F
    02020480:C1   02020490:C1
    02020481:18   02020491:18
    
       A lot of this lines may mess some other parts of the game, so it's not a
    good idea to let this code activated. For inputting this, it's better to save
    the game if you wish, pause the game, input the code, go back to the game, and
    back again to the cheat screen in order to delete all of these codes.
    
    
    3.2.5. Class Levels
    -------------------
    
       See the Hero codes section for an explanation on how to make the codes.
    
    All the codes start with 02020DXX
    
    USA   EUR   X (1st digit)     Y (2st digit)
    ---   ---   -------------     -------------
    87    97    X = 2*A0          Y = A1
    88    98    X = B1 + 8*C0     Y = B0
    89    99    X = C2 + 4*D0     Y = C1
    8A    9A    X = D2 + 2*E0     Y = D1
    8B    9B    X = F0            Y = E1
    8C    9C    X = 0             Y = F1
    
    
    3.2.6. Stats
    ------------
    
    Code 02025XXX:YYYY
    
    YYYY is 2 byte, thus, for 999 in all stats, use 03E7
    
    Replace XXX with:
    
    USA   EUR   Stat
    ---   ---   ----
    A10   6E0    POW
    A12   6E2    DEF
    A14   6E4    INT
    A16   6E6    MND
    A18   6E8    AGI
    
    
    ===============================================================================
    
                                     ---------------
                                    | 4. Appendixes |
                                     ---------------
    
    ====================================
    4.1. Hexadecimal, Decimal and Binary
    ====================================
    
       Computers don't count as we do. We are used to count by using the number 10,
    meaning that we have 10 separated symbols for expresing quantities (0 to 9).
    When we reach the number following 9, we are out of symbols, and we start using
    two symbols at once, starting from the next in the chart. Thus, we write 10.
       But, what if we had only 8 symbols? What if we didn't know 8 and 9, for
    example? We could count 0, 1, 2, 3, 4, 5, 6, 7, and we are out of symbols. So,
    by following the previous reasoning, we should start using 2 symbols. Which
    ones? 1 and 0, of course. Then, the following number is 10.
       By now, many of you are saying "What are you talking about? If we have the
    number 7, the next is 8!!" Of course you're right, I'm just stating WHAT IF we
    didn't have 8 and 9 as numbers. This is what we mathematicians (yes, I am) call
    BASE-N numbers.
       But why is this relevant to us? Let's return to the computers. AS we said,
    computers don't have 10 fingers, so it's not natural for them to count with 10
    digits. The only natural thing for computers is electricity. If you have an
    electrical circuit, whether electricity is flowing or not (or, the current in
    the circuit is low or high). So, computers only know about 2 digits, we may
    call them ON and OFF, or 1 and 0, or Y and N, as you wish.
       What we are about to see is what happens when we try to count with a number
    of digits other than 10.
    
    
    4.1.1. Binary (Base-2)
    ----------------------
    
       Binary is the name of the BASE-2 numbers. That is, we have ONLY 2 DIGITS for
    write down numbers, just 0 and 1. So, how are we supposed to count to, let's
    say, 9?. As we said before, 0 is plain zero, and 1 is plain 1. So far, so good,
    but what about the next number? Of course, once we are out of symbols, we start
    stacking them. The next number will be 10. The next one is logical, is 11. Once
    here, we are again out of symbols. So we'll put yet another one. The next number
    is 100. Lets clarify this:
    
                         REGULAR     BINARY
                         NUMBERS     NUMBERS
                         BASE-10     BASE-2
                         -------     -------
                            0         0
                            1         1
                            2         10
                            3         11
                            4         100
                            5         101
                            6         110
                            7         111
                            8         1000
                            9         1001
                            10        1010
                            11        1011
                            ...       ...
                            
       It's not really that hard. Many scientific calculators include a base
    utility, allowing you to find out the binary notation of any number. There's
    even a geek joke, that says "There are only 10 kind of people. The ones that
    understand binary and the ones that don't" [10 is binary for 2 xD]
       Well, back to computers. When you store a number, character, or symbol in a
    computer, it's stored as a code (for example, @ is 64, A is 65, and so on), but
    in binary mode. This means that for each capital A you see, what the computer
    is seeing is the number 01000001. In a hard drive or flash drive, each 1 or 0
    represents a magnetic status. By setting this micro magnets up or down, we
    store or read data from a drive. Each one of this "states" (up or down; on or
    off) is called BIT. We use bits a lot in normal life. Internet speed is
    measured in bits per second (actually, more like thousands or millions of bits
    per second). So, if you have a connection of 100 Mbps, you are transfering to
    your computer roughly 100 million bits per second.
       So, binary code is really something if you want to understand computers.
    
    
    4.1.2. Hexadecimal (Base-16)
    ----------------------------
    
       Let's face it. Binary code may be easy to use for a computer, but is quite
    annoying for us to deal with. Why is that? Because for a relatively small
    number, such as 200, we have in binary 11001000. Eight bloody numbers, instead
    of the regular three we need in our normal life. That's why binary code is
    usually packed in sets of four, called WORDS. How many "words" are there? Let's
    count them, shall we?
    
        BINARY                HEX
         WORD      VALUE     VALUE
        ------     -----     -----
         0000        0         0
         0001        1         1
         0010        2         2
         0011        3         3
         0100        4         4
         0101        5         5
         0110        6         6
         0111        7         7
         1000        8         8
         1001        9         9
         1010       10         A
         1011       11         B
         1100       12         C
         1101       13         D
         1110       14         E
         1111       15         F
    
       We have 16 different words, representing the numbers from 0 to 15. But we
    had a name for when this things happen. This is BASE-16, or hex (short for
    hexadecimal). We have 16 "numbers" we can use to represent quantities.
       Ok, we all know the first 10 numbers, from 0 to 9. But we have no special
    symbol for 10. In fact, as we don't have one, we write it down using TWO
    symbols (1 and 0). So, if we want to have 16 different symbols, we have to make
    some of them up. Mathematicians used the first letters of the alphabet, thus
    the symbols for hex are the ones in the rightmost column.
       Ok, let's count. Until 15 there's no problem, we can still write the number
    down using just one digit. For the next number (our regular 16), we are out of
    symbols. What do we do? We use two symbols, and we have 10. (ALWAYS REMEMBER:
    number 10 in our regular system is different from 10 in another system). From
    there on, we keep counting. Our 17 is hex 11, our 18 is hex 12, and so on.
       Computer code is almost always represented this way, and the utility that
    lets you peek into it is called a "hex editor". When scientists invented
    computers, they decided that 256 symbols were all you can possibly need for
    writing letters, numbers and stuff (and, by that time, it was good). So, they
    programmed the computers so you can store data using 256 different types of
    symbols per character (such as @, p, 8... 256 of them). Each one of these
    characters is called BYTE. As you can guess, when the computers began to spread
    worldwide, 256 symbols were not enough. But that's another story ^_^.
       Let's see how many bits we need to express a byte, and the answer is 8 bits.
    So, each 8 bits we have a byte. 8 bits is also two "words", so, each byte can
    be written down using two hex symbols. For example, if a byte contains the
    symbol 200 (it's the plus symbol, by the way), it will appear in a hex editor
    as "C8", meaning that the binary representation for that number is:
    
                         1100 1000
                          C    8
    
       Transforming numbers from and to hex is not a nice task, as it needs many
    calculations. Your best chance is to have a scientific calculator. However, for
    those of you that want to know, we are going to learn how to do it.
    
    
    4.1.3. Base transformation
    --------------------------
    
       First we are going to see the "easy" part. How to convert a hex number into
    a normal number (actually, the "normal" numbers are called DECIMAL NUMBERS, or
    BASE-10 NUMBERS).
    
       First thing you have to remember is the value of each digit. Refer to the
    chart in 4.1.2. if you need to.
       Ok, let's do it. In order to transform a hex number into decimal, we have to
    make some calculations. We have to multiply the value of each digit to a number
    that represents it's position. For the last digit we use 1, for the next, we
    use 16. For the next, 16*16 = 256, for the next 16*16*16 = 4096, and so on.
    Finally, we sum up all the results.
       Let's use a 4-digit hex number as an example:
    
             5  C  3  A
             |  |  |  |
             |  |  |  º-----> 10 *    1 =    10     (A means 10)
             |  |  |
             |  |  º--------> 3  *   16 =    48
             |  |
             |  º-----------> 12 *  256 =  3072     (C means 12)
             |
             º--------------> 5  * 4096 = 20480
                                          -----
                                  Total = 23610
    
       And now, the nasty part. The opposite way. Lets say we need to transform the
    number 12500 into hex. What we need to do is start dividing the number by 16,
    and write down the integer rest or modulus of the operation. The, you continue
    doing this with the result of the previous division, until you can't divide it
    any more.
    
       12500 : 16 = 781, Rest = 4
       781   : 16 =  48, Rest = 13   [This is D in hex]
       48    : 16 =   3, Rest = 0
       
       Once we are done, we start writing down the LAST division result, followed
    by the rests or moduli, written backwards:
    
       12500 dec = 30D4 hex
       
       Piece of cake, huh?
       
    
    ===============================
    4.2. How to make your own codes
    ===============================
    
    4.2.1. Basics
    -------------
    
       What a memory cheat code does, is to search for a specified memory address,
    and stick a given value into it. If you keep the cheat code activated, this
    value never changes, and so you can have infinite values (life, energy, money).
    Or, alternatively, you can activate the cheat code, save the game (by battery
    save or by state save), deactivate the code and continue playing. In this case,
    you're just setting a value but after that it can go up or down, depending on
    your actions.
       For example, I can have a code that sets a timer to 1 minute. If I keep the
    cheat code running, the timer will be ALWAYS at 1 minute. This could be a
    problem if, for example, you get points for the time remaining. Some games use
    the actual timer value and start decreasing it (we all remember Super Mario
    Bros. xD). If you froze up the value, you'll be stuck there, getting infinite
    points for your time, but as the timer never goes down, the process will loop
    to infinite. What's the moral of this? Be careful, use the codes for what they
    are supposed to, and be extra careful with the "infinite" codes.
       
       Ok, so we want to make our own code. What do we need? Only two things. The
    memory address (or addresses) where the value you want to change is, and the
    new value you want to replace it with. The value is usually easy, i.e. you need
    9 lives, you're using value 9. There are some cases (specially with newish
    games) where the values are encrypted, or coded not byte-wise but bit-wise
    (This game - Sword of Mana - is a good example of this), and you need to
    analyze the results.
    
       First, we're learning how to look for a memory address using the cheat menu
    included with Visual Boy Advance. Then, we'll be seeing how to analyze and
    decypher encrypted data.
    
    
    4.2.2. Search
    -------------
    
       VBA includes a neat cheat utility, that lets you look for specific values,
    or check values as they go up and down. Let's familiarize with this utility.
    Go to Cheats - Search for Cheats. The following windows appears:
    
     --------------------------------------------------------------------
    |                                                                    |
    |    ---------------------------------------------------------       |
    |   |   Address     |     Old value      |     New value      |      |
    |   |---------------|--------------------|--------------------|      |
    |   |               |                    |                    |      |
    |   |               |                    |                    |      |
    |   |               |                    |                    |      |
    |   |               |                    |                    |      |
    |   |               |                    |                    |      |
    |   |               |                    |                    |      |
    |   |               |                    |                    |      |
    |    ---------------------------------------------------------       |
    |                                                                    |
    |Search type             Compare type               Signed/Unsigned  |
    |-----------             ------------               ---------------  |
    |º Old value             º Equal                    º Signed         |
    |º Specific value        º Not equal                º Unsigned       |
    |                        º Less than                º Hexadecimal    |
    |Data size               º Less or equal                             |
    |---------               º Greater than                              |
    |º 8 bits                º Greater or equal         O Update values  |
    |º 16 bits                                                           |
    |º 32 bits                                                           |
    |                                                                    |
    |Enter Value ________________________________________                |
    |                                                                    |
    |         -----     ------     ---------      ------                 |
    |        |Start|   |Search|   |Add cheat|    |  OK  |                |
    |         -----     ------     ---------      ------                 |
     -------------------------------------------------------------------
    
       There are two types of search. Specific or related. We use specific value
    search when we know for sure the value we're looking for. Let's say, we have
    currently 5 lives. So, we go to the search window and select "Specific value".
       Next, we have to select the size. This depends on the maximum allowed value
    of the data. 8 bits is for numbers between 0 and 255 (usually lives fall into
    this range). 16 bits is for values between 0 and 65535. Larger quantities, such
    as HP, MP fall here. Last, 32 bits, calls for huge numbers, anything less than
    4294967295 is good here. Usually the money you carry and the XP fall here.
    The thing is, we can't know how the game is coded. Maybe they put the value of
    HP, that ranges between 0 and 999, in only 12 bits of data. You have to cross
    your fingers and select the one you THINK is right. Following the example for
    the 5 lives, we select "8 bits".
       Then we select how to check the data. Are we looking exactly for a specific
    number? Or just anything below is good? Or maybe we need to search for the
    numbers greater than 1000. Select your choice here. In our example, we are
    setting this to "Equal"
       The "Signed/Unsigned" box refers to the type of number we are dealing with.
    99% of the time we'll be using "unsigned", that means that a 8-bit value, goes
    from 0 to 255, while a signed one goes from -128 to 127. Hexadecimal is for
    when you'd like to search in a more pro way, but if you know the decimal value,
    unsigned is fine (values coded in BCD -binary coded decimal- are a pain, they
    use hex values but they are written as decimal. This means that if you want to
    search for decimal 45, you have to search for HEX 45).
       The checkbox "Update values" is used when you're searching for an elusive
    address. If you check this, every time you access the cheat window, the values
    in the "New value" and "Old value" column are updated.
       Finally, the value dialog is where you enter the number you're looking for.
    In our example, we'll be writing down 5.
    
       Once you're done with this, press Start, and next Search. The results will
    be displayed in the upper screen. Chances are, there are too many addresses
    with the value 5, so the system will tell you it cannot display that many
    numbers. If this is not the case, surely you'll be stuck with a bunch of
    memory addresses and you cannot know for sure which is the one you need. So,
    what do we do? Press OK and go back to the game. Continue playing and purposely
    lose a life. Now you have 4. Go back to the screen, and put 4 in the value
    dialog. This time DON'T PRESS START, as we will lose the previous search. Just
    press SEARCH and the system will search for the number 4 among the previous
    values. This will narrow our search a bit (quite a bit, hopefully). If you
    still have too many results, lose or gain another life and search again. Once
    we are done, we will have only one or two (maybe three) results. Now we save
    the game, just in case. Back to the cheat screen, we click one of the results
    and with that row selected, press Add cheat. A screen will pop up asking you
    for a new value. Most of the options are disabled, so just put the new value we
    want (let's say 9) and add a description if you want (if you are using multiple
    codes DO THIS, or you'll end with a bunch of codes and you won't know which is
    which). Press OK and go back to the game. If you selected the proper option,
    the life number should have changed by now. If not, you may have selected the
    wrong address, or maybe the game does not update the value on the screen, but
    it does change the value, internally.
    
       This won't happen always this smoothly. sometimes you don't know the real
    value you're looking for. Let's say we're playing an adventure game, and the
    HP is displayed as a bar, not as a number. We don't know the actual HP value,
    so we go to the cheat screen and select "Old value". The value dialog is grayed
    out, so we just press START and leave this window by clicking OK. We go back to
    the game, lose some HP and go back to the cheat window. This time, select the
    option "Lesser than", as the HP value surely has decreased. Click SEARCH, and
    the screen will display ALL the values that have decreased since you last
    pressed START or SEARCH. Do this a few more times, and hopefully you will get
    your value. For inputting the cheat code, do the same as before. This method is
    quite slow, but it does work, unless the data is encrypted...
    
    
    4.2.3. Analisys
    ---------------
    
       Ok, so far we know how to search for memory adresses, given a specific value
    or by trial and error. But in both cases, we have to trust the programmers have
    written the code in the same "language" we are using to read. This means, that
    the values are properly coded in hexadecimal, or at least in BCD. But sometimes
    they aren't. In this cases, all our efforts to search for an specific value
    will fail, because the numbers the search engine can look for are not the ones
    that are in the game. Let's give a simple example. If you read section 4.1.1.,
    you'll see that every computer code is really written in binary, meaning it's
    nothing more than a bunch of 0s and 1s. They are USUALLY stacked into words of
    4 bits and bytes of 8 bits, but not always. Let's say we are programming a game,
    and we have to put into memory a series of numbers that will go from 0 to 15.
    For example, weapon stats. Numbers between 0 and 15 fit in 1 word, so if we use
    1 byte per number, we are making the code readable, but we are wasting 4 bits
    per byte. Some programmers would prefer to use only one word for this, thus
    saving lots of space. But it will be hell for us, because we can only search
    for full 8-bit packs, not 4-bit. In this example, let's say we have two stats,
    with values 5 and 9. If they are programmed word-wise instead of byte-wise, you
    will have to look for the hex value 59 or 95, or worse, because they may be
    entwined with weird code.
       Our options? Be really patient and try. Once you found an address, the rest
    of them should be "around", relatively near. So, let's say we have a cheat code
    with the mem address 02020546. The rest of the game data, is more likely to be
    in the same zone, let's say the 02020XXX zone. So, we save a state in slot #1,
    try a code at random, for example, 02020500:30, and we see if something changes,
    and how. Then, we get the saved state back (this action erases all cheat codes
    not saved with the state), and try 02020500:01. This way we can see if each
    word (each digit in the value) changes something different. By wasting LOTS of
    time, we might find some useful/interesting. We'll be seeing examples of this
    in section 4.4.
    
    
    ===============
    4.3 Codebreaker
    ===============
    
       Codebreaker is a commercial cheat device that is luckily emulated by VBA.
    You can use encrypted or decrypted codes, and they are easy to manage. The good
    thing about it is the ability of making slide codes, for changing lots of
    memory addresses at once; conditional cheating, by changing a value only if a
    certain criteria is matched; or activated cheats, that remain dormant until you
    press a certain combination of buttons to activate them.
       We'll see now a brief explanation of the codebreaker formats.
       
    
    4.3.1. Codebreaker formats
    --------------------------
    
       As we said before, there are many options for this system. The main code is
    very similar to a normal hex code, as it consists mainly of an address and a 
    value. but the rest of the things are the juicy part ^_^
       This codes can be single or multiple lined. If you use multiple lined codes,
    you'll have to input all the lines at once.
    
    Formats:
    
          3XXXXXXX 00YY
                         This is the basic format. It's exactly the same as your
                         regular 1-byte hex code. It sets the value YY into the mem
                         address XXXXXXX.
                         
          4XXXXXXX YYYY
          AAAABBBB CCCC
                         The first multilined code. This is for the slide codes,
                         the ones we use for setting multiple cheats at once. The
                         bad news here is that you can only use it with 2 byte or
                         16-bit codes.
                         The first line sets the first memory address along with
                         the first value you want for that address, same as you did
                         with the previous code.
                         The second line has iteration data. AAAA is the incremental
                         step of the value. This is, if you want to set a different
                         value for each address, here you put how many numbers are
                         you rising on each step. Leave it as 0000 if you want all
                         the values to be the same.
                         BBBB tells us how many iterations are we making. That is, 
                         if you need to change 30 consecutive adresses, you will
                         need 001E here(remember to always use hex).
                         CCCC is the distance, in bytes, between two consecutive
                         addresses. AS we are using 2 byte values, the difference
                         should be at least 2.
                         
          6XXXXXXX YYYY
                         This kind of code is useless if you aren't familiar with
                         binary operations. It does an AND operation between YYYY
                         and the current value of the address. You won't be using
                         this much or at all, don't fret.
                         
          7XXXXXXX YYYY
                         This is the conditional code. It is used in combination
                         with another line below. If the address XXXXXXX has the
                         value set in YYYY, it executes the line below. Otherwise,
                         the next line is skipped. This kind of codes are useful as
                         triggers, as they activate themselves when the criteria is
                         met.
                         
          8XXXXXXX YYYY
                         The regular 2-byte code. It writes the value YYYY into the
                         address XXXXXXX.
                         
          AXXXXXXX YYYY
                         This is the same as the conditional code, but opposite.
                         The next line is only executed if the value of XXXXXXX is
                         NOT equal to YYYY.
                         
          D0000020 YYYY
                         This is also a condicional code. The difference is that in
                         this case, the condition is not a value, but a button that
                         need to be pressed. If the criteria is met, this is, if
                         the correct button or buttons are pressed, the next line
                         is executed.
                         YYYY is the sum of all the buttons you want to be pressed.
                         each button has a hex code, you select the ones you'd like
                         to use, add their values (in hex!) and put this as YYYY.
                         
                         Button   Code (hex)
                         ------   ----
                         A        0001
                         B        0002
                         Select   0004
                         Start    0008
                         Right    0010
                         Left     0020
                         Up       0040
                         Down     0080
                         R        0100
                         L        0200
                         
                         This means that if we want our code to be activated by
                         pressing Select + Up, we have to add 0004 + 0040, and then
                         we use the result (0044) in the YYYY portion of the code.
                         
                         
    ===============================
    4.4. The codes of Sword of Mana
    ===============================
    
       As I stated before, many of the values in this game are coded in a weird way.
    This means that some stats, such as the weapon and spirit levels, the HP / MP,
    are not stored as regular hex numbers in the game code, but each value has been
    chopped into pieces and stored in different adresses. This makes the direct way
    of searching them almost useless, because in a given address, you could find,
    for example, a piece of the max HP, added to another piece of the Rod level. So
    unless you have a global vision of all of the codes, looking for them is hard.
       I'll put some of my discoveries here. But be warned, it's heavy, boring
    stuff you should only read if you are really interested, or you are desperately
    need to set another values but 99 or 999 (if this is the case, mail me and I'll
    do the math for you ^_^).
       For each adress listed, I'll explain what each word does (word is the name
    of each digit of the byte), along with the formulae to calculate the final
    results.
       Another thing: I'll be using ONLY the USA version addresses here. If you use
    the EUR version, just add an hex 00000010 to all of the addresses (for example,
    USA address 02020405 becomes EUR address 02020415).
    
       All of the following addresses start with 02020---, I'll just replace the
    last three digits here. Each address has 1 byte, coded as XY (for example, 5A).
       
       In the columns X and Y you will find what variable or variables are stored
    in the first and second word (digit) of each byte.
    
    At the end, an explanation of these variables and how to make the codes work.
    
    .---------.------------.-----------.   
    | ADDRESS |     X      |     Y     |   
    .---------.------------.-----------.   
    |  3F0    |    Ch1     |    Ch0    |   
    |  3F2    |     L1     |     L0    |   
    |  3F3    |  Mc1  + ?  |    Mc0    |   
    |  3F4    |     N1     |     N0    |   
    |  3F6    |    Sw1     | 8*Sw0 + ? |   
    |  3F7    |     ?      |  Sw2 + ?  |   
    |  3F8    |     h1     |     h0    |   
    |  3F9    |     M1     | 4*M0 + h2 |   
    |  3FA    |     m0     |     M2    |   
    |  3FB    |  m2  + ?   |     m1    |   
    |  40C    |     H1     | 2*H0 + ?  |   
    |  40D    |     R1     | 8*R0 + H2 |   
    |  40E    |     K1     | 4*K0 + R2 |   
    |  40F    |     F0     |   K2 + ?  |   
    |  410    |     S1     | 8*S0 + F1 |   
    |  411    |     B1     | 4*B0 + S2 |
    |  412    |     L1     | 2*L0 + B2 |
    |  413    |     A1     | 8*A0 + ?  |
    |  414    |     ?      |   A2 + ?  |
    .---------.------------.-----------.
    
    
    Allowed values for each variable, separated by stats:
    ·----·------·     ·----·------·     ·----·------·
    |Var | Range|     |Var | Range|     |Var | Range|
    ·----·------·     ·----·------·     ·----·------·
    |Ch1 | 0-F  |     |Sw2 | 0-3  |     |A2  | 0-3  |
    |Ch0 | 0-F  |     |Sw1 | 0-F  |     |A1  | 0-F  |
    ·----·------·     |Sw0 | 0-1  |     |A0  | 0-1  |
    |L1  | 0-F  |     ·----·------·     ·----·------·
    |L0  | 0-F  |     |R2  | 0-3  |     |Mc1 | 0-7  |
    ·----·------·     |R1  | 0-F  |     |Mc2 | 0-F  |
    |N1  | 0-F  |     |R0  | 0-1  |     ·----·------·
    |N0  | 0-F  |     ·----·------·     
    ·----·------·     |K2  | 0-1  |     
    |M2  | 0-F  |     |K1  | 0-F  |     
    |M1  | 0-7  |     |K0  | 0-3  |     
    |M0  | 0-F  |     ·----·------·     
    ·----·------·     |F1  | 0-7  |     
    |m2  | 0-3  |     |F0  | 0-F  |     
    |m1  | 0-F  |     ·----·------·     
    |m0  | 0-F  |     |S2  | 0-3  |     
    ·----·------·     |S1  | 0-F  |     
    |H2  | 0-3  |     |S0  | 0-1  |     
    |H1  | 0-F  |     ·----·------·     
    |H0  | 0-7  |     |B2  | 0-1  |     
    ·----·------·     |B1  | 0-F  |     
    |h2  | 0-3  |     |B0  | 0-3  |     
    |h1  | 0-F  |     ·----·------·     
    |h0  | 0-F  |     |L1  | 0-F  |     
    ·----·------·     |L0  | 0-7  |     
                      ·----·------·     
                                        
       Ok, the only thing left is how to combine this numbers in order to make real
    stuff. Each stat (level, mp, etc...) has a specific formula, using all of the
    variables we stated. When I say something like X-Y, the hyphen is not a minus
    symbol, just a separator between words of a hex code.
    
    Character:     Ch1-Ch0 (hex)
                   This code manages the appearence of the main character. This
                   means the aspect, portrait and weapon. BE WARNED, if you put a
                   character here who does not use the SAME weapon as your original
                   char, it won't be able to attack.
    
    Level:         L1-L0 (hex)
                   As I said in the codes section, this is useless, as the level by
                   itself changes nothing.
                   
    Inner Level:   N1-N0 (hex)
                   This number tells the game how many exp points you need in order
                   to advance to the next level. This is, if you set this to 1, you
                   will need the same exp points as if you actually were level 1.
                   
    Max MP:        64*M2 + 4*M1 + M0 (this is what I meant by encrypted values :p)
    
    Current MP:    m2-m1-m0 (hex)
                   
    Max HP:        128*H2 + 8*H1 + H0
                   
    Current HP:    h2-h1-h0 (hex)
    
    Sword lvl:     32*Sw2 + 2*Sw1 + Sw0
    
    Rod lvl:       32*R2 + 2*R1 + R0
    
    Knuckles lvl:  64*K2 + 4*K1 + K0
    
    Flail lvl:     F1-F0 (hex)
    
    Scythe lvl:    32*S2 + 2*S1 + S0
    
    Bow lvl:       64*B2 + 4*B1 + B0
    
    Lance lvl:     8*L1 + L0
    
    Axe lvl:       32*A2 + 2*A1 + A0
    
    Mace lvl:      16 * Mc1 + Mc0
    
    
       Ok. What the heck man? This mumbo jumbo means that in order to change the
    level of your rod, you have to know beforehand the third "digit" of your max HP
    or you'll be changing both things by inputting a cheat. So, this practice is
    reserved only for the bravest xD
       I assume this is common practice in some games to avoid easy hacking. 
       I'll leave this here, because putting all of the codes will result in a real
    mess. Imagine that we have still left the spirit levels, the stats for every
    NPC in the game... No way. If you have been reading so far, you should be able
    to find them out by yourselves by now.
    
    
    ===============================================================================
    
                                     -----------
                                    | 5. Ending |
                                     -----------
                                     
    ===========
    5.1. Thanks
    ===========
    
        Thanks to Dan Sawchuk who made me note both the difference between the USA
    and the Euro versions, and the weird Shield and Egg codes.
    
        Thanks to Nate (The Court Judges) for a nice Companion Code I'll be
    investigating and uploading later ^_^
    
        Thanks to YOU for reading my guide, I hope it will be useful. For any
    question regarding the use of the codes mail me to suarez.lea@gmail.com (don't
    send questions about things not covered in the guide, they will be covered as I
    find them)
    
    
    ================
    5.2. Final words
    ================
    
        This guide was written by Leandro Suarez (Curambar in GameFAQS and
    Neoseeker). It is not meant to be used on any other site besides GameFAQS,
    Neoseeker and any other site I've deemed to have it hosted on. It's not to be
    edited in ANY way for other use. (Unless I give permission to do so.)
    
    Copyright © 2009 by Curambar. All rights reserved.
    ===============================================================================

    FAQ Display Options: Printable Version