Glitch City Laboratories Archives

Glitch City Laboratories closed on 1 September 2020 (announcement). This is an archived copy of a thread from Glitch City Laboratories Forums.

You can join Glitch City Research Institute to ask questions or discuss current developments.

You may also download the archive of this forum in .tar.gz, .sql.gz, or .sqlite.gz formats.

Emulation & ROM Hacking

Zelda Oracle Of Ages Inventory Hacking - Page 1

Zelda Oracle Of Ages Inventory Hacking

Posted by: coczero
Date: 2013-05-21 10:13:53
So the past few days I was digging trough the memory of OOA. I found some pretty cool inventory addresses and I just thought I'd share them with you. This isnt complete and I am still researching but, well here we go.

The two equipped items are located at C688 for the "A" button and C689 for the "B" button.
The inventory spaces are C68A to C699.
Here are the HEX values for the items
01 - Wooden Shield L-L-
02 - Fists
03 - Bombs ()
04 -  Cane Of Somaria
05 -  Wooden Sword L-1
06 - Boomerang
07 - Harp Of Ages
08 - Mystery Seeds
09 - nothing
10 - Nothing
11 - Harp Of Ages with a song
12 - nothing
13 - Mystery Seeds
14 - nothing
15 - Shovel
16 - Actually power bracelet but will show as mirror shield
17 - Rocs Feather
18 - nothing
19 - Seed bag with ember seeds
20 - Ember seeds
21 - Scent seeds
22 - Pegasus seeds
23 - Gale seeds
24 - Mystery seeds
25 - Tune Of Echoes
26 - Tune Of Currents
27 - Tune Of Ages
28 - nothing
29 - nothing
30 - nothing
31 - nothing
32 - nothing
33 - nothing
34 - Gasha Seeds
35 - nothing
36 - Maku seed
37 - nothing
38 - nothing
39 - nothing
40 - Mystery seeds
41 -  Poe Clock
42 - Graveyard Key
43 -  Crown Key
44 -  Mermaid Key
45 -  Old Mermaid Key
46 - Library Key
47 - nothing
48 - Ricky's boxing gloves
49 -  Bomb flower
50 - ???
51 - Fairy powder
52 - Cheval rope
53 - Members Card
54 -  Island Chart
55 -  Book Of Seals
56 - nothing
57 - nothing
58 - Bomb flower
59 - Introduction
60 - Seed bag with ember seeds
61 - Seed bag with scent seeds
62 - Seed bag with pegasus seeds
63 - Seed bag with gale seeds
64 - Seed bag with mystery seeds
65 - Seed shooter with ember seeds
66 - Seed shooter with scent seeds
67 - Seed shooter with pegasus seeds
68 - Seed shooter with gale seeds
69 - Seed shooter with mystery seeds
70 - Powerbracelet
71 - Powerglove
72 -  Poe Clock
73 -  Stationary
74 -  Stink Bag
75 -  Tasty Meat
76 -  Doggy Mask
77 -  Dumbbell
78 -  Cheesy Mustache
79 -  Funny Joke
80 - Ricky's flute
81 - Dimitri's Flute
82 -  Moosh's Flute
83 - Harp of ages
84 - Harp of ages with song
85 - Harp of ages with song
86 - Harp of ages with song
87 -  Cracked Tuni Nut
88 - nothing
89 -  Tuni Nut
90 - ???
91 - Ring
92 -  Dumbbell
93 -  Ancient wood
94 -  Falling Star
95 -  Stationary
96 -  Stationary
97 - ???
98 - Ring
99 -  Strange flute

A0 -  Stink bag
A1 -  Graveyard key
A2 - ???
A3 -  Save screen
A4 - Mirror Shield
A5 -  Scent seeds
A6 -  Save screen

A7 - Rocs feather
A8 - L-2 Ring Box
A9 - ???

B0 - Scent seeds
B1 - ???
B2 - Falling Star
B3 - Seed Shooter
B4 - Book Of Seals
B5 - Echoing Howl
B6 - Gasha Seed
B7 - Dimitri's Flute
B8 - Mystery Seeds
B9 - Burning Flame

