Quest 64 Gameshark Faq
by Fire_Embliem
Version 1.2

Contact Information
-------------------------------------------------------------------------------
[email protected]
Killer Instinct at TASVideos

Intro
-------------------------------------------------------------------------------
The code you write will always be in hex.
You don't need to worry about the Order of Bytes section unless you
plan on using a memory editor like cheat engine, instead of making gameshark
codes. For 1 byte codes, you do use 80 and for 2 byte codes, you use 81.
For example if you want to give Fire and Earth level 50, you can do
8107BAA4 3232. The 1st 32 will be for the address of 8007BAA4 which is the
address for Fire element and the 2nd 32 will be for the address of 8007BAA5
which is Earth. If you just wanted a code for 45 water, you would do
8007BAA6 002D.


Table of Contents
-------------------------------------------------------------------------------
--Order of Bytes        (oob)

--Spell Hacks           (sphk)

--Item Hacks            (itm)

--Battle Hacks          (btl)

--Experience Hacks      (ephk)

--Monster Hacks         (mnst)

--Boss Hacks            (bsl)

--Limits                (lmt)


Order of Bytes      (oob)
-------------------------------------------------------------------------------
N64 uses big endian and Intel CPUs use little endian. If you are using an
external memory editor with an emulator (cheat engine or MHS) you will have to
change the ordering of bytes if you want to use a memory editor instead of
gameshark for viewing / modifying data in the game. For addresses of
specific values in memory, you simply change the last byte. For instance the
address for wind element in little endian = 8007BAA4. In big endian, 8007BAA7
is the address for wind element. Here is the order of bytes
big endian    0,1,2,3  4,5,6,7  8,9,A,B  C,D,E,F
little endian 3,2,1,0  7,6,5,4  B,A,9,8  F,E,D,C

You don't have to worry about changing the starting addresses of items, spells
, or monsters. You can refer to the ordering table above to quickly swap the
address between big and little endian. You need to change the order of bytes
for spell, item, and monster variables. For example Byte 1 for spells in big
endian = Upper byte of level requirement. In little endian, Byte 1 for spells
= AOE of spell.

I like to use a memory editor like cheat engine because after spending a while
making a giant table, I can quickly view or change data. It's nice to see the
health and mp of monsters, as well as the number of turns left for status
effects. All the information below uses the big endian format. Also, you don't
have to worry about doing this for 4 byte variables because the starting
address will still be the same.


Spell Hacks      (sphk)
-------------------------------------------------------------------------------
There are way to many codes to write for spells, so I will provide all the
information needed so you can quickly make your own spell codes. I omit some
byte numbers since they will always crash the game if modified. For any
variable that uses floating point, you can use a float to hex calculator if
you want to set specific values. Otherwise, you can simply modify the most
significant bit. Some of these bytes determine status effects. If you set that
byte to a specific value, that spell will do a certain status effect. For
example, if you give the 61st byte of a spell the value of 3, that spell
will have the status effect of Spirit Armor Lv.1.