C0 - Ring
C1 - ???
C2 - Seed Shooter
C3 - ???
C4 - Ring
C5 - Ancient Wood
C6 - Bomb Flower
C7 - Eternal Spirit
C8 - Ring
C9 - Doggie Mask

D0 - L-2 Ring Box
D1 - Bombs
D2 - Bombs
D3 - Sacred Soil
D4 - Iron Shield
D5 - Ring
D6 - Ring
D7 - Biggoron's Sword
D8 - Sacred Soil
D9 - Wooden Shield

E0 - Ring
E1 - Eternal Spirit
E2 - ???
E3 - Library Key
E4 - Ring
E5 - Book Of Seals
E6 - Eternal Spirit
E7 - Pieces Of Heart
E8 - ???
E9 - Lava Juice

F0 - Strange Flute
F1 - Pieces Of Heart
F2 - Strange Flute
F3 - Fairy Powder
F4 - Ring
F5 - ???
F6 - Tokay Eyeball
F7 - Falling Star
F8 - Tokay Eyeball
F9 - Ancient Wood

0A - Tuni Nut, works like a hookshot
0B - nothing
0C - Biggoron's Sword
0D - Bombchu
0E - Strange Flute
0F - Seed shooter with ember seeds

1A - nothing
1B - nothing
1C - nothing
1D - nothing
1E - nothing
1F - nothing

2A - nothing
2B - nothing
2C - nothing
2D - Ring
2E - Zora's Flippers
2F - Magic Potion

3A - nothing
3B - nothing
3C - nothing
3D - nothing
3E - nothing
3F - nothing

4A - Mermaid Suit
4B - Slate
4C - Cracked Tuni Nut
4D - Scent Seedling
4E - Zora Scale
4F - Tokay Eyeball

5A - Lava Juice
5B - Brother Emblem
5C - Goron Vase
5D - Goronade
5E - Rock Sirloin
5F - nothing

6A - Wooden Sword L-1
6B - Noble Sword L-1
6C - Master Sword L-1
6D - Wooden Shield L-1
6E - Iron Shield L-1
6F - Mirror Shield L-1

7A - Touching Book
7B - Magic Oar
7C - Sea Ukelele
7D - Broken Sword
7E - nothing
7F - Strange Flute

8A - Switch Hook
8B - Long Hook
8C - Seed Shooter
8D - Ring
8E - Cheesy Mustache
8F - Lonely Peak

9A - ???
9B - Biggoron's Sword
9C - Ring
9D - Dumbbell
9E - Seed Shooter
9F - Lava Juice

AA - Stink Bag
AB - Bombs
AC - Scent Seedlings
AD - ???
AE - Power Bracelet
AF - Roc's Feather

BA - Noble Sword
BB - Ring
BC - Ember Seeds
BD - Lonely Peak
BE - Ember Seeds
BF - Ring

CA - Ring
CB - Noble Sword
CC - ???
CD - Ring
CE - ???
CF - Ring

DA - Bomb Flower
DB - ???
DC - L-2 Ring Box
DD - Shovel
DE - Bombs
DF - Strange Flute

EA - Falling Star
EB - Strange Flute
EC - Cane Of Somaria
ED - Poe Clock
EE - Ring
EF - Ring

FA - Tune Of Ages
FB - L-2 Ring Box
FC - ???
FD - Moosh's Flute
FE - Ring
FF - Tokay Eyeball


Now, problem with most of these values is, that they are just glitch items that do nothing. The problem is that the items which are not just usable but also have something like level, or ammunition require certain addresses to be changed before working properly. I have not figured all out yet, but I will update this post as soon as I do.
Things I figured out:

Power bracelet:

Needs C6B8 set to either 01 or 02 to work. 01 is normal power bracelet and 02 is power glove.

Seed bag:
Well, the seed bag is a bit more complicated. C69E are the available sorts of seeds. Thanks to IIMarckus, helping me figure out how this address works.
0b00001 ember
0b00010 scent
0b00100 pegasus
0b01000 gale
0b10000 mystery
01 - ember
02 - ember + scent
07 - ember + scent + pegasus
0F - ember + scent + pegasus + gale
1F - ember + scent + pegasus + gale + mystery



C6C4 is the currently selected sort.
00 - Ember seeds
01 - Scent seeds
02 - Pegasus seeds
03 - Gale seeds
                04 - Mystery seeds


Of course you also need "seed ammunition" if you want to call it like that. They are located at C6B9 to C6BD in the same order as the selected seeds.


Sword & Shield:


To have a normal working sword and shield you need to assign the level address of both. They are:
C6AF for shield
C6B2 for sword


Items which still need testing:
-Bombs
-Harp Of Ages
-Hookshot
-Bombchu
-Seed Shooter



Ring Box:
C6CC tells the game if you have one and which level your ring box is.

C6CD is how many unidentified rings you have. I figured out you cant identify them, you can open the dialog (what you cant do when you have none) but it doesnt show any rings to identify. Maybe there is another address which has to be changed.

C6C6 - C6CA are the quipped rings. I also made a HEX list for them:
00 - Friendship Ring
01 - Power Ring L-1
02 - Power Ring L-2
03 - Power Ring L-3
04 - Armor Ring L-1
05 - Armor Ring L-2
06 - Armor Ring L-3
07 - Red Ring
08 - Blue Ring
09 - Green Ring
10 - Steadfast Ring
11 - Pegasus Ring
12 - Toss Ring
13 - Heart Ring L-1
14 - Heart Ring L-2
15 - Swimmer's Ring
16 - Charge Ring
17 - Light Ring L-1
18 - Light Ring L-2
19 - Bomber's Ring
20 - Red Holy Ring
21 - Snowshoe Ring
22 - Roc's Ring
23 - Quicksand Ring
24 - Red Joy Ring
25 - Blue Joy Ring
26 - Gold Joy Ring
27 - Green Joy Ring
28 - Discovery Ring
29 - Rang Ring L-2
30 - Bombproof Ring
31 - Energy Ring
32 - Dbl. Edged Ring
33 - GBA Nature Ring
34 - Slayer's Ring
35 - Rupee Ring
36 - Victory Ring
37 - Sign Ring
38 - 100th Ring
39 - Whisp Ring
Every value above these are just the same rings with a unapraised ring/glitchy sprite. (Those also dont work)
        I also have the feeling that this list is not complete.


C6CB is just the REAL equipped ring (that little E).



In dungeons:

C686 is the dungeon map (02 and some other values gives you a map)

C670 is number of small keys you have

C682 is the boss key (02 gives you a boss key)


Other stuff:

Essences are stored in C6BF and work like the seeds.
0b00000001 - Eternal Spirit
0b00000010 - Ancient Wood
0b00000100 - Echoing Howl
0b00001000 - Burning Flame
0b00010000 - Sacred Soil
0b00100000 - Lonely Peak
0b01000000 - Rolling Sea
0b10000000 - Falling Star

So for example:
0F - First 4 essences
                7F - First 7 essences


C6A0 tells the game if we ever had gasha seeds (therefor lets the sprite appear in the subinventory)
C6BE is number of gasha seeds we have.

C6AC is for heartpieces
If you change the value to 04 you wont get a new heart container, you need to pick up another one in order to get a new one.

C6AD & C6AE are the rupees.
C6AD is for tens and C6AE for the hundreds
Example: C6AD: 34 C6AE: 01 = 134 rupees


Subinventory:

Works just like the seeds and essences and is stored in C69F - C6A5 (but without C6A1) and some extra addresses for some more information.

C69F
0b00000001 - /
0b00000010 - /
0b00000100 - /
0b00001000 - /
0b00010000 - /
0b00100000 - Magic Ring
0b01000000 - Zora's Flippers
0b10000000 - Magic Potion