Spell Variables
Byte 1-2   Determine Level Requirement
Byte 3     Something to do with hit stun
Byte 4     Determines AOE and when you can use spell
Byte 5-8   Something to do with Menu
Byte 9     Something to do with menu
Byte 11-12 Range (this only works if Projectile = 0)
Byte 13-14 Base Damage
Byte 16    Accuracy (anything higher than 100 is unnecessary)
Byte 18    Spell type
Byte 20    Projectile (1 = can only rise or fall, 0 = can move anywhere)
Byte 21-22 Projectile Travel Height
Byte 24    (1 = auto hit, 0 = not auto hit)
Byte 26    Designated Target(0 & 1 = enemy, 2 = yourself)
Byte 29-32 Size (Floating Point value)
Byte 33-34 Number of Hits
Byte 35-36 Number of (frames delayed / 2) between hits
Byte 37-38 (# of frames delayed / 2 before the spell takes effect)
Byte 39-40 Starting Point
Byte 42    Homing (0 = none, 1 = slight, 3 = good)
Byte 47-48 Velocity (not fully sure)
Byte 49-50 Direction of attack??
Byte 51    Compression
Byte 52    Vamps Touch (crashes game when used with damage spells)
Byte 53    Attack (1 = power staff Lv. 1 , 2 = power staff Lv. 2)
Byte 54    Restriction
Byte 55    Movement (1 = Slow Enemy, 2 = Wind Walk)
Byte 56    Agility (1 = Evade Lv.1, 2 = Evade Lv.2, 3 = Slow Enemy)
Byte 57    Silence
Byte 58    Soul Search
Byte 59    Magic Barrier
Byte 60    Confusion
Byte 61    Defense (1 = Weak Lv2, 2 = Weak Lv1, 3 = Armor Lv1, 4 = Armor Lv 2)
Byte 62    Gives the status effect that = 2048
Byte 65-68 Most likely nothing

Starting Addresses of each spell
800C06A0 = Fire Ball Lvl. 1          800C06E4 = Fire Ball Lvl. 2
800C0728 = Power Staff Lvl. 1        800C076C = Homing Arrow Lvl. 1
800C07B0 = Hot Steam Lvl. 1          800C07F4 = Fire Ball Lvl. 3
800C0838 = Compression               800C087C = Power Staff Lvl. 2
800C08C0 = Fire Pillar               800C0904 = Homing Arrow Lvl. 2
800C0948 = Fire Bomb                 800C098C = Vampire's Touch
800C09D0 = Magma Ball                800C0A14 = Extinction
800C0A58 = Hot Steam Lvl. 2          800C0A9C = Rock Lvl. 1
800C0AE0 = Rock Lvl. 2               800C0B24 = Spirit Armor Lvl. 1
800C0B68 = Rolling Rock              800C0BAC = Weakness Lvl. 1
800C0BF0 = Rock Lvl. 3               800C0C34 = Magnet Rock
800C0C78 = Spirit Armor Lvl. 2       800C0CBC = Avalanche
800C0D00 = Confusion                 800C0D44 = Weakness Lvl. 2
800C0D88 = Rock Shower               800C0DCC = Magic Barrier
800C0E10 = Rolling Rock Lvl. 2       800C0E54 = Weaken All
800C0E98 = Water Pillar Lvl. 1       800C0EDC = Water Pillar Lvl. 2
800C0F20 = Healing Lvl. 1            800C0F64 = Soul Searcher Lvl. 1
800C0FA8 = Water Pillar Lvl. 3       800C0FEC = Ice Wall
800C1030 = Ice Knife                 800C1074 = Exit
800C10B8 = Escape                    800C10FC = Return
800C1140 = Healing Lvl. 2            800C1184 = Soul Searcher Lvl. 2
800C11C8 = Walking Water             800C120C = Drain Magic
800C1250 = Invalidity                800C1294 = Wind Cutter Lvl. 1
800C12D8 = Wind Cutter Lvl. 2        800C131C = Restriction
800C1360 = Evade Lvl. 1              800C13A4 = Silence Lvl. 1
800C13E8 = Wind Cutter Lvl. 3        800C142C = Large Cutter
800C1470 = Restriction Lvl. 2        800C14B4 = Wind Bomb
800C14F8 = Evade Lvl. 2              800C153C = Cyclone
800C1580 = Slow Enemy                800C15C4 = Wind Walk
800C1608 = Silence Lvl. 2            800C164C = Ultimate Wind
800C1690 = Fire Blast                800C16D4 = Earth Blast
800C1718 = Wind Razor                800C175C = Wind Zipper
800C17A0 = Bubble Shot               800C17E4 = Bubble Shield
800C1828 = Lava Ball                 800C186C = Explosion
800C18B0 = Laser Beam                800C18F4 = Dove Razor
800C1938 = Ground Pound              800C197C = Gil Claw
800C19C0 = Spirit Sword              800C1A04 = Green Laser
800C1A48 = Solar Blast               800C1A8C = Fire Wave
800C1AD0 = Flame Arrows

Spell Type Chart (anything after 09 is useless)
00 = Damage
01 = Heal
02 = MP Drain
03 = Escape
04 = Return
05 = No damage (this is what buff spells use)
06 = Exit
07 = Extinction
08 = Invalidity
09 = Invalidity with damage
0A = Compression
0B = Vamps Touch
0C = Power staff
0D = Restriction
0E = Lower Movement
0F = Evade
10 = Silence
11 = Soul Searcher
12 = Magic Barrier
13 = Confusion
14 = Def Up / Down

An example of spell type code is to change magic barrier from no damage to
healing. First you must add a base damage. 800C0DCC is address of M Barrier.
You add 0C (0C = 12) to 800C0DCC which = 800C0DD8. Then you add 0x11
to 800C0DCC, which = 800C0DDD. Here's the code below
800C0DD8 0008  (0008 is the same base as heal lvl 2)
800C0DDD 0001  (this changes the spell type, to a healing type)
The healing formula will be based on the element of the spell. Not water.

This chart below explains what the lower nibble of Byte 4 does. I haven't
figured out what the upper nibble does yet. As far as I know, F3 could have
the same effect as 03 for Byte 4.

Effects for Byte 4          Target      In Battle   Outside of Battle
00 = Very transparent   Single Target, Can't  Cast,   Can't    Cast
01 = Very transparent   Single Target, Can    Cast,   Can't    Cast
02 = Very transparent   Single Target, Can't  Cast,   Can      Cast
03 = Less transparent   Single Target, Can    Cast,   Can      Cast
04 = More colorful      Multi  Target, Can't  Cast,   Can't    Cast
05 = More colorful      Multi  Target, Can    Cast,   Can't    Cast
06 = More colorful      Multi  Target, Can't  Cast,   Can      Cast
07 = More colorful      Multi  Target, Can    Cast,   Can      Cast
08 = Very transparent   Single Target. Can't  Cast,   Can't    Cast
09 = Very transparent   Single Target, Can    Cast,   Can't    Cast
0A = Very transparent,  Single Target, Can't  Cast,   Can      Cast
0B = Less transparent,  Single Target, Can    Cast,   Can      Cast
0C = More colorful,     Multi  Target, Can't  Cast,   Can't    Cast
0D = More colorful,     Multi  Target, Can    Cast,   Can't    Cast
0E = More colorful,     Multi  Target, Can't  Cast,   Can      Cast
0F = More colorful,     Multi  Target, Can    Cast,   Can      Cast

When creating your own codes, keep in mind for any variable with more than one
byte, the order of significance is left to right because N64 uses big endian.
For example, if you want to change the base damage of Fire Ball Lv.1 to 545,
you get the starting address of Fire Ball Lv.1 which is 800C06A0. This address
is the address to Byte 1 of Fire Ball Lv.1. For damage, you will need to edit
Byte 13 and/or 14. 545 in hex = 221. One byte can only have 2 digits so you
would have to put 02 in Byte 13 and 21 in Byte 14. Since 800C06A0 is byte 1,
you would just add 0C to 800C06A0 to get the address of Byte 13.
The code for 545 base damage for Fire Ball Lv. 1 is
810C06AC 0221

If you wanted to change the Level requirement for a spell, you would simply
edit Byte 2 since no spell ever requires past level 255.
800C06A1 00?? is the code to change level requirement for Fire Ball Lv.1.


Item Hacks      (itm)
-------------------------------------------------------------------------------
There are 150 item slots
8008CF78 is the address for Item Slot 1. The address for Slot 100 would be
8008CF78 + 0x63 (99 in decimal) = 8008CFDB

Item Slot Values
00  Spirit Light          01  Fresh Bread         02  Honey Bread
03  Healing Potion        04  Dragon's Potion     05  Dew Drop
06  Mint Leaves           07  Heroes Drink        08  Silent Flute
09  Celine's Bell         0A  Replica             0B  Giant's Shoes
0C  Silver Amulet         0D  Golden Amulet       0E  White Wings
0F  Yellow Wings          10  Blue Wings          11  Green Wings
12  Red Wings             13  Black Wings         14  Earth Orb
15  Wind Jade             16  Water Jewel         17  Fire Ruby
18  Eletal's Book         19  Dark Goal Key       FF  Empty

Item Location (for changing item effects)
803A91F0 = Sacred Water     803A91FC = Fresh Bread     803A9208 = Honey bread
803A9214 = Healing Potion   803A9220 = Dragon Potion   803A922C = Dew Drop
803A9238 = Mint Leaves      803A9244 = Heroes Drink    803A9250 = Silent Flute
803A925C = Celines Bell     803A9268 = Replica         803A9274 = Giant's Shoes
803A9280 = Silver Amulet    803A928C = Golden Amulet   803A9298 = White Wings
803A92A4 = Yellow Wings     803A92B0 = Blue Wings      803A92BC = Green Wings
803A92C8 = Red Wings        803A92D4 = Black Wings     803A92E0 = Earth Orb
803A92EC = Wind Jade        803A92F8 = Water Jewel     803A9304 = Fire Ruby
803A9310 = Eletale's Book

Item variables
Byte 1   = Unknown
Byte 2   = Determines when the item can be used
Byte 3   = unknown
Byte 4   = Effect of the item
Byte 5-8 = Values that correspond to Byte 4

Item effects on Byte 2
00 = Can't use item at all
01 = Can only use item outside of battle
03 = Can use item both in and out of battle
06 = Can only use item inside of battle
0A = Can only use item inside of battle

Item effects on Byte 4
0 = None
1 = Healing (bytes 5-6 = HP Healed, bytes 7-8 = MP Healed)
2 = Teleporting (wings) (byte 6 determines where you teleport)
3 = Spell Effects (byte 5 = spell element, byte 6 = spell number)

If you want Fresh Bread to give you 50 MP and HP you would get the starting
address of Fresh Bread which is 803A91FC. Then you find the byte you want to
edit (8 since the number you want to input is < 255). 803A91FC + 7 = 803A9203
So the code for Fresh Bread to heal 50 MP on top of 50 HP is
803A9203 0032

Another good example is teleporting while in a battle. You would have to do
this for each specific wing. The address of White Wings = 803A9298. So you add
1 to the address, since we are dealing with Byte #2. The code would be
803A9299 0003

Item effects for Byte 6, if Byte 4 = 02 (Teleport locations)
00 - Melrode     01 - Dondoran    02 - Larapool    03 - Normoon
04 - Limelin     05 - Brannoch    06 - First Boat  11 - Middle of Melrode
13 - Middle of Dondoran Flats     15 - Middle of West Carmagh
94 - Solvaring Battle             97 - Near entrance to Nepty Battle
9A - Middle of Boil Hole          E7 - Middle of Melrode(World of Mammon)

Item effects of Byte 5 = Element of spell, if Byte 4 = 03
00 = Fire   01 = Earth   02 = Water   03 = Wind   04 = Boss spells

Byte 6 determines which spell
Fire  (00)
00 Fire Ball Lv1   01 Fire Ball Lv1     02 staff1           03 arrow1
04 Hot Steam Lv1   05 Fire Ball Lv3     06 Compression      07 Power Staff Lv2
08 Fire Pillar     09 Homing Arrow Lv2  0A Fire Bomb        0B vampire's Touch
0C Magma Ball      0D Extinction        0E Hot Steam Lv2

Earth (01)
00 Rock Lv1        01 Rock Lv2          02 Sp Armor Lv1     03 Rolling Rock Lv1
04 weak1           05 Rock Lv3          06 Magnet Rock      07 Sp Armor Lv2
08 Avalanche       09 Confusion         0A Weakness Lv2     0B Rock Shower
0C Magic Barrier   0D Rolling Rock Lv2  0E Weaken All

Water (02)
00 Water Pillar 1  01 Water Pillar 2    02 Healing Lv1      03 Soul Search Lv1
04 Water Pillar 3  05 Ice wall          06 Ice knife        07 Exit
08 Escape          09 Return            0A Healing Lv2      0B Soul Search Lv2
0C walking water   0D Drain Magic       0E Invalidity

wind (03)
00 Wind Cutter 1   01 Wind Cutter 2     02 Restriction 1    03 Evade Lv1
04 Silence Lv1     05 Wind Cutter 3     06 Large Cutter     07 Restriction 2
08 Wind Bomb       09 Evade Lv2         0A Cyclone          0B Slow Enemy
0C Wind Walk       0D Silence Lv2       0E Ultimate Wind

Boss spells (04)
00 Fire Blast      01 Earth Spikes      02 Wind Razor       03 Wind Zipper
04 Bubble Shot     05 Bubble Shield     06 Lava Ball        07 Explosion
08 Laser Beam      09 Dove Razor        0A Ground Pound     0B Slash
0c Spirit Sword    0D Green Laser       0F Solar Blast      0F Fire Wave
10 Flame Arrows

Giant's Shoes actually uses the spell Wind Walk. You could change the spell to
Magic Barrier. To do so, you take the starting address of Giant's Shoes
which is 803A9274 and add 4. So Byte 5 is at the address of 803A9278. The code
to change the element of the spell to earth = 803A9278 0001. Then you need to
change byte 6 to 0C. 813A9278 010C is the complete code.


Battle Hacks      (btl)
-------------------------------------------------------------------------------
Total Elements in Battle determine club damage and how hard you hit through
Defense. IB means in battle. Agility IB and Defense IB are the variables that
deal with Agility and Defense in battle. At the start of a battle, it copies
your Defense and Agility. If you level up during a battle, it will not update,
unless you use a spell buff that changes the stat. If you want to change
Agility during a battle, you would need to edit agility IB instead of Agility.
Same goes for defense. Battle Attack is 16 (0x10) by default, and is a club
damage multiplier. Power Staff Lv1 raises it to 24 and Lv2 raises it to 32.
You divide Battle Attack by 16 to get the multiplier. Movement area multiplier
is a floating point variable that multiplies your movement range. The default
value for this 4 Byte variable is 3F800000 which is 1.0 in floating point.
For enemy IB Attack, it only determines how hard it hits through defense. If
you want to change the enemy's max damage, you have to edit their assigned
attack. You can find the address to those in the Monster Hacks section. Don't
mess with the Battle State unless you know what you are doing. It's very easy
to mess up the game and crash.

Codes for your character
Current Hp               = 8007BA84 - 8007BA85
Max Hp                   = 8007BA86 - 8007BA87
Current MP               = 8007BA88 - 8007BA89
Max MP                   = 8007BA8A - 8007BA8B
Agility                  = 8007BA8C - 8007BA8D
Defense                  = 8007BA8E - 8007BA8F
Fire                     = 8007BAA4
Earth                    = 8007BAA5
Water                    = 8007BAA6
Wind                     = 8007BAA7
Total Elements IB        = 8007BBBC - 8007BBBD
Battle State             = 8008C593 (0 = not in battle, 1 = in battle)
Agility IB               = 8007BBBE - 8007BBBF
Defense IB               = 8007BBC0 - 8007BBC1
Battle Attack            = 8007BBC2 - 8007BBC3
Movement Area Multiplier = 8007BBC8 - 8007BBCB (default value = 3F800000)
Running Speed            = 8007BAE4 (3F is default running speed)

Codes for enemy's in battle stats
Enemy #1 HP            = 8007C9A2 - 8007C9A3
Enemy #1 MP            = 8007C9A4 - 8007C9A5
Enemy #1 Size          = 8007C9E0 - 8007C9E3 (default value = 3F800000)
Enemy #1 Status Effect = 8007CA28 - 8007CA29
Enemy #1 Attack        = 8007CAAC - 8007CAAD
Enemy #1 Agility       = 8007CAAE - 8007CAAF
Enemy #1 Defense       = 8007CAB0 - 8007CAB1

Enemy #2 HP            = 8007CACA - 8007CACB
Enemy #2 MP            = 8007CACC - 8007CACD
Enemy #2 Size          = 8007CB08 - 8007CB0B
Enemy #2 Status Effect = 8007CB50 - 8007CB51
Enemy #2 Attack        = 8007CBD4 - 8007CBD5
Enemy #2 Agility       = 8007CBD6 - 8007CBD7
Enemy #2 Defense       = 8007CBD8 - 8007CBD9

Enemy #3 HP            = 8007CBF2 - 8007CBF3
Enemy #3 MP            = 8007CBF4 - 8007CBF5
Enemy #3 Size          = 8007CC30 - 8007CC33
Enemy #3 Status Effect = 8007CC78 - 8007CC79
Enemy #3 Attack        = 8007CCFC - 8007CCFD
Enemy #3 Agility       = 8007CCFE - 8007CCFF
Enemy #3 Defense       = 8007CD00 - 8007CD01

Enemy #4 HP            = 8007CD1A - 8007CD1B
Enemy #4 MP            = 8007CD1C - 8007CD1D
Enemy #4 Size          = 8007CD58 - 8007CD5B
Enemy #4 Status Effect = 8007CDA0 - 8007CDA1
Enemy #4 Attack        = 8007CE24 - 8007CE25
Enemy #4 Agility       = 8007CE26 - 8007CE27
Enemy #4 Defense       = 8007CE28 - 8007CE29

Enemy #5 HP            = 8007CE42 - 8007CE43
Enemy #5 MP            = 8007CE44 - 8007CE45
Enemy #5 Size          = 8007CE80 - 8007CE83
Enemy #5 Status Effect = 8007CEC8 - 8007CEC9
Enemy #5 Attack        = 8007CF4C - 8007CF4D
Enemy #5 Agility       = 8007CF4E - 8007CF4F
Enemy #5 Defense       = 8007CF50 - 8007CF51

Enemy #6 HP            = 8007CF6A - 8007CF6B
Enemy #6 MP            = 8007CF6C - 8007CF6D
Enemy #6 Size          = 8007CFA8 - 8007CFAB
Enemy #6 Status Effect = 8007CFF0 - 8007CFF1
Enemy #6 Attack        = 8007D074 - 8007D075
Enemy #6 Agility       = 8007D076 - 8007D077
Enemy #6 Defense       = 8007D078 - 8007D079


Experience Hacks      (ephk)
-------------------------------------------------------------------------------
Here are the starting and ending addresses of the bytes for Level and Exp.
I wouldn't mess with the exp ones unless you add an activator because you
will freeze the exp which isn't good. Although Combat Exp IB is ok to freeze.
Combat Exp IB = 8007BA68 - 8007BA6B  (this = exp you get after a victory)
Combat Exp    = 8007BA90 - 8007BA93
HP EXP        = 8007BAA8 - 8007BAA9
MP Exp        = 8007BAAA - 8007BAAB
Agility Exp   = 8007BAAC - 8007BAAD
Defense Exp   = 8007BAAE - 8007BAAF

Level variables determine how much exp you need to increase a stat.
Normally Agility, MP, Defense, and HP stop at 54, meaning after you level up
54 times, the exp rate stays the same from then on. Combat goes up to 98, then
after that, you cannot gain any more elements through battle.

HP Lvl      = 8007BAB0
MP Lvl      = 8007BAB1
Agility Lvl = 8007BAB2
Defense Lvl = 8007BAB3
Combat Lvl  = 8007BAB4


Monster Hacks      (mnst)
-------------------------------------------------------------------------------
Monsters are divided into groups. The groups loaded into memory, depend on
the location you are in. A lot of the variables are unknown to me, so I only
posted what I know.

Monster Stat variables
Byte 3-4   = HP
Byte 9-10  = Agility
Byte 11-12 = Defense
Byte 13-16 = Experience Given
Byte 21-24 = Size of monster (also determines size of certain spells)
Byte 25-28 = Camera distance after seeing attack
Byte 36    = Monster's Element
Byte 39-40 = Attack
Byte 46    = Number of Attacks they can do
Byte 50    = Item Drop

Starting Addresses of each monster
Judgement         = 8023695C          Pale Rider        = 80236994
Pin Head          = 802369CC          Spriggan          = 80236A04
Multi Optics      = 80268DAC          Mimic             = 80268DE4
Crawler           = 80268E1C          Scorpian          = 80268E54
Scare Crow        = 80268E8C          Wyvern            = 80268EC4
Skelebat          = 80268EFC          Cryshell          = 80268F34
Blood Gell        = 80268F6C          Caterpillar       = 80268FA4
Fish Man          = 80268FDC          Were Hare         = 802705F4
Hell Hound        = 8027062C          Man Eater         = 80270664
Big Mouth         = 8027069C          Bumpershoot       = 802706D4
Parassault        = 8027070C          Orc Jr            = 80270744
Gremlin           = 8027077C          Skeleton          = 802707B4
Ghost Hound       = 802707EC          Merrow            = 80270824
Wolf Goat         = 8027085C          Ork               = 80278974
Ghost             = 802789AC          Will-O'-Wisp      = 802789E4
Sprite            = 80278A1C          Jack-O'-Lantern   = 80278A54
Arachnoid         = 80278A8C          Lamia             = 80278AC4
Temptress         = 80278AFC          Pixie             = 80278B34
Grangach          = 80278B6C          Thunder Jell      = 80278BA4
Termant           = 80278BDC          Sandman           = 80281CFC
Were Cat          = 80281D34          Nightmare         = 80281D6C
Blue Man          = 80281DA4          Winged Sunfish    = 80281DDC
Gloom Wing        = 80281E14          Ogre              = 80281E4C
Rocky             = 80281E84          Red Wyvern        = 80281EBC
Flamed Mane       = 80281EF4          Magma Fish        = 80281F2C
Red Rose Knight   = 80281F64          White Rose Knight = 80281F9C
Goblin            = 8029564C          Frog King         = 80295684
Apophis           = 802956BC          Mad Doll          = 802956F4
Death Hugger      = 8029572C          Kobold            = 80295764
Man Trap          = 8029579C          Bat               = 802957D4
Frog Knight       = 8029580C          Marionasty        = 80295844
Dark Goblin       = 8029587C          Hot Lips          = 802958B4
Ghost Stalker     = 802958EC          Treant            = 80295924
Cockatrice        = 8029595C

To make Fish Man drop Red Wings. The starting address is 80268FDC. You add
49 (0x31) which = 8026900D. Red wings = 0x12 . So code = 8026900D 0012


Boss Hacks      (mnst)
-------------------------------------------------------------------------------
Starting address of Boss stats
Solvaring = 803A9F24
Zelse     = 803A9F5C
Nepty     = 803A9F94
Shilf     = 803A9FCC
Fargo     = 803AA004
Guilty    = 803AA03C
Beigis    = 803AA074
Mammon    = 803AA0AC

The order of bytes is the same as regular monsters, so item drop = 50th Byte.
If you wanted to give zelse, extra spells you get Zelse's starting address
which is 803A9F5C then add 45 (0x2D), since number of attacks is the 46th byte.
Code = 803A9F89 00??

Addresses for HP Bonus from Bosses
Solvaring = 8004C2C0 - 8004C2C1
Zelse     = 8004C2C2 - 8004C2C3
Nepty     = 8004C2C4 - 8004C2C5
Shilf     = 8004C2C6 - 8004C2C7
Fargo     = 8004C2C8 - 8004C2C9
Guilty    = 8004C2CA - 8004C2CB
Beigis    = 8004C2CC - 8004C2CD
Mammon    = 8004C2CE - 8004C2CF

If you wanted Solvaring to give you 266 hp after beating him, the code =
8104C2C0 010A

Boss Flag = 8007D19B (this determines which bosses you've beaten)
Boss Flag values (Hex)
00 = No bosses beat
01 = Solvaring
02 = Zelse
04 = Nepty
08 = Shilf
10 = Fargo
20 = Guilty
40 = Beigis
80 = Mammon

When you beat multiple bosses, you add them together. 8007D19B 0003 means you
beat Zelse and Solvaring. 8007D19B 0018 means you only beat Shilf and Fargo.


Limits      (lmt)
-------------------------------------------------------------------------------
This section is for codes that change the rules of the game.
Element Limit determines max number per element. Default value = 50 (0x32)
Element Limit for Fire  = 8001F6FF 00??
Element Limit for Earth = 8001F7C7 00??
Element Limit for Water = 8001F73F 00??
Element Limit for Wind  = 8001F77F 00??
If you wanted Fire to have the limit of 99 the code = 8001F6FF 0063

Level Limits
HP Level Limit      = 800076B3 00??
MP Level Limit      = 8000777B 00??
Agility Level Limit = 8000781F 00??
Defense Level Limit = 800078C7 00??
These limits aren't really useful unless you simply want to change the exp
rate of a stat. Level limits cap at 54, so after leveling up 54 times, the
exp rate stays the same. These codes will only work if you haven't already
reached the limit you want. If you already went past the level limit you
wanted, then go to the Exp section.

Combat Level Limit
Combat is a 1 byte value and represents how many times you can level up from
battles. I put this in it's own category to prevent possible confusion. You
simply give both addresses the same value.
2 addresses that deal with Combat Limit  = 8000790B & 80007947
8000790B 0080
80007947 0080   gives you the limit of 128 max combat

Stat Limits (Max Stats possible)
For the left set, you have to set the number to 1 higher than your desired
limit, but the right set, you set the number = to the limit you want. The
default value for HP and MP is 501. Agility and Defense are set to 256. The
left set allows you to gain 1 stat after leveling up, while the right set
allows you to gain xp until you have x amount of a stat.
HP Limit      = 80007676 - 80007677    80007622 - 80007623
MP Limit      = 8000773E - 8000773F    800076F2 - 800076F3
Agility Limit = 800077F6 - 800077F7    800077AE - 800077AF
Defense Limit = 8000789E - 8000789F    80007852 - 80007853

Here are code examples for setting the limit of each stat
511 max AGL     511 max DEF     755 max HP     755 max MP
800077AE 0001   80007852 0001   80007622 0002  800076F2 0002
800077F6 0002   8000789E 0002   80007676 0003  8000773E 0003

Code for unlimited spirits
Address of 1st spirit   = 80086A19 00?? (00 = available, 01 = gone)
Address of Extra spirit = 80086A31 00??

Teleport unlock codes
800222CB 0000 lets you teleport out of forests, dungeons, and mammons world.
800222E4 0010 lets you teleport out of Isle of sky

Uncap Item limit = 800036B1 0000

Recover X amount of MP after running   = 8000385B 00??  (1 is default value)
Faster mp recovery while running       = 80070F39 0022
Recover Mp while running during battle = 800037E7 0000