C6A0
0b00000001 - /
0b00000010 - /
0b00000100 - /
0b00001000 - /
0b00010000 - Gasha Seed
0b00100000 - /
0b01000000 - Maku Seed
0b10000000 - /

C6A2
0b00000001 - /
0b00000010 - Poe Clock
0b00000100 - Graveyard Key
0b00001000 - Crown Key
0b00010000 - Mermaid Key
0b00100000 - Old Mermaid Key
0b01000000 - Library Key
0b10000000 - /

C6A3
0b00000001 - Ricky's Gloves
0b00000010 - Bomb Flower (upper Part)
0b00000100 - Mermaid Suit
0b00001000 - Slate
0b00010000 - Cracked Tuni Nut
0b00100000 - Scent Seedling
0b01000000 - Zora Scale
0b10000000 - Tokay Eyeball

C6A4
0b00000001 - Empty Bottle
0b00000010 - Fairy Powder
0b00000100 - Cheval Rope
0b00001000 - Member's Card
0b00010000 - Island Chart
0b00100000 - Book Of Seals
0b01000000 - /
0b10000000 - /

C6A5
0b00000001 - Bomb Flower (lower Part)
0b00000010 - Introduction
0b00000100 - Lava Juice
0b00001000 - Brother Emblem
0b00010000 - Goron Vase
0b00100000 - Goronade
0b01000000 - Rock Sirloin
0b10000000 - /

C6C0
This address changes the "item trading item" To work, the Poe Clock bit (0b0000010 of C6A2) needs to be true.
01 - Stationary
02 - Stink Bag
03 - Tasty Meat
04 - Doggie Mask
05 - Dumbbell
06 - Cheesy Mustache
07 - Funny Joke
08 - Touching Book
09 - Magic Oar
0A - Sea Ukelele
0B - Broken Sword

C6C2
Cracked Tuni Nut bit needs to be true
02 - Tuni Nut

C6C3
Is for the number of slates you have.


This is just a small overview of what I done in the past days, I'll keep you updated.

Re: Zelda Oracle Of Ages Inventory Hacking

Posted by: Bent`
Date: 2013-05-21 15:10:57

Seed bag:
Well, the seed bag is a bit more complicated. C69E are the available sorts of seeds. But I just cant figure out how this address works. Here are some values and which seeds you can use with that:
01 - Ember
03 - Ember + Scent
07 - Ember + Scent + Pegasus
09 - Ember + Gale
11 - Ember + Mystery
12 - Scent + Mystery
13 - Ember + Scent + Mystery
14 - Pegasus + Mystery
15 - Ember + Pegasus + Mystery
17 - Ember + Scent + Pegasus + Mystery
19 - Ember + Gale + Mystery
21 - Ember
23 - Ember + Scent
25 - Ember + Pegasus
FF - All



Thats easy, its just a bit per seed, and theyre ored together.

So list the seeds as binary numbers:

0b00001 ember
0b00010 scent
0b00100 pegasus
0b01000 gale
0b10000 mystery

So Ember/Scent/Pegasus/Mystery would be 0b00001 or 0b00010 or 0b00100 or 0b10000 = 0b10111 = 0x17, which matches what you said: 17 - Ember + Scent + Pegasus + Mystery

By the way, you might want to look into Lins board, where they do some more work on the Oracles.

Re: Zelda Oracle Of Ages Inventory Hacking

Posted by: coczero
Date: 2013-05-21 15:47:39


Thats easy, its just a bit per seed, and theyre ored together.

So list the seeds as binary numbers:

0b00001 ember
0b00010 scent
0b00100 pegasus
0b01000 gale
0b10000 mystery

So Ember/Scent/Pegasus/Mystery would be 0b00001 or 0b00010 or 0b00100 or 0b10000 = 0b10111 = 0x17, which matches what you said: 17 - Ember + Scent + Pegasus + Mystery

By the way, you might want to look into Lins board, where they do some more work on the Oracles.


Ah thanks for the information, I am relatively new to all this stuff =D