Changelog
8/29/2013 19:44 (CET)
Website
Redesigned the Navigation Bar.
8/29/2013 17:12 (CET)
Website
Fixed an issue that caused generated Links to get cut off at parentheses.
Rewrote the Treeview stylesheet & javascript. The dots in the list should now connect properly.
You can no longer click below a nodes button to toggle it.
8/28/2013 20:36 (CET)
Website
The website got a brand new style.
8/27/3013 13:03 (CET)
Website
Added a banner and navigation bar to the website.
Changed the url paths.
8/25/2013 17:57 (CET)
Website
I rewrote the JavaScript code that ordered the tree-view. It now only order tree nodes that begin with a hex value.
Made some minor changes to the code that generated the tree-view. It previously generated 1 unecessary element for each tree node.
8/21/2013 14:58 (CET)
Website
I launched the MM sub-site. It is available at https://old.cloudmodding.com/oot/mm
8/20/2013 14:48 (CET)
Website
Rewrote the Register highlight regex to highlight all registers in all scenarios. (except when preceeded or succeded by numbers/letters)
Added ASM Instruction highlighting (Red) for (I believe) every instruction.
8/20/2013 13:44 (CET)
Hacks
Additions
The 4th Wallet (ROM Patch)
Website
Rewrote the Register highlight regex to highlight all registries.
8/19/2013 22:49 (CET)
Ram Notes
Additions
Data
0x800F7618 [Tble] #Wallet Digits Table
Hacks
Additions
The 4th Wallet
8/19/2013 16:16 (CET)
RAM Notes
Additions
ASM
Global
0x80079240 BEQL T0, R0, 0x80079288 #Used to determine if you should use Child or Adult Movement Speed
While NOT Pausing
0x8038BDA4 BEQL T8, R0, 0x8038BDB8 #Used to disable hookshot/longshot in midair
Data
0x800F8CCC [Tble] #Capacity Table
Changes
Rewrote the ASM descriptions.
8/19/2013 14:39 (CET)
RAM Notes
Changes
Removed the equal signs from all locations except arguments and format descriptions.
Changed various comments and added children nodes for better explanations.
8/19/2013 14:03 (CET)
Website
You can now choose Code ID for Nemu64 codes in my the section.
8/19/2013 13:08 (CET)
RAM Notes
Changes
Updated the Health Address to 0x8011A600, the previous one was incorrect.
Website
The Tree View will now automatically order all list nodes by their Hex Value. Nodes that doesn't begin with a Hex Value will be ignored.
SP Function Arguments will also be blue now.
8/19/2013 12:12 (CET)
RAM Notes
Additions
Data
0x801D8DD5 [Byte] #Menu State
0x801D8E60 [Byte] #Selected Menu Option
Functions
String Functions
0x800CBE58 Set String RGB
0x800CBEC8 Set String XY
0x800CC588 Set String
0x8000085C dma Transfer
0x80000B0C Get File
0x80025110 Spawn Actor
0x800C6B54 Play Sequence
0x800CAA70 Set Background Music
Changes
Updated the Receive Item Function Address to 0x8006FDCC, the previous one was incorrect.
Added comments to several RAM notes.
Website
I've added a changelog to keep track of all changes that are done to the site.
Fixed several issues with the javascript code that generated the Tree view
It is not longer possible to collapse a node by clicking on the node title, to the right of the node title, or child nodes.
It is however still possible to collapse a node by clicking below it's box.
The Tree View content can no longer overflow, a horizontal scrollbar appears instead.
CloudMax's NTSC 1.0 RAM Notes
ASM
Global
0x80071A28 ADDIU V0, R0, 0x0001 #Egg Hatch Start Button Index.
Set it to 0x0 to include the B Button in the loop, allowing Eggs to hatch on the B Button.
0x80079B1C BNEZ T0, 0x80079B2C #Used to determine if you have access to silver & gold gauntlet strength
T0 = Age
0x80079240 BEQL T0, R0, 0x80079288 #Used to determine if you should use Child or Adult Movement Speed
T0 = Age
While NOT Pausing
0x80395B00 BEQL T6, R0, 0x80395D68 #Used to determine if you can enter a crawlspace
T6 = Age
0x8038BDA4 BEQL T8, R0, 0x8038BDB8 #Used to disable hookshot/longshot in midair
T8 = Is Standing State
Remove the branch to make hookshot/longshot usable in midair.
Data
0x8011A5D0 [Save] #This is the Save Data
0x8011A5D0 [Word] #Entrance Index
0x8011A5D4 [Word] #Age Modifier
0x0 Adult
0x1 Child
0x8011A5DC [Half] #Time of Day
0x8011A5E0 [Word] #Day/Night Modifier
0x0 Day
0x1 Night
0x8011A5F2 [Half] #Death Counter
0x8011A5F4 [Dble] #Name
0x8011A5FE [Half] #Heart Containers
0x10 is 1 heart containers
0x8011A600 [Half] #Health
0x10 is 1 full heart
0x8011A603 [Byte] #Magic
0x30 is a filled normal bar
0x60 is a filled double bar
0x8011A604 [Half] #Rupees
0x8011A638 [Word] #Equipped Items ID
Offset 0x0 B Button
Offset 0x1 C-Left
Offset 0x2 C-Down
Offset 0x3 C-Right
0x8011A63C [Word] #Equipped Items Slot
Offset 0x0 C-Left
Offset 0x1 C-Down
Offset 0x2 C-Right
Offset 0x3 Unused
0x8011A640 [Byte] #Equipped Tunic & Boots
0x01 Kokiri Tunic
0x02 Goron Tunic
0x03 Zora Tunic
0x10 Kokiri Boots
0x20 Iron Boots
0x30 Hover Boots
0x8011A641 [Byte] #Equipped Sword & Shield
0x01 Kokiri Sword
0x02 Master Sword
0x03 Biggoron's Sword
0x10 Kokiri Shield
0x20 Hylian Shield
0x30 Mirror Shield
0x8011A644 [Tble] #Item Slot Item IDs
Entries
0x00 Deku Stick
0x01 Deku Nut
0x02 Bomb
0x03 Fairy Bow
0x04 Fire Arrow
0x05 Din's Fire
0x06 Slingshot
0x07 Ocarina
0x08 Bombchu
0x09 Hookshot/Longshot
0x0A Ice Arrow
0x0B Farore's Wind
0x0C Boomerang
0x0D Lens of Truth
0x0E Magical Beans
0x0F Megaton Hammer
0x10 Light Arrow
0x11 Nayru's Love
0x12 Bottle 1
0x13 Bottle 2
0x14 Bottle 3
0x15 Bottle 4
0x16 Adult Trade Item
0x17 Child Trade Item
0x8011A65C [Tble] #Item Slot Amount
Entries
0x00 Deku Stick
0x01 Deku Nut
0x02 Bomb
0x03 Fairy Bow
0x04 Fire Arrow
0x05 Din's Fire
0x06 Slingshot
0x07 Ocarina
0x08 Bombchu
0x09 Hookshot/Longshot
0x0A Ice Arrow
0x0B Farore's Wind
0x0C Boomerang
0x0D Lens of Truth
0x0E Magical Beans
0x8011A66B [Byte] #Magical Beans Available
Stores how many beans you've purchased. This byte decides the item cost & how many additional beans you're able to purchase.
0x8011A66C [Byte] #Tunic & Boots
0x01 Kokiri Tunic
0x02 Goron Tunic
0x04 Zora Tunic
0x10 Kokiri Boots
0x20 Iron Boots
0x40 Hover Boots
0x8011A66C [Byte] #Sword & Shield
0x01 Kokiri Sword
0x02 Master Sword
0x04 Biggoron's Sword / Giant's Knife
0x08 Broken Giant's Knife Icon Flag
This will cause the 3rd Sword Slot to be displayed as the Broken Giant's Knife
0x10 Kokiri Shield
0x20 Hylian Shield
0x40 Mirror Shield
0x8011A671 [Byte] #Deku Stick & Deku Nut Capacity
0x02 Deku Stick 10
0x04 Deku Stick 20
0x08 Deku Stick 30
0x10 Deku Nut 20
0x20 Deku Nut 30
0x30 Deku Nut 40
0x8011A672 [Byte] #Bullet Bag, Dive Meter & Wallet
0x02 Silver Scale
0x04 Golden Scale
0x10 Adult's Wallet
0x20 Giant's Wallet
0x40 Bullet Bag 30
0x80 Bullet Bag 40
0xC0 Bullet Bag 50
0x8011A673 [Byte] #Quiver, Bomb Bag, Strength Upgrade
0x01 Quiver 30
0x02 Quiver 40
0x03 Quiver 50
0x08 Bomb Bag 20
0x10 Bomb Bag 30
0x18 Bomb Bag 40
0x40 Goron's Bracelet
0x80 Silver Gauntlets
0xC0 Golden Gauntlets
0x8011A6A0 [Half] #Gold Skulltula Tokens
0x8011B46C [Tble] #Golden Skulltula Flag Table
Stores which skulltulas you've killed each each area.
Each area entry is 1 byte long.
Entries
0x00 Forest Temple
0x01 Jabu Jabu's Belly
0x02 Dodongo's Cavern
0x03 Deku Tree
0x04 Shadow Temple
0x05 Spirit Temple
0x06 Water Temple
0x07 Fire Temple
0x08 Lon Lon Ranch
0x09 Hyrule Field
0x0A Ice Cavern
0x0B Bottom of the Well
0x0C Death Mountain
0x0D Market
0x0E Lost Woods
0x0F Kokiri Forest
0x10 Gerudo Valley
0x11 Lake Hylia
0x12 Zora's Domain
0x13 Kakariko Village
0x14 Unused
0x15 Unused
0x16 Haunted Wasteland
0x17 Gerudo Fortess
0x8011B492 [Half] #Record Fish Size
0x7F is the highest value
0x8011B500 [Word] #Sword Flag
0x0 You have a sword equipped
0x1 You don't have a sword equipped
The game will treat the B Button differently when this Flag isn't set.
When the flag is set, you will not retrieve the item stored in Temporary B when dying and saving, instead the B Button will become blank.
0x800F7618 [Tble] #Wallet Digits Table
This table specifies how many digits each wallet size uses for the rupee counter.
Setting it to a value higher than 0x4 will cause visual errors.
When the counter is 4 digits long, the 4th digit will always be 0, and only the first 3 are used.
Each entry is a halfword.
Entries
0x0 Default Wallet (0002)
0x2 Adult's Wallet (0003)
0x4 Giant's Wallet (0003)
0x6 Unused Wallet (0000)
0x800F8CCC [Tble] #Capacity Table
Each entry is a halfword.
Entries
0x00 No Quiver (00)
0x02 Quiver (30)
0x04 Big Quiver (40)
0x06 Biggest Quiver (50)
0x08 No Bomb Bag (00)
0x0A Bomb Bag (20)
0x0C Big Bomb Bag (30)
0x0E Biggest Bomb Bag (40)
0x10 - 0x1E Unused (00)
0x20 Default Wallet (099)
0x22 Adult's Wallet (200)
0x24 Giant's Wallet(500)
0x26 Unused Wallet (500)
0x28 No Bullet Bag (00)
0x2A Bullet Bag (30)
0x2C Big Bullet Bag (40)
0x2E Biggest Bullet Bag (50)
0x30 Deku Stick (00)
0x32 Deku Stick (10)
0x34 Deku Stick (20)
0x36 Deku Stick (30)
0x38 Deku Nut (00)
0x3A Deku Nut (20)
0x3C Deku Nut (30)
0x3E Deku Nut (40)
0x801DAB72 [Byte] #Item in Hand (Item ID)
0x801DB263 [Byte] #Is Attacking
0x0 Is not attacking #This will deactivate ISG
0x1 Is attacking #This will activate ISG
0x8011B9B2 [Byte] #Temp B (Stores your B item when on a horse, fishing, shooting gallery, etc.)
0x803A54F0 [Byte] #Pause Temp B (Temp B is moved here while pausing)
0x801DAB70 [Byte] #Last Pressed Item Button
0x0 B Button
0x1 C-Left
0x2 C-Down
0x3 C-Right
0x801DAB7F [Byte] #Currently Equipped Mask
0x0 No Mask
0x1 Keaton Mask
0x2 Skull Mask
0x3 Spooky Mask
0x4 Bunny Hood
0x5 Goron Mask
0x6 Zora Mask
0x7 Gerudo Mask
0x8 Mask of Truth
0x801D8DD5 [Byte] #Menu State
This byte is used to determine which state the Pause Menu & Game Over screen is in.
By setting the byte to different values, we're able to navigate the menues.
States
Open Pause Menu
0x01 Load and Open Pause Menu #Only run when a menu isn't loaded.
This will load the Menu, causing a crash if a menu is already loaded.
The Pause Menu will get stuck in the opening process, you have to manually set it to 0x6 to end it.
0x02 Open Pause Menu #Only run when a menu is loaded.
This will not load the Menu, causing a crash if a menu isn't loaded.
The Pause Menu will get stuck in the opening process, you have to manually set it to 0x6 to end it.
0x06 End Pause Menu Opening #Only run when a menu is loaded.
This can be used to return to the Pause Menu from other panels, and end the opening process.
Pause Menu Save Panel
0x07 Open Pause Menu Save Panel #Only run when pause menu is loaded.
This Panel is part of the Pause Menu, so the game will crash if it isn't loaded.
Close Pause Menu
0x12 Close Pause Menu #Only run when pause menu is loaded.
The game will crash if the pause menu isn't loaded.
0x13 End Pause Menu Closing #Only run when a menu isn't loaded.
This is used at the end of the closing process, after the menu has been unloaded, the game will crash if ran when it is still loaded.
Open Game Over Panel
0x08 Load and Open GO Panel #Only run when a menu isn't loaded.
This will load the Menu, causing a crash if a menu is already loaded.
0x09 Open GO Panel #Only run when a menu is loaded.
This will not load the Menu, causing a crash if a menu isn't loaded.
0x0E Finish Opening GO Panel #Only run when a menu is loaded.
This will instantly open up the Game Over Save Panel, causing a crash if a menu isn't loaded.
Game Over Panel
0x0F Saved #Only run when a menu is loaded.
This is used after saving in the game over panel, brings up "Game Saved." screen. Will crash if a menu isn't loaded.
0x10 Open Continue / Quit Panel #Only run when a menu is loaded.
This will bring up the Continue / Quit Panel, causing a crash if a menu isn't loaded.
0x11 Run Continue / Quit #Does not require a menu.
Uses the Selected Menu Option byte to determine option.
0x0 Continue
0x4 Quit
0x801D8E60 [Byte] #Selected Menu Option
0x0 1st Menu Option
0x4 2nd Menu Option
0x800F7350 [Tble] #Scene Item Restriction Table
Each scene entry is 1 word long.
Table Entry Format
IDXXYYZZ
ID = Scene ID
XX = Restriction Flags
0x01, 0x02, 0x03 Bottles
0x04, 0x08, 0x0C Unused?
0x10, 0x20, 0x30 B Button
0x40, 0x80, 0xC0 Unused?
YY = Restriction Flags
0x01, 0x02, 0x03 Warp Songs
0x04, 0x08, 0x0C Ocarina
0x10, 0x20, 0x30 Hookshot & Longshot
0x40, 0x80, 0xC0 Trade Items
ZZ = Restriction Flags
0x01, 0x02, 0x03 Global
0x04, 0x08, 0x0C Din's Fire & Nayru's Love
0x10, 0x20, 0x30 Farore's Wind
0x40, 0x80, 0xC0 Sun's Song
0x8039F194 [Tble] #Area Required Golden Skulltula Table
Each area entry is 1 byte long.
Entries
0x00 Deku Tree
0x01 Dodongo's Cavern
0x02 Jabu Jabu's Belly
0x03 Forest Temple
0x04 Fire Temple
0x05 Water Temple
0x06 Spirit Temple
0x07 Shadow Temple
0x08 Bottom of the Well
0x09 Ice Cavern
0x0A Hyrule Field
0x0B Lon Lon Ranch
0x0C Kokiri Forest
0x0D Lost Woods
0x0E Market
0x0F Death Mountain
0x10 Kakariko Village
0x11 Zora's Domain
0x12 Lake Hylia
0x13 Gerudo Valley
0x14 Gerudo Fortess
0x15 Haunted Wasteland
Functions
0x8000085C dma Transfer
A0 = ram address
A1 = rom address
A2 = size
0x80000B0C Get File
A0 = pointer to instance of structure with format:
${vv vv vv vv dd dd dd dd ss ss ss}
d = destination in ram (must be allocated!!!)
s = size of file
v = rom virtual address
0x80025110 Spawn Actor
A0 = $801CA0C4
A1 = $801C84A0
A2 = Actor Number
Actor List: http://wiki.spinout182.com/w/Complete_Actor_Listing
SP = floating point x, y, z position; Half-float (s10.5) x, y, z rotation; actor variable
0x800721F4 Modify Item Amount
A0 = Item ID
A1 = Amount to add
0x80079200 Update Physics
This function runs whenever links physics is altered, when changing boots, entering water, exiting water, etc.
A1 = 0x801DAA30
0x800646F0 Play Sound Effect
The actual function for calling sound effects seem to be located at 0x800C806C but calling it from the address above has proven to be safer for me.
A0 = Sound Effect
0x482F Gain Rupee Repeater (This is the sound that repeats while gaining or losing rupees)
0x4803 Gain Rupee (The main sound that plays when gaining a rupee)
0x4806 Disabled Item
0x4807 Success (Played the correct song at a location, etc.)
0x4808 Change Menu Screen
0x4809 Move Menu Cursor
0x480A Emulator Crash
0x480C Enter Z-Target
0x4824 Pick Up Ammo / Magic
0x0835 Pull out Item
0x800C6B54 Play Sequence
A0 = $00000000
A1 = sequence number
Sequences: http://wiki.spinout182.com/w/Zelda_64:_OoT_Music_Values
0x800CAA70 Set Background Music
A0 = sequence number
Sequences: http://wiki.spinout182.com/w/Zelda_64:_OoT_Music_Values
0x800721CC Rupee Modifier
The amount of rupees to increase/decrease, it'll be added to the current amount of rupees you're currently getting/loosing
A0 = Amount
0x8006FB50 Update Item Icon
This will update the item icon of the specified item button. (useful when changing a button Item ID directly)
A0 = 0x801C84A0
A1 = Button ID
0x0 B Button
0x1 C-Left
0x2 C-Down
0x3 C-Right
0x8006FDCC Receive Item #Using Item Index as Argument
The game will give you the item specified, and place it in it's correct slot. This will not update items that are equipped.
A0 = 0x801C84A0
A1 = Item ID
0x80071B7C Set Item #Using Button Index as Argument
This will change an item using a button index as the argument.
A0 = 0x801C84A0
A1 = Item ID
A2 = Button Index
0x0 B Button
0x1 C-Left
0x2 C-Down
0x3 C-Right
String Functions
The Stack Pointer must be set up in a specific way or the game may crash.
0x800CBE58 Set String RGB
A0 = Stack Pointer
A1 = Red
A2 = Green
A3 = Blue
0x800CBEC8 Set String XY
A0 = Stack Pointer
A1 = X Pos
A2 = Y Pos
0x800CC588 Set String
A0 = Stack Pointer
A1 = Text
A2 = Text Variable
CloudMax's NTSC 1.0 Hacks
All ROM Hacks are for the Decompressed NTSC 1.0 ROM.
The 4th Wallet
This Hack will add an additional wallet to the game.
You receive the wallet by getting a second Giant's Wallet in the game.
GameShark
By default the wallet will fit 999 rupees, you can change this by modifying the last line in the code.
Nemu64
Code ID: (X:X)
CheatName(X)=The 4th Wallet
CheatName(X)Count=30
CheatName(X)Code0=8107052C 2401
CheatName(X)Code1=8107052E 0057
CheatName(X)Code2=81070530 00E1
CheatName(X)Code3=81070532 1025
CheatName(X)Code4=81070534 1422
CheatName(X)Code5=81070536 000B
CheatName(X)Code6=81070538 8102
CheatName(X)Code7=8107053A A672
CheatName(X)Code8=8107053C 3042
CheatName(X)Code9=8107053E 0020
CheatName(X)Code10=81070540 5427
CheatName(X)Code11=81070542 0004
CheatName(X)Code12=81070544 2405
CheatName(X)Code13=81070546 0001
CheatName(X)Code14=81070548 1C40
CheatName(X)Code15=8107054A 0002
CheatName(X)Code16=8107054C 2405
CheatName(X)Code17=8107054E 0003
CheatName(X)Code18=81070550 2405
CheatName(X)Code19=81070552 0002
CheatName(X)Code20=81070554 0C02
CheatName(X)Code21=81070556 04A5
CheatName(X)Code22=81070558 2404
CheatName(X)Code23=8107055A 0004
CheatName(X)Code24=8107055C 1000
CheatName(X)Code25=8107055E 03AC
CheatName(X)Code26=81070560 2402
CheatName(X)Code27=81070562 00FF
CheatName(X)Code28=810F761E 0003
CheatName(X)Code29=810F8CF2 03E7
Clean
8107052C 2401
8107052E 0057
81070530 00E1
81070532 1025
81070534 1422
81070536 000B
81070538 8102
8107053A A672
8107053C 3042
8107053E 0020
81070540 5427
81070542 0004
81070544 2405
81070546 0001
81070548 1C40
8107054A 0002
8107054C 2405
8107054E 0003
81070550 2405
81070552 0002
81070554 0C02
81070556 04A5
81070558 2404
8107055A 0004
8107055C 1000
8107055E 03AC
81070560 2402
81070562 00FF
810F761E 0003
810F8CF2 03E7
ROM Patch
Download https://old.cloudmodding.com/zelda/releases/cloudmaxs_4th_wallet.ppf
By default the wallet will fit 999 rupees, you can change this at ROM Address 0x00B6EC52
Text Color Engine
This Hack allows you to have up to 163 text colors, instead of just the 8 default ones.
Preview https://dl.dropboxusercontent.com/u/6440063/OoT/ASM/163_Colors_ROM_Patch.png
Version 2 (GameShark)
Nemu64
Code ID: (X:X)
CheatName(X)=CloudMax's Text Color Engine v2
CheatName(X)Count=42
CheatName(X)Code0=810D90E0 2621
CheatName(X)Code1=810D90E2 7FFF
CheatName(X)Code2=810D90E4 3C04
CheatName(X)Code3=810D90E6 800D
CheatName(X)Code4=810D90F0 0005
CheatName(X)Code5=810D90F2 1080
CheatName(X)Code6=810D6BA8 0082
CheatName(X)Code7=810D6BAA 2025
CheatName(X)Code8=810D6BAC 8082
CheatName(X)Code9=810D6BAE 6BD0
CheatName(X)Code10=810D6BB0 A022
CheatName(X)Code11=810D6BB2 63DE
CheatName(X)Code12=810D6BB4 8082
CheatName(X)Code13=810D6BB6 6BD1
CheatName(X)Code14=810D6BB8 A022
CheatName(X)Code15=810D6BBA 63E0
CheatName(X)Code16=810D6BBC 8082
CheatName(X)Code17=810D6BBE 6BD2
CheatName(X)Code18=810D6BC0 A022
CheatName(X)Code19=810D6BC2 63E2
CheatName(X)Code20=810D6BC4 8082
CheatName(X)Code21=810D6BC6 6BD3
CheatName(X)Code22=810D6BC8 03E0
CheatName(X)Code23=810D6BCA 0008
CheatName(X)Code24=810D6BCC A022
CheatName(X)Code25=810D6BCE 63E4
CheatName(X)Code26=810D6CD0 FFFF
CheatName(X)Code27=810D6CD2 FFFF
CheatName(X)Code28=810D6CD4 FF3C
CheatName(X)Code29=810D6CD6 3CFF
CheatName(X)Code30=810D6CD8 46FF
CheatName(X)Code31=810D6CDA 50FF
CheatName(X)Code32=810D6CDC 506E
CheatName(X)Code33=810D6CDE FFFF
CheatName(X)Code34=810D6CE0 64B4
CheatName(X)Code35=810D6CE2 FFFF
CheatName(X)Code36=810D6CE4 D264
CheatName(X)Code37=810D6CE6 FFFF
CheatName(X)Code38=810D6CE8 E1FF
CheatName(X)Code39=810D6CEA 32FF
CheatName(X)Code40=810D6CEC 0000
CheatName(X)Code41=810D6CEE 00FF
Clean
810D90E0 2621
810D90E2 7FFF
810D90E4 3C04
810D90E6 800D
810D90F0 0005
810D90F2 1080
810D6BA8 0082
810D6BAA 2025
810D6BAC 8082
810D6BAE 6BD0
810D6BB0 A022
810D6BB2 63DE
810D6BB4 8082
810D6BB6 6BD1
810D6BB8 A022
810D6BBA 63E0
810D6BBC 8082
810D6BBE 6BD2
810D6BC0 A022
810D6BC2 63E2
810D6BC4 8082
810D6BC6 6BD3
810D6BC8 03E0
810D6BCA 0008
810D6BCC A022
810D6BCE 63E4
810D6CD0 FFFF
810D6CD2 FFFF
810D6CD4 FF3C
810D6CD6 3CFF
810D6CD8 46FF
810D6CDA 50FF
810D6CDC 506E
810D6CDE FFFF
810D6CE0 64B4
810D6CE2 FFFF
810D6CE4 D264
810D6CE6 FFFF
810D6CE8 E1FF
810D6CEA 32FF
810D6CEC 0000
810D6CEE 00FF
Information
This version includes the 8 default colors from OoT
0x40 = White
0x41 = Red
0x42 = Green
0x43 = Blue
0x44 = Light Blue
0x45 = Pink
0x46 = Yellow
0x47 = Black
Text Color Table RAM Address: 0x800D6BD0 - 0x800D6E5C
Table Entry Format = RRGGBBAA
Version 3 (ROM Patch)
Download https://old.cloudmodding.com/zelda/releases/cloudmaxs_163_colors_engine.ppf
Information
This version is superior to version 2 as it contains a total of 0x92 (146) preset colors.
The 8 default ones from OoT, and the rest from the X11 Color Table http://en.wikipedia.org/wiki/Web_colors#X11_color_names
Color Table with IDs included: http://pastebin.com/br9i2BXu
Text Color Table ROM Address: 0x00B4CB30 - 0x00B4CDBB
Table Entry Format = RRGGBBAA
CloudMax's NTSC 1.0 Nemu64 Bookmarks
A lot of things here makes no sense whatsoever, but there may be some useful stuff in here.
Many things are probably incorrect in these lists, if you want reliable information, use my RAM notes.
Root
CPU
a strength stuff
CPU 0x80074C30: 4
CPU 0x80075B18: 2
CPU 0x80075C84: 3
CPU 0x80079B08: 5
CPU 0x8007A120: 1 (Used to get strength upgrade)
CPU 0x801FCF30: 6
Age stuff
CPU 0x8002162C: 2
CPU 0x8007948C: 1
CPU 0x80079B0C: Strength Usability
CPU 0x8007A110: Strength Upgrade
CPU 0x8007A350: 5
CPU 0x8007A3B8: 6
CPU 0x8007A3FC: 7
CPU 0x8007A774: 3
CPU 0x8007ACB8: Shield Related?
CPU 0x8007ACF4: 8
CPU 0x8007C050: 4
CPU 0x80395AFC: Crawlspace
bow slingshot stuff
bow/sling
Display
CPU 0x8007ABD0:
Model
CPU 0x8007AE98: V0 = Save RAM (Upper bytes)
CPU 0x8007AE9C: V0 = Age
CPU 0x8007AEA0: T9 = 800F0000
CPU 0x8007AEA4: T8 = Age shift left 2 (This will result in Child Link reading the next display list)
CPU 0x8007AEA8: T9 = T9 + T8 (Display Offset)
CPU 0x8007AEAC: Load bow/sling Display List
06018048 Slingshot
0602A248 Bow
0602FE80 Bow (According to the-gcn)
MEM 0x800F7A08: Bow
MEM 0x800F7A0C: Sling
MEM 0x801DAB72: Item in Hand
String
CPU 0x8007BD68: Load bow/sling String Display List
060221A8 Slingshot
06030490 Bow
equip
CPU 0x8038C9AC: 0x0030(SP) = A2 (Item ID)
CPU 0x8038CDEC: V0 = Item Equipping
CPU 0x8038CDF0: T9 = Current Item
CPU 0x8038CE3C: Set item in hand?
use
CPU 0x80072304: If (A0 == AT), reduce bombchus
CPU 0x80072358: If (A0 == AT), reduce arrows
CPU 0x80072384: Set Ammo
CPU 0x800723D4: If (A0 == AT), reduce deku seeds
CPU 0x8038AD7C: T0 =Save RAM offset
CPU 0x8038AD80: T0 = Save RAM offset
CPU 0x8038AD84: T6 = Age
CPU 0x8038AD88: T7 = 0x3 (Bow)
CPU 0x8038AD8C: T4 = 0x6 (Slingshot)
CPU 0x8038AD90: If (T6 != 0) Branch 0x8038ADC8
CPU 0x8038AD98: Store which item you're using in RAM
CPU 0x8038ADC8:
CPU 0x8038ADF8: If (V1 == 0) Branch Likely 0x8038AE0C
CPU 0x8038ADFC: T7 = 0x0000(A2) (Item Offset?)
CPU 0x8038AE0C: T8 = 0x80100000
CPU 0x8038AE10: T8 = T8 + T7
CPU 0x8038AE14: T8 = 0x8F34(T8) (Item Slot ID)
CPU 0x8038AE18: T9 = 8011A5D0 + T8 (Item Slot ID)
CPU 0x8038AE1C: V0 = 0x008C(T9) (Ammo)
CPU 0x8038BB54: Set Ammo Amount
CPU 0x8038AEDC: Jump to use bow/sling
CPU 0x8038BAF4: Jump to use bow/sling
MEM 0x800F8F30: Items
CPU 0x800787AC: Rupee Increaser
CPU 0x8007886C: Rupee Decreaser
CPU 0x80079668: Set Item Model
CPU 0x8007ABD0: Get Item Model
CPU 0x80099FAC: Generate Pause Image
CPU 0x8038A514: Change Sword State
Egg Hatcher
CPU 0x80061BF8: A1 = 0x21
CPU 0x80061C00: A2 = 0x22
CPU 0x80061C0C: A1 = 0x2D
CPU 0x80061C14: A2 = 0x2E
CPU 0x800719E4: 0x8011F0C4 = A1 (Store which item to override)
CPU 0x800719E8: 0x8011F0C8 = A2 (Store which item to replace it)
CPU 0x80071A00: A0 = 0x8011A5D0 (Save RAM offset)
CPU 0x80071A08: A3 = A1 (Item to replace)
CPU 0x80071A0C: V1 = A0+V0
CPU 0x80071A10: T6 = Current Item ID
CPU 0x80071A1C: If (A3==T6)
CPU 0x80071A20:
CPU 0x80071A24: Current Item Slot Item = A2 (Item to replace with)
CPU 0x80071A28: V0 = 0x1 (Initial C Item Offset, set to 0x1 to skip B button)
CPU 0x80071A2C: V1 = A0 + V0
CPU 0x80071A30: T7 = Current C Item ID (C Item Loop Start)
CPU 0x80071A34: If (A3==T7)
CPU 0x80071A38: V0 = V0+0x1
CPU 0x80071A3C: Current C Item = A2 (0x22 (Chicken))
CPU 0x80071A40:
CPU 0x80071A44:
CPU 0x80071A48:
CPU 0x80071A4C:
CPU 0x80071A50:
CPU 0x80071A54:
CPU 0x80071A58:
CPU 0x80071A5C:
CPU 0x80071A60: AT = (V0<4?1:0)
CPU 0x80071A64: If (AT!=0) Jump to 0x80071A30 (C Item Loop End)
CPU 0x80071A68:
CPU 0x80071A6C:
CPU 0x80071A70:
CPU 0x80071A74:
Equip Tunic & Boots
CPU 0x80081130:
CPU 0x8008116C: Set Tunic
CPU 0x8008117C: Set Boots
Health Modifier Function
CPU 0x800720BC: Health Function Start?
CPU 0x80072138: S0 = S0 >> 0x10
CPU 0x8007213C: T8 = Current Health
CPU 0x80072140: V0 = Max Health
CPU 0x80072144: T9 = T8 + S0
CPU 0x80072148: Current Health = T9
CPU 0x8007214C: A0 = Current Health
CPU 0x80072150: If (Max Health (V0) < Current Health (A0)) AT = True
CPU 0x80072154: If (AT == True)
CPU 0x80072158: NOP
CPU 0x8007215C: Current Health = Max Health (V0)
CPU 0x80072160: A0 = Current Health
CPU 0x80072164: If (A0 >= 0) Skip to 0x80072178
CPU 0x80072170: NOP
CPU 0x80072178: If (A0 > 0) Skip to 0x80072188
CPU 0x80072188: V0 = R0 + 0x0001
Item Button Usability
indoor (very restricted)
CPU 0x8006ECA0: Enter House Disable
CPU 0x8006EDD8: If (V0 < 21) AT = 1 (1 = Not trade item)
CPU 0x8006EDDC: Branch if AT != 0
CPU 0x8006EDE4: If (V0 < 38) AT = 1 (1 = Trade item)
CPU 0x8006EDE8: Branch Likely if AT = 0
CPU 0x8006EDF4: Enter House Enable
CPU 0x8006EE2C: V0 = Item
CPU 0x8006EE38: Branch if Item is hookshot
CPU 0x8006EE44: Branch if Item isn't Longshot
CPU 0x8006EE50: Branch if button is already disabled
CPU 0x8006EE5C: Disable Button (Indoor)
CPU 0x8006F154: Disable Button (T1 is disabler)
water
CPU 0x8006D9E0: OPACITY
CPU 0x8006E390: not
CPU 0x8006E888: Branch if not in water
CPU 0x8006E8A0: ADDIU A1, R0, 0x0001 (Skips checking B button for items under water)
CPU 0x8006E8A8: Disable B
CPU 0x8006E8B0: Button Loop Start
CPU 0x8006E8C0: AT = 0x2 (Standing under water state)
CPU 0x8006E8D8: BNE V0, AT, 0x8006E92C (Branch If you're not standing under water)
CPU 0x8006E8DC: Allow hookshot under water
CPU 0x8006E8E8: Allow longshot under water
CPU 0x8006E8FC: Disables
CPU 0x8006E928: Enable Button under water
CPU 0x8006ECA8: Disable
Pause Menu
CPU 0x8038ECC8:
CPU 0x8038ECCC:
CPU 0x8038ECE0:
CPU 0x8038FA94: Y
CPU 0x8038FDA4: U
Equipment Screen
CPU 0x8038DF8C: S0 = S0+0x3B
Move Cursor
Left
CPU 0x8038D7A4: Set Cursor X Position
Right
CPU 0x8038D8E0: V0 = Cursor Y Position
CPU 0x8038D8E4: AT = (V0<0x3?1:0)
CPU 0x8038D8E8: If (AT==R0) Jump to 0x8038D96C
CPU 0x8038D8EC: T6 = V0 + 1
CPU 0x8038D8F4: Cursor Y Position = T6
Generate Item Usability
CPU 0x8000118C: Set Usability
CPU 0x800011EC: Set Usability
CPU 0x80001204: Set Usability
CPU 0x80001210: Set Usability
CPU 0x80001218: Set Usability
CPU 0x80001224: Set Usability
Inventory Screen
CPU 0x8038EB10:
CPU 0x8038FCF4: T4 = T3+0x0074 (Item ID)
CPU 0x80394CC8:
Equip
CPU 0x8038F690: V0 = S1 (Item Usability)
CPU 0x8038F694: AT = 0x9
CPU 0x8038F698: If (V0==AT) Branch Likely 0x8038F6AC
Loop
CPU 0x8038F588: S1 = 0x1
CPU 0x8038F58C: S0+0x022C = T0
CPU 0x8038F590: S0+0x0218 = A3 (Selected Item)
CPU 0x8038F594: S1 = 0x2
CPU 0x8038F598: If (S1==R0) Branch Likley 0x8038F4F8
CPU 0x8038F59C: V0 = S0+0x216
CPU 0x8038F5A0: A0 = S0+0x218 (Selected Item)
CPU 0x8038F5A4: SP+0x0098 = A0 (Selected Item)
CPU 0x8038F5A8: T5 = 0x4
CPU 0x8038F5AC: AT = 0x1
CPU 0x8038F5B0: If (S1!=AT) Branch 0x8038F5CC
CPU 0x8038F5B4: S0+0x0260 = T5
CPU 0x8038F5B8: T6 = S3+A0
CPU 0x8038F5BC: T7 = T6+0x0074
CPU 0x8038F5C0: SP+0x009A = T7
CPU 0x8038F5C4: If (R0==R0) Branch 0x8038F5E4
CPU 0x8038F5C8: T1 = T7&0xFFFF
CPU 0x8038F5CC: AT = 0x2
CPU 0x8038F5D0: if (S1==AT) Branch 0x8038F5E4
CPU 0x8038F5D4: T8 = S3+A0
CPU 0x8038F5D8: T9 = T8+0x0074 (Item ID)
CPU 0x8038F5DC: SP+0x009A = T9 (Item ID)
CPU 0x8038F5E0: T1 = T9&0xFFFF
CPU 0x8038F5E4: T4 = SP+0x009A (Item ID)
CPU 0x8038F5E8: T7 = 0x803A0000
CPU 0x8038F5EC: T7 = T7 + 0xF114 = 0x8039F114
_Info
1. T7 is the Offset for the Item Usability values
2. The Item Usability values are set when loading the Pause Menu
MEM 0x8039F114:
CPU 0x8038F5F0: S0+0x023E = T4 (Item ID)
CPU 0x8038F5F4: T5 = SP+0x0098
CPU 0x8038F5F8: AT = 0x9
CPU 0x8038F5FC: A0 = S0 |= R0
CPU 0x8038F600: S0+0x0246 = T5
CPU 0x8038F604: T6 = SP+0x0098 (Selected Item)
CPU 0x8038F608: S1 = T6 + T7 (Item Usability)
CPU 0x8038F60C: V0 = S1 (Item Usability)
CPU 0x8038F610: If (V0==AT) Branch Likely 0x8038F630
_Info
1. AT is always 0x9 at this point
2. V0 is the item usability (0x9 = Child & Adult)
3. As a result, the game skips the usability checks if it is 0x9
CPU 0x8038F614: AT = 0x03E7
CPU 0x8038F618: T8 = Age
CPU 0x8038F61C: T9 = 0x1
CPU 0x8038F620: If (V0==T8) Branch Likley 0x8038F630
CPU 0x8038F624: AT = 0x03E7
CPU 0x8038F628: S0+0x025E = T9 (Grey out Item Name)
CPU 0x8038F630:
Loop 3
CPU 0x8038FACC: V0 = V0+0xF114 (Item Usability)
CPU 0x8038FAD0: AT = 0x9
CPU 0x8038FAD8: If (V0==AT) Branch 0x8038FAEC
CPU 0x8038FAE0: T7 = Age
CPU 0x8038FAE4: If (V0!=T7) Branch Likely 0x8038FCCC
_Info
1. If this is true, it means the item isn't usable
New Loop
CPU 0x8038EA24: T2 = 0x9
CPU 0x8038EA40: V1 = T9+0x008C (Item Amount)
CPU 0x8038EA64: T4 = T4+0xF114 (Item Usability)
CPU 0x8038EA68: If (T2==T4) Branch Likely 0x8038EAB8
CPU 0x8038EAE0: If (V1!=0) Branch 0x8038EB1C
CPU 0x8038EAE4: T8 = SP+0x000A
CPU 0x8038EB1C: AT = 0x2
CPU 0x8038EB20: If (T8!=AT) Branch 0x8038EB70
CPU 0x8038EC28: T6 = T7+0x008C (Item Amount)
CPU 0x8038EC44: If (T6==T7) Branch Likely 0x8038ECC0
_Info
1. This is where they check if you've maxed your Ammo
Time of Day Modifier
CPU 0x8005BF98: Day/Night Transition
CPU 0x8005D600: Time of Day Increaser
CPU 0x8005D60C: Time of Day Tick
CPU 0x8005D614: Time of Day Tick
CPU 0x8005D61C: Time of Day Tick
CPU 0x8005D660: AT = (V0<0x4555?1:0)
CPU 0x8005D668: Day
CPU 0x8005D670: Night
Transition
CPU 0x8009A97C: Day/Night
Functions
Button Activators
CPU 0x8005B860: Button Activators Start
CPU 0x8005B8E8: Run 0x8009CB08 it will return V0 = 1 if you don't have control over link
CPU 0x8005B900: Branch past buttons if you don't have control over link
CPU 0x8005B968: T5 = Buttons Pressed
CPU 0x8005B970:
CPU 0x8005B974: If L Button isn't Pressed Branch Likely 0x8005B994
CPU 0x8005B978: ???Get if you're opening Menu
MEM 0x801C84C0: 0x1000 = Opening Menu
CPU 0x8005B9A0: If Start Button isn't Pressed Branch 0x8005BA74
CPU 0x8005B9DC: If T7 != R0 Branch Likely 0x8005BA28
CPU 0x8005BA64: Set State Menu Flag to 1
MEM 0x801D8DD4: Menu State Flag
Control over Link
CPU 0x8007938C:
CPU 0x800793AC: Remove control when Disable Flag is set
CPU 0x800793FC: Remove control when hookshoting
CPU 0x8007941C: Remove control when using Magic
CPU 0x80079464: Remove control when Using Item in Air
MEM 0x8011B9C0:
CPU 0x8000085C: dma Transfer
_Info
A0 = ram address
A1 = rom address
A2 = size
CPU 0x80000B0C: Get File
_Info
A0 = pointer to instance of structure with format:
${vv vv vv vv dd dd dd dd ss ss ss}
d = destination in ram (must be allocated!!!)
s = size of file
v = rom virtual address
CPU 0x80025110: Spawn Actor
_Info
Actor List: http://wiki.spinout182.com/w/Complete_Actor_Listing
Actors
Minuet of Forest 0x008C
A0 = $801CA0C4
A1 = $801C84A0 (global context)
A2 = Actor Number
SP = floating point x, y, z position; Half-float (s10.5) x, y, z rotation; actor variable
CPU 0x800646F0: Play Sound Effect
A0 = Sound Effect
4801 = Exit Menu
4823 = Saving
CPU 0x8006FB50: Update Item Icon
A0 = 0x801C84A0
A1 = Button ID
CPU 0x8006FDCC: Set Item (Using Item ID)
A0 = 801C84A0
A1 = Item ID
CPU 0x8006FDCC: start?
CPU 0x8006FEAC: bnez cucco bottle
CPU 0x8006FF64: bnez cucco bottle
CPU 0x80070040: bnez cucco bottle
CPU 0x800700D0: bnez cucco bottle
CPU 0x80070114: addiu cucco bottle
CPU 0x80070128: bne cucco bottle
CPU 0x800701AC: bne cucco bottle
CPU 0x80070268: bne cucco bottle
CPU 0x80070424: bne cucco bottle
CPU 0x800704F8: bne cucco bottle
CPU 0x800705D0: bne cucco bottle
CPU 0x800706A4: bne cucco bottle
CPU 0x80070784: bnez cucco bottle
CPU 0x80070848: bne cucco bottle
CPU 0x80070B50: bnez cucco bottle
CPU 0x80070C4C: addiu cucco bottle
CPU 0x80070C5C: bne cucco bottle
CPU 0x80070CE8: slti cucco bottle
CPU 0x80070D74: addiu cucco bottle
CPU 0x80070D78: bne cucco bottle
CPU 0x80070DBC: bnel cucco bottle
CPU 0x80070E48: bnel cucco bottle
CPU 0x80070ED4: bne cucco bottle
CPU 0x80070EF8: addiu cucco bottle
CPU 0x80070EFC: bnel cucco bottle
CPU 0x80070F78: bne cucco bottle
CPU 0x80070FF0: addiu cucco bottle
CPU 0x80070FF4: beq cucco bottle
CPU 0x80071000: bne cucco bottle
CPU 0x80071020: addiu cucco bottle
CPU 0x80071024: bne cucco bottle
CPU 0x80071054: bnel cucco bottle
CPU 0x80071074: bnel cucco bottle
CPU 0x800710C4: bnel cucco bottle
CPU 0x80071114: bnez cucco bottle
CPU 0x80071140: bne cucco bottle
CPU 0x80071170: bnel cucco bottle
CPU 0x80071188: cucco bottle prev
CPU 0x8007119C: Gain cucco bottle jump
CPU 0x80071B7C: Set Item (Using Button ID)
A0 = 0x801C84A0
A1 = Item ID
A2 = Button ID (B, C-L, C-D, C-R)
CPU 0x80071BD0: Set Item
CPU 0x800721F4: Modify Item Amount
A0 = Item ID
A1 = Amount
CPU 0x80079200: Boots Behaviour
_Info
A1 0x801DAA30
CPU 0x80079228: V0 = Boots
CPU 0x8007922C: T8 = 0x800F
CPU 0x80079230: T8 = 0x800F7648
CPU 0x80079234: If (Boots != Kokiri Boots) Branch 0x80079250
CPU 0x80079250: If (Boots != Iron Boots) Branch Likely 0x80079288
CPU 0x80079288: Hover Boots
CPU 0x80079384: End
CPU 0x80393428: Boots Behaviour Jump Point Unknown
CPU 0x80393B60: Boots Behaviour Jump Point Exit Water
CPU 0x80393F74: Boots Behaviour Jump Point Enter Water
CPU 0x800905D4: Save
CPU 0x800C6B54: Play Sequence
_Info
Sequences: http://wiki.spinout182.com/w/Zelda_64:_OoT_Music_Values
A0 = $00000000
A1 = sequence number
CPU 0x800CAA70: Set Background Music
_Info
Sequences: http://wiki.spinout182.com/w/Zelda_64:_OoT_Music_Values
A0 = sequence number
CPU 0x8038A3A4: Pull out Item
_Info
Action List: http://wiki.spinout182.com/w/Zelda_64:_OoT_Action_Parameters
A0 = $801C8A4A0
A1 = $801DAA30
A2 = Action to perform
Calls
CPU 0x80388D88: Call 1
CPU 0x80395404: Call 2
Create File
CPU 0x80090C18: Prepare Create File
CPU 0x80090EB0: End Prepare Create File
CPU 0x803AB0A4: Get File Name
MEM 0x801E4E9C: File Name
CPU 0x803AB0B0: Branch if Name begins with a space
CPU 0x803AB128: JAL to Prepare Create File
CPU 0x803AB1B0: save?
CPU 0x803AB1F4: save?
CPU 0x803AB248: save?
CPU 0x803AB2C4: save?
CPU 0x803AB314: save?
Enter Water
_Calls
_Call Calls
CPU 0x803A030C: Jump to When jumping into water start
CPU 0x80393F90: When jumping into water start
CPU 0x803940C0: When jumping into water
CPU 0x80393DBC: Enter Water Start
Hookshot/longshot Launch
CPU 0x8021FB30: Branch if it shouldn't shoot
CPU 0x8021FB44: Longshot Range (0x1A)
CPU 0x8021FB54: Hookshot Range (0x0D)
CPU 0x8038AACC: Launch Action
CPU 0x8038A804: Launch Action Start
CPU 0x8038AC9C: Check if Action can be Launched
CPU 0x8038D0D4: Check if Action can be Launched Start
CPU 0x8038DDFC: Jump
Hookshot Action
CPU 0x8038BDA4: Branch 0x8038BDB8 if you can't shoot
CPU 0x8038BDAC: Jump to Hookshot Shoot Action
CPU 0x8038BDD4: Add loaded state
Hookshot Shoot Action
CPU 0x8038BAB0: Start
CPU 0x8038BAE0: Branch to Hook Start
CPU 0x8038BB9C: Use Hook Start
CPU 0x8038BBBC: Set Hook Var
Load File
CPU 0x800903E4: Change Entrance to Link's House as Child if not in specific scenes
Move Link
_Calls
CPU 0x803A00A8: Standing
CPU 0x803A0020: Jump
CPU 0x80021124: Start
CPU 0x80021190: Set Z Coord
CPU 0x80021134: Game Speed
CPU 0x803A0084: Z Modifier
CPU 0x8039FFFC: a jump here
CPU 0x803A0000: F6
Movement
Control Stick
CPU 0x803A0AF8: SW T8, 0x0014(T6) (Store Control Stick Coords to 0x8011F0A0)
CPU 0x80389B20: Jump to Move
Move
CPU 0x8006385C: start move
CPU 0x800638A0: Set Movement Speed (Walk?)
CPU 0x800638C4: Set Movement Speed (Stop?)
CPU 0x80063ACC: Set Maximum/Minimum Speed Var
CPU 0x80063B28: Set Movement Speed (Run?)
CPU 0x80063B4C: Set Movement Speed (Maximum/Minimum)
CPU 0x80063B74: Start
CPU 0x80063B7C: Move Word to Floating-Point (AT -> F14) (F14 is maximum tilt)
CPU 0x80063B88: T6 Load Left/Right CS Coords from 0x8011F0A0
CPU 0x80063B8C: T7 Load Up/Down CS Coords from 0x8011F0A0
CPU 0x80063B90: Move Word to Floating-Point (T6 -> F4)
CPU 0x80063B94: Move Word to Floating-Point (T7 -> F6)
CPU 0x80063B98: Convert FP to Single FP (F4 -> F2)
CPU 0x80063B9C: Convert FP to Single FP (F6 -> F12)
CPU 0x80063BA0: Multiply FP (F8 = F2*F2)
CPU 0x80063BA4: NOP
CPU 0x80063BA8: Multiply FP (F10 = F12*F12)
CPU 0x80063BAC: F0 = F8 + F10
CPU 0x80063BB0: F0 = sqrt(F0)
CPU 0x80063BB4: If (F14 < F0) cond = 1; else cond=0
CPU 0x80063BB8: Store Word from FP (0x0000(A0) = F0) (Tilt)
CPU 0x80063BBC: If (cond == 0) Branch 0x80063BCC (Branch if link isn't running at full speed)
CPU 0x80063BC0: NOP
CPU 0x80063BC4: Branch to 0x80063BD4
CPU 0x80063BCC: Load Word to FP (F16 = 0x0000(A0))
CPU 0x80063BD0: Store Word from FP (0x0000(A0) = F16)
CPU 0x80063BD4: JAL 0x800AA4F8 (Turn function)
CPU 0x800AA524: Branch 25
CPU 0x800AA534: Branch 11
CPU 0x800AA544: Branch 7
CPU 0x800AA584: Branch 7
CPU 0x800AA5C0: Branch 14
CPU 0x800AA5D8: Branch 8
CPU 0x8039FA5C: Rotate Start
CPU 0x803A0004: Rotate
CPU 0x803A0B2C: Start Rotate
Open Menu
A set if you're opening menu
CPU 0x800A2818: Get if you're opening menu
MEM 0x8011D730: get from here
CPU 0x800A24A0: get from here
CPU 0x800A23FC: start
CPU 0x800A2660: JAL to start
CPU 0x800A25DC: start
CPU 0x800A29A0: JAL to start
CPU 0x800A2918: start
CPU 0x800A296C: test
CPU 0x800A24AC: not
CPU 0x800A2820: Set if you're opening menu
CPU 0x800A2824: not
CPU 0x800051B4: A jump
CPU 0x80099F48: Opening Process
CPU 0x80099F68: Very Early
CPU 0x80099F90: Open Menu?!
CPU 0x80099FC4: Set Opening Menu Flag to 2
CPU 0x8009A020: Step Opening Menu Flag
CPU 0x8009A050: Clear RAM Space
CPU 0x8009A06C: Set Up RAM Space (Free to inject custom item usability after it)
CPU 0x80099C8C: Set Up RAM Space
CPU 0x8009A074: Custom Menu Setup Injection Point
CPU 0x8009A084: Pausing Process seems to end here
CPU 0x8009A0A0: Jump to 0x8039B760
CPU 0x8009BEB0: Check if you're opening Menu
CPU 0x8009BEC4: Jump to Open Menu Process
CPU 0x8009C5C8: Set Pause Image State to 3
CPU 0x800A279C: Function used to set if you're opening menu
CPU 0x8039B204: Set Menu state flag to 6
CPU 0x8039B8A4: Jump to 0x8039B8AC
CPU 0x8039B94C: Jump to 0x8007C09C
Load Inventory
CPU 0x8039B988: Function Start
CPU 0x8039B990: T1 = Save RAM Offset (Upper Bytes)
CPU 0x8039B99C: T1 = Save RAM Offset
CPU 0x8039B9A8: Loop Start
CPU 0x8039B9B0: V0 = Item Usability
CPU 0x8039B9B4: AT = 0x9
CPU 0x8039B9B8: V0 == AT BL 0x8039BA24 (Both can use item)
CPU 0x8039B9BC: V0 = V0 + 0x1 (0xA as V0 always is 0x9 at this point)
CPU 0x8039B9C4: T7 = Age
CPU 0x8039B9CC: V0 == T7 B 0x8039BA20 (Can Use Item)
CPU 0x8039BA24: Start Point for usable items
CPU 0x8039BE34: Get item
Usability
MEM 0x8039F114: Inventory Slots
MEM 0x8039F12C: Equipment Slots
MEM 0x8039F13C: Items
Perform Action
CPU 0x8038A000: ???
CPU 0x8038AAE4: Perform Action Start
CPU 0x8038AB0C: JAL to Action Function
CPU 0x8038AB6C: Branch if empty bottle
CPU 0x8038AB98: Branch if action is not 0
CPU 0x8038ABBC:
CPU 0x8038AC88: Remove Attack Flag
CPU 0x8038AD58: Check for attack flag
CPU 0x8038B098: ???
CPU 0x8038C790: ????
Running of ledges
CPU 0x803915E0: Check for hover boots
Set C-Button
CPU 0x800713C8: Set C-Button to 0xFF (Trade Sequence)
CPU 0x80390510: Set C-Button to A2 (Equip)
CPU 0x80390528: JAL 0x8006FB50
CPU 0x8039052C: Set C-Button Linked Slot to T5
Set Item (Using Item Slot ID)
A1 = Item Slot ID
A3 = Item ID
CPU 0x8007140C: Set Item
State Jump
CPU 0x800DDBB8: Jump to Ocarina & Text Box State
MEM 0x801135E4: Stores where to jump
Text Box
Loop
CPU 0x800DDBC0: Start
CPU 0x800DDC70: T9 = Language
9339B9D9
CPU 0x800DDC88: JAL 0x800D7B00 (Print Dialog Text)
Function RAM: 0C035EC0
Print
CPU 0x800D7B00: Print Start
Update Gear
CPU 0x800796C0: Start?
CPU 0x80079704: T9 = Shield
CPU 0x800797B0: Set Shield
CPU 0x800797CC: Set Tunic
CPU 0x800797EC: Set Boots
CPU 0x8007981C: Set Sword
CPU 0x8007983C: Update Boots Behaviour
Use Item
_JAL to Launch
_Not Used: Ocarina, Lens, Nut, Bean
CPU 0x8038A4D8: Jump Back (Use Melee Weapons)
Items: Swords, Deku Stick, Megaton Hammer
CPU 0x8038AFC8: Jump Back (Put Away Swords)
Items: Swords
CPU 0x8038AFD8: Jump Back (Put Away Items)
Items: Deku Stick, Slingshot, Boomerang, Bottle, Megaton Hammer
CPU 0x8038B004: Jump Back (Pull Out Swords & Deku Stick)
Items: Swords, Deku Stick
CPU 0x8038B024: Jump Back (Pull Out Items)
Items: Bomb, Bombchu, Boomerang, Slingshot, Hookshot, Longshot, Empty Bottle, Megaton Hammer
CPU 0x8038CCC8: Jump Back (Use Masks & Custom Items)
_Magic
CPU 0x800725D0:
CPU 0x80072734:
CPU 0x80072CF8:
CPU 0x80079D4C: V0 = A1 - 0x12
CPU 0x80079D50: BLTZ V0, 0x80079D68 (Branch if action is below 12)
CPU 0x8038CA14: V1, 0x8038CE98 (Some items jump here)
CPU 0x8038CA3C: BEQ A2, R0, 0x8038CA74 (Branch if action is 0)
CPU 0x8038CA4C: BGEZL T0, 0x8038CA78 (Branch if not in water)
CPU 0x8038CA54: Get swim state
CPU 0x8038CA58: AT, R0, 0x0010 (10 = Hookshot)
CPU 0x8038CA68: BEQ A2, AT, 0x8038CA74 (Branch if action is 10 (Hookshot))
CPU 0x8038CA6C: AT, R0, 0x0011 (11 = Longshot)
CPU 0x8038CA70: BNE A2, AT, 0x8038CE98 (Branch if action isn't 0x11 (Longshot))
CPU 0x8038CA78: some place
CPU 0x8038CA84: BNEZ T4, 0x8038CB48
CPU 0x8038CA88: NOP
CPU 0x8038CA8C: BNE A2, AT, 0x8038CAAC (Branch if action isn't 6 (Deku Stick))
CPU 0x8038CAA8: BEQ T7, R0, 0x8038CB38 (Branch if out of Ammo)
CPU 0x8038CAB4: BNE A2, AT, 0x8038CAD0 (Branch if action isn't 2E (Magic Bean))
CPU 0x8038CAD8: SB A2, 0x0027 (SP) (Store Action)
CPU 0x8038CADC: Jump to 0x80079D48
CPU 0x8038CAE4: Return Here
CPU 0x8038CAEC: LB A2, 0x0027 (SP) (Restore Action)
CPU 0x8038CAF0: BLTZ V0, 0x8038CB48
CPU 0x8038CB1C: T5 = Ammunition
CPU 0x8038CB20: BEQ T5, R0, 0x8038CB38 (Branch if out of Ammo)
CPU 0x8038CB48: Some place
CPU 0x8038CB50: BNE A2, AT, 0x8038CBCC (Branch if action is not 42 (Lens of Truth))
CPU 0x8038CBD0: BNE A2, AT, 0x8038CC14 (Branch if action isn't 1B (Deku Nut))
CPU 0x8038CC14: Some place
CPU 0x8038CC30: BLTZ V0, 0x8038CCA0
CPU 0x8038CC3C: BNEL A2, AT, 0x8038CC54 (Branch if action isn't 18 (Farore's Wind))
CPU 0x8038CC70: T7 = Current Magic
CPU 0x8038CC7C: BNEZ AT, 0x8038CC90 (Branch if you have enough magic)
CPU 0x8038CCA4: BNEZ AT, 0x8038CCD8 (Branch if action is below 3A (Mask))
CPU 0x8038CCDC: BNEZ AT, 0x8038CCE8 (Branch if action is below 1C)
CPU 0x8038CCE4: BNEZ AT, 0x8038CCF0 (Branch if action is below 1E (Ocarina))
CPU 0x8038CCEC: BNEZ AT, 0x8038CD4C (Branch if action is below 1F (Empty Bottle))
CPU 0x8038CCF8: Call Dialog Trade Item???
CPU 0x8038CD10: BNEZ AT, 0x8038CE98 (Branch if action is below 25 (Use Bottle))
CPU 0x8038CD18: BEQL (Branch if action is action is above 2B (Dialog Items))
CPU 0x8038CD40: Set Perform Action on landing flag
CPU 0x8038CD44: Jump Back
CPU 0x8038CD48: Store Action to use when landing
CPU 0x8038CD50: BNEL A2, T4, 0x8038CBD88 (Branch if action isn't current action)
CPU 0x8038CD6C: Store Action
CPU 0x8038CDD4: Jump
CPU 0x8038CDE4: BGEZ V0, 0x8038CE4C
CPU 0x8038CE70: Call pre Pull out Item
CPU 0x8038A038: Pull out Item Call Function
CPU 0x8038A0A4: Pull out Item Call
CPU 0x8038D1B0: Jump here to use bottle?
Injection Point
CPU 0x8038CCAC:
MEM 0x803AA6FC: Item Action Table
Use item Delay
CPU 0x8007A340: 5
CPU 0x8007B798: 6
CPU 0x8038A678: 1
CPU 0x8038A8F4: 2
CPU 0x8038ACB4: 3
CPU 0x8038B190: 4
CPU 0x8038C718: 7
CPU 0x8038C83C: 12
CPU 0x8038C868: 13
CPU 0x80391B14: 8
CPU 0x80391BAC: 9
CPU 0x80391BDC: 10
CPU 0x80391E58: 11
Use Item Launch
CPU 0x80389284: Jumps hack here in the end
CPU 0x8038C9B8: JAL 0x8038A0F8
CPU 0x8038C9C0: V0 is the action at this point
CPU 0x8038C9CC: V1 = Active Action (This is set whenever you use an item)
CPU 0x8038C9D0: T6 = Current Action (if you have item in hand, etc)
CPU 0x8038C9D4: BNE V1, T6, 0x8038CA14
CPU 0x8038C9E8: BGEZ T8, 0x8038CA3C
Warp
CPU 0x803A065C: BNEL T2, R0, 0x803A067C (Check if you're playing a ocarina)
CPU 0x803A0670: Jump to Is Playing Ocarina
CPU 0x803A4E34: Playing Ocarina
CPU 0x803A4F80: Check if you've clicked on the dialog
CPU 0x803A4F88: Warp Start
CPU 0x803A5034: Jump to create actor
test
1. 801DB094 = 803A4E34
2. 801DB270 = 0001
3. 801D8966 = 0004
Hooks
CPU 0x80003BCC: Called continously throughout the entire game
CPU 0x80020108: playing
CPU 0x800240E0: playing
CPU 0x8009BC18: Branch if in a menu
CPU 0x8009BC58: Branch if in a menu
CPU 0x8009BD64: playing early
CPU 0x8009CB34: When playing & not pausing
Memory
Link
Link State
MEM 0x801D8BF0: Disabled Item Groups
00000001 B Button
MEM 0x801D8BF4: Disabled Item Groups
00000001 Hookshot & Longshot (Global must be unset)
00000100 Trade Items
00010000 Bottles
01000000 Unused?
MEM 0x801D8BF8: Disabled Item Groups
00000001 Farore's Wind (Global must be unset)
00000300 Sun's Song
00030000 Warp Songs
01000000 Ocarina
MEM 0x801D8BFC: Disabled Item Groups
00010000 Global
01000000 Din's Fire & Nayru's Love (Global must be unset)
MEM 0x801DAAB8: Ground Water State
MEM 0x801DAB70: Last Used Button Index
MEM 0x801DAB72: Item in hand
MEM 0x801DAB74: Action to Perform when landing
MEM 0x801DAB7F: Current Mask Equipped
MEM 0x801DB09C: Link State (Word)
00000001 Disable control
00000002 Swiping Bottle
00000004 Connect Hookshot?
00000008 FPS Item in hand
00000010 Reset action icon
00000080 Freeze all object animations
00000100 Swing Sword
00000400 Navi will run away
00000800 Carrying
00001000 Loading Spinattack
00002000 Camera Side View (Ledge)
00004000 Camera overhead View
00010000 Z-Target Focusing
00018000 Z-Targeting Focus Target
00028000 Z-Targeting No Focus
00040000 Is set when exiting water with Z-Target
00100000 First Person Mode
00200000 Is Climbing
003C7080 If any of these are enabled, delay
00400000 Shielding
00800000 Is on Epona
02000000 Lock Camera
08000000 Focus camera in direction (In Water)
20000000 Talking
CPU 0x80390DFC: Enter Talking State
CPU 0x803A9C1C: Enter Talking State
30000000 Ocarina/Trade Item
80000000 Enter Grotto
CPU 0x8038D698:
CPU 0x8038D9A0:
CPU 0x8038D9CC:
MEM 0x801DB0CE: State
Position
MEM 0x801DAA54: X
MEM 0x801DAA5C: Y
MEM 0x8011A5D0: Save RAM
Entrance
MEM 0x8011A5D0: Entrance Index
MEM 0x8011B964: Grotto Return Entrance Index (halfword)
Items
Buttons
MEM 0x8011A638: B, C-Left, C-Down, C-Right Items
MEM 0x8011A63C: C-Left, C-Down, C-Right Item Slots
CPU 0x8007847C: This JAL here ruins buttons under water if there's more than 2!
Capacity
MEM 0x800F8CCE: Quiver Capacity
MEM 0x800F8CD0: Big Quiver Capacity
MEM 0x800F8CD2: Biggest Quiver Capacity
MEM 0x800F8CD6: Bomb Bag Capacity
MEM 0x800F8CD8: Big Bomb Bag Capacity
MEM 0x800F8CDA: Biggest Bomb Capacity
MEM 0x800F8CF6: Bullet Bag Capacity
MEM 0x800F8CF8: Big Bullet Bag Capacity
MEM 0x800F8CFA: Biggest Bullet Bag Capacity
MEM 0x800F8D06: Deku Stick (20) Capacity
MEM 0x800F8D08: Deku Stick (30) Capacity
MEM 0x800F8D0A: Deku Stick (40) Capacity
MEM 0x800F8D0C: Deku Nut Capacity
MEM 0x800F8D10: Deku Nut Capacity (255)
Equipment
Left Side
0x??6EE4DB Everything
MEM 0x8011A670: Unused
MEM 0x8011A671: Deku Stick & Nut Capacity
0x02 Deku Stick 10
0x04 Deku Stick 20
0x08 Deku Stick 30
0x10 Deku Nut 20
0x20 Deku Nut 30
0x30 Deku Nut 40
0x6E Everything
MEM 0x8011A672: Bullet Bag, Dive Meter & Wallet
0x02 Silver Scale
0x04 Gold Scale
0x10 Adult's Wallet
0x20 Giant's Wallet
0x40 Bullet Bag 30
0x80 Bullet Bag 40
0xC0 Bullet Bag 50
0xE4 Everything
MEM 0x8011A673: Quiver, Bomb Bag, Strength Upgrade
0x01 Quiver 30
0x02 Quiver 40
0x03 Quiver 50
0x08 Bomb Bag 20
0x10 Bomb Bag 30
0x18 Bomb Bag 40
0x40 Goron Bracelet
0x80 Silver Gauntlets
0xC0 Golden Gauntlets
0xDB Everything
MEM 0x8011A640: Selected Tunic&Boots, Sword&Shield
Right Side
0x7777???? Everything
MEM 0x8011A66C: Tunic & Boots
0x01 Kokiri Tunic
0x02 Goron Tunic
0x04 Zora Tunic
0x10 Kokiri Boots
0x20 Iron Boots
0x40 Hover Boots
0x77 Everything
MEM 0x8011A66D: Sword & Shield
0x01 Kokiri Sword
0x02 Master Sword
0x04 Biggorons Sword
0x08 Broken Giant's Knife Picture
0x0D Broken Giant's Knife
0x10 Kokiri Shield
0x20 Hylian Shield
0x40 Mirror Shield
0x77 Everything
Gear
MEM 0x001DAB6C: Tunic, Sword, Shield, Boots
CPU 0x8039E538: Get Boots (used for hover)
CPU 0x8039E554: Hover
CPU 0x80391618: This JAL causes you to fall
MEM 0x801DB2B0: Hover Time Remaining
CPU 0x803A0DB4:
CPU 0x8039E558: End Hover
CPU 0x8039FC48: Get Boots
CPU 0x8039FC4C: Branch if hoverboots
CPU 0x8039FE4C: Get Boots
CPU 0x803A0C1C: Get Boots
CPU 0x803A0C64: Get Boots
CPU 0x803A0D88: Branch if not hoverboots (hover effect)
Inventory
Item Amount
MEM 0x8011A65C: Stick, Nut, Bomb, Bow
MEM 0x8011A660: Fire Arrow, Din's Fire, Slingshot, Ocarina
MEM 0x8011A664: Bombchu, Hookshot, Ice Arrow, Farore's Wind
MEM 0x8011A668: Boomerang, Lens of Truth, Beans, Beans Available
Items
MEM 0x8011A644: Stick, Nut, Bomb, Bow
MEM 0x8011A648: Fire Arrow, Din's Fire, Slingshot, Ocarina
MEM 0x8011A64C: Bombchu, Hookshot, Ice Arrow, Farore's Wind
MEM 0x8011A650: Boomerang, Lens of Truth, Beans, Hammer
MEM 0x8011A654: Ice Arrow, Nayru's Love, Bottle 1, Bottle 2
MEM 0x8011A658: Bottle 3, Bottle 4, Adult Trade, Child Trade
Other
Status
MEM 0x8011A674: Heart Pieces
MEM 0x8011A675: Spiritual Stones, Gear, Song of Time, Song of Storm
MEM 0x8011A676: Songs
MEM 0x8011A677: Minuet, Boloero, Medallions
Link
MEM 0x8011A5D4: Age
MEM 0x8011A600: Current Health (Halfword)
MEM 0x8011A602: Magic Meter Size (Byte)
MEM 0x8011A603: Current Magic (Byte)
MEM 0x8011A60A: Can Use Magic (Byte)
Records
MEM 0x8011B490: Fish Size
Skulltulas
Changing Max Amount
CPU 0x8038AC94: Set to Max Skulltula Amount
CPU 0x8038ACA8: Set to 0x0000
CPU 0x8038ACB0: Prefix to be used
CPU 0x8038ACB8: Set to 0x00FF (This should always be higher than skulltula count)
CPU 0x8038AD8C: Set to Max Skulltula Amount
MEM 0x8011A6A0: Skulltula Tokens
CPU 0x8038AC94: 64
CPU 0x8038ACA8: -64 (Reduces skulltula display amount to 0 so that it displays 00)
CPU 0x8038ACB8: 64
MEM 0x8011B46C: Forest Temple, Jabu Jabu, Dodong's Cavern, Deku Tree
MEM 0x8039F194: Skulltula Table
Time of Day
MEM 0x8011A5DC: Time of Day
MEM 0x8011A5E0: Day/Night
MEM 0x8011B9A0: Global Timer (Halfword)
0x176F = 99:59 (Highest without visual errors)
CPU 0x800775E0: Tick
CPU 0x800775E4: V0 = Time
CPU 0x800775E8: Branch if time isn't 0
CPU 0x80077644: If (Time < 60) {AT = 1} else {AT = 0}
CPU 0x80077648: Branch if AT = 1 (Timer < 60)
CPU 0x800776DC: Play Tick Sound
CPU 0x80078004: unknown
MEM 0x8011B9D9: Language (Byte)
CPU 0x80074574: T8 = Language
CPU 0x800758BC: text stuff?
CPU 0x800764D0: T7 = Language
CPU 0x80076504: Update Language
MEM 0x801C6FA0: Game Speed/State (Halfword)
0x1 = File Menu
0x2 = Pause Menu
0x3 = Default
MEM 0x801C84B4: Button Activators
0000 No Button
0001 C-Right
0002 C-Left
0004 C-Down
0008 C-Up
0010 R
0020 L
0100 D-Pad Right
0200 D-Pad Left
0400 D-Pad Down
0800 D-Pad Up
1000 Start
2000 Z
4000 B
8000 A
MEM 0x801C84C8: Control Stick Activators
0x003C Up
0x00C4 Down
0x3C00 Right
0xC400 Left
MEM 0x801D8870: Conversation (English)
Coloring
Color Addresses
MEM 0x801132C0: White Text
MEM 0x801132C4: Red Text
MEM 0x801132C8: Green Text
MEM 0x801132CC: Blue Text
MEM 0x801132D0: Light Blue Text
MEM 0x801132D4: Purple Text
MEM 0x801132D8: Yellow Text
MEM 0x801132DC: Black Text
Color RGBA
Black
CPU 0x800D6DF8: Red, Green & Blue (Black)
Blue
CPU 0x800D6CAC: Blue (Blue)
CPU 0x800D6CB0: Red (Blue)
CPU 0x800D6CB4: Green (Blue)
Green
MEM 0x801C7DEC: Red (Green)
MEM 0x801C7DEE: Green (Green)
MEM 0x801C7DF0: Blue (Green)
Light Blue
CPU 0x800D6D18: Blue (Light Blue)
CPU 0x800D6D40: Red (Light Blue)
CPU 0x800D6D44: Green (Light Blue)
Purple
CPU 0x800D6D74: Blue (Purple)
CPU 0x800D6D78: Red (Purple)
CPU 0x800D6D7C: Green (Purple)
Red
CPU 0x800D6BDC: Green & Blue (Red)
CPU 0x800D6BE4: Red (Red)
White
CPU 0x800D6E20: Red, Green & Blue (White)
Yellow
CPU 0x800D6DB4: Green (Yellow)
CPU 0x800D6DBC: Red (Yellow)
CPU 0x800D6DE0: Blue (Yellow)
CPU 0x800D90EC: Jump To Set Color
MEM 0x801D8954: Current Text Color
CPU 0x800D8F9C: Branch if not 05 Command (Color)
CPU 0x800D9018: Branch if not Less than 20 Command
CPU 0x800DBD74: Branch if not 1E Command (Records)
Cursor Color
CPU 0x800D7030: Calculate Blue
CPU 0x800D70A0: Set Blue
CPU 0x800D70A8: Set Green
CPU 0x800D70B0: Set Red
MEM 0x80112F20: Red (Word)
MEM 0x80112F24: Green (Word)
MEM 0x80112F28: Blue (Word)
Records
CPU 0x800DBDCC: Branch if not 02 Command (Fish)
CPU 0x800DBEE8: Branch if not Less than 07 Command
Text
CPU 0x800D6D80: Set Colors
CPU 0x800D900C: Read Letter
CPU 0x800DB55C: Set Letter
CPU 0x800DCA9C: Set Convo
MEM 0x801D8DD4: Menu State
0x01 Open Menu (Only run when a menu isn't open)
0x06 Finish Opening Menu (Only run when a menu is open)
0x07 Open Save Panel (Only run when pause menu is open)
0x08 Open Game Over (Only run when a menu isn't open)
0x09 Open Game Over (Only run when a menu is open)
0x0F Save (Only run when a menu is open)
0x10 Open Continue / Quit (Only run when a menu is open)
0x11 Continue/Quit (Result Depends on Selected Option: 0x0 continue, 0x4 quit)
0x12 Close Menu (Only run when pause menu is open)
CPU 0x8039C574: Begin Opening Save Panel
MEM 0x801D8E60: Selected Menu Option
CPU 0x8039CA1C: Get Option (Save - Pause Menu)
CPU 0x8039CAA0: Select Save
CPU 0x8039CAB8: Jump to save? 0x800C806C
CPU 0x8039CAC0: Jump to save? 0x8009D894
CPU 0x8039CAD8: Jump to save? 0x800905D4
CPU 0x8039CB10: Jump to save? 0x8039CB10
CPU 0x8039CB48: Jump to save? 0x800C7200
CPU 0x8039CB6C: Jump to save? 0x8006D8E0
CPU 0x8039D7F0: Get Option (Save - Game Over Screen)
CPU 0x800905D4: Save?
CPU 0x80090614: Get Save RAM
Patches
Bottle Dupe & Ocarina Items (Jump Methods)
_Info
The reason why these glitches work is because a flag telling you to use an action when you land isn't cleared properly. I clear this flag whenever you press & use an item
CPU 0x8038CA88: NOP, You can inject here (only when not pausing)
MEM 0x8038CA88:
Set to 0xA0E0069D to remove Bottle Dupe & Ocarina Items
Bottle Dupe (Pause Method)
_Info
The game has various checks to decide if you're allowed to pause. I add the flag that is set during a bottle swipe (0x2) to the ones that are not allowed
Warning: This didn't patch the glitch entirely. You can still pause the first frame of the swipe as the flag is set after the swipe start
CPU 0x800793A0: Lower Bytes of bitflags that aren't allowed
MEM 0x800793A0:
Set to 0x34210082 to prevent pausing while swiping a bottle
CPU 0x803A05A0: get state
CPU 0x803A5738: Swipe Start
CPU 0x803A5860: Branch on first swipe frame
CPU 0x803A5958: Set Swipe State
MEM 0x801DABDE: 2648 = Bottle Swiping
Dive
CPU 0x803A02F0: This Branch skips past water detection when you don't have control
Fishes
_Info
Converter: http://www.h-schmidt.net/FloatConverter/
MEM 0x8011B490: This is the location in the SRAM where they store the size of your biggest fish, stored as a 32bit fixed point rounded down
First 7 bits, maximum value is 0x7F
MEM 0x801F2950: This is where the game stores the size of the fish you are currently holding, stored as a floating point
CPU 0x801E3228: Get Fish Size from SRAM
CPU 0x801E325C: Load Fish Size
CPU 0x801E9B4C: Get Fish Size
CPU 0x801F01C8: F6 = 0x0000(V0)
CPU 0x801F01D8: 0x0000(A3) = F6
CPU 0x801F01F4: F0 = 0x0000(A3) (0x801F5DE8)
CPU 0x801F0200: F10 = F0
CPU 0x801F020C: Store (have won the price?)
CPU 0x801F0210: V0 = F10
CPU 0x801F0240: Store new fish size
Golden Scale
_Info
0x00040000 is for swimming
MEM 0x80022BE8: This is where the game checks for various states you can't collect items in, we change it to make it so that you can collect items after exiting water with Z-Target
3C010038 set it to this to remove the flag
bad collection
CPU 0x80022BD4: Start
CPU 0x80022C04: Store
38 (Wrong)
4C (Correct)
CPU 0x80022CD0: Store Recieve
CPU 0x803A4A6C: LB V1, 0x0424(A2)
MEM 0x801DAE54: (byte)
0x38 (Incorrect)
0x4C (Correct)
CPU 0x803A4A70: BNEL
V1 = 38 (Incorrect)
V1 = 4C (Correct)
CPU 0x803A4A94: SLL 0x1
T6 = A8 (Wrong)
T7 = E4 (Correct)
CPU 0x803A4AA0: ADDIU
T7 = 150 (Wrong)
T7 = 1C8 (Correct)
CPU 0x803A4AA8: ADDU
T8 = 14A (Wrong)
T8 = 1C2 (Normal)
CPU 0x803A4ABC: Store wrong collection
803A9FCE (Wrong)
803AA046 (Normal)
CPU 0x803A4AD4: Collection goes wrong
MEM 0x803A9FCE: Glitched
MEM 0x803AA046: Standard
MEM 0x8011EF7C: Wrong
803A9FCE (Wrong)
803AA046 (Normal)
CPU 0x80022BE8: Upper bytes of states not allowed while collecting
CPU 0x80022BEC: Lower bytes of states not allowd while collecting
CPU 0x80022BF0: T6 = 0x066C(A3)
CPU 0x80022BFC: Branch and skip stuff if z-target thingy is active
CPU 0x80022C70: Branch if you're to far away
CPU 0x80022CA8: stepping
CPU 0x80022CD4: Store to 0x801DAE58
CPU 0x801F0534: Clear Var
CPU 0x801F0544: Jump to Collection (Correct)
CPU 0x801F06AC: See if you should get goldscale
CPU 0x801F06B4: This branch causes the gold scale
CPU 0x801F06E0: Jump to Collecttion (Incorrect)
CPU 0x801F0AF4: A Jump
CPU 0x801E7538: A Jump
CPU 0x801E7564: A Jump
CPU 0x801E75A8: A JR
CPU 0x801E75CC: prog
CPU 0x80395088: Set Var
CPU 0x803A1F84: Jump Past
CPU 0x803A1FAC: No Branch
CPU 0x803A1FE0: No Jump
CPU 0x803A1FF0: No Jump
CPU 0x803A2000: No Jump
CPU 0x803A2008: T5 = 0x0428(S0)
MEM 0x801DAE58:
Correct: 801FCEF0
Incorrect: 0
CPU 0x803A2014: BNEL
Correct: Do not Branch (T5 = 801FCEF0)
Incorrect: Branch (T5 = 0)
CPU 0x803A201C: Jump to Set Var
MEM 0x801F2950: Current Fish (Floating Point)
MEM 0x801FD008: When This is set, you do not receive gold scale
ISG (Regular Method)
_Info
I fix ISG by clearing the Attacking flag at a specific function that runs when doing a bunch of things (unpausing, putting away items, interacting, etc.)
CPU 0x80079714: Runs when changing item in hand unpausing, putting away ocarina, interacting, etc.
MEM 0x80079718: NOP
Set to 0xA0800833 to remove ISG
Prevent Opening Chests Under Water
_Info
1. Normally you can't open chests under water because of a flag that is set when you're swimming in water.
2. However, when using hookshot/longshot, that flag is unset.
3. As a result, by hooking and landing directly at the bottom, you won't have entered the swimming/sinking state, leaving the flag unset, allowing you to open chests.
4. This patch will make it so that using hookshot/longshot doesn't unset the flag.
CPU 0x803A73B0: Unsets the Flag preventing you from opening chests
MEM 0x803A73B0:
Set to 0x2401FFFF to stop it from unsetting the flag
Research
CPU 0x800798B8: not
CPU 0x8038C7C4: not
CPU 0x80393F64: Apply Flag That Disables Chests from being opened when entering water
CPU 0x803A059C: not
CPU 0x803A05CC: not
CPU 0x803A0760: not
CPU 0x803A1B2C: Apply Flag That Disables Chests form being opened while swimming
CPU 0x803A72E8: not
CPU 0x803A73B0: This AND command removes the flag when usign hookshot/longshot
CPU 0x803A73C0: removes
Shield Swipe
CPU 0x8038AA40: Check if a button has been pressed
CPU 0x8038AAB8: This is where it jumps past to Use Item
CPU 0x8038AABC: Set Stored Action
CPU 0x8038AAC4: Set Last Used Button Index
CPU 0x8038AAD4: Here
CPU 0x8038B6A0: Check if an action is stored
CPU 0x8038C9A0: Use Item
CPU 0x8038CE98: Back
Super Slide & Ground Jump
_Info
In the pickup function, set flag 100 if you're shielding
Injection Method
CPU 0x80003BCC: Use this as the hook
Testing
CPU 0x80392DEC: Add Shielding State
CPU 0x80395490: Add Is Carrying State
CPU 0x8039DF74: Check if you're carrying stuff
CPU 0x8039DFAC: Branch if not carrying
MEM 0x801dae4c: ?
W Hacks
Color Engine
MEM 0x800D6BD0: Color Table
Default Colors
MEM 0x800D6CD0: White
MEM 0x800D6CD4: Red
MEM 0x800D6CD8: Green
MEM 0x800D6CDC: Blue
MEM 0x800D6CE0: Light Blue
MEM 0x800D6CE4: Pink
MEM 0x800D6CE8: Yellow
MEM 0x800D6CEC: Black
MEM 0x801D8954: Current Text Color
CPU 0x803B2DC4: JAL to Zelda Map Select
CPU 0x803B32C4: JAL to Zelda Map Select
Custom Item Usability
CPU 0x8006F344: Disables Sun's Song
MEM 0x800F7350: Scene Table
MEM 0x800F7355: Kakariko Village
MEM 0x801D8BF0: Restriction Flags
Use Sword under water
CPU 0x8006E8A0: Change to 0x24050000 (This will include the B button in the water usability loop)
CPU 0x8006E8DC: Change to 0x241F003C (Will make Master Sword usable under water, replacing Hookshot)
CPU 0x80388E6C: Remove climbing
CPU 0x80388EE4: Jump to remove climing
CPU 0x80393DF4: Jump to jump to remove climbing
CPU 0x8038CA58: Change to 0x24010003 (This will make the Sword function usable under water, replacing Hookshot)
CPU 0x80394038: Climb under water check?
W Tests
Use Hookshot in air
Aiming
CPU 0x803A05C8: Remove loaded state???
test
CPU 0x800216E8: 00000008 (Hookshot in hand)
CPU 0x80021710: Branch if not hookshot in hand
CPU 0x80023E50: 00000040
CPU 0x80023EA0: Varies
CPU 0x80079398: 20000080
CPU 0x80079478: 00000010
CPU 0x800798D8: BFF07FFF
CPU 0x8007A32C: 00000080
CPU 0x801DFFA8: 00000400
CPU 0x8021AD04: 100004C0
CPU 0x80389C44: 08000000
CPU 0x8038A524: 40030000
CPU 0x8038A584: 00000010
CPU 0x8038A8CC: 20008000
CPU 0x8038AD54: 00000100
CPU 0x8038D688: BFFFFFFF
CPU 0x8038D6B4: 20000080
CPU 0x8038D794: 02001000
CPU 0x8038FB0C: 00000080
CPU 0x803914F8: 2800000
CPU 0x8039DF04:
CPU 0x8039E6BC: A0000000
CPU 0x8039FD08:
CPU 0x803A05A0: FFBFFDFD (Remove Loaded State)
CPU 0x803A0714: 00000800
CPU 0x803A083C: 00806080
CPU 0x803A0868: 04000080
CPU 0x803A08E0: 30000080
CPU 0x803A0A64: 20000020
CPU 0x803A0A74: 20000020
Use
CPU 0x803A0670: Jump to Hook functions
CPU 0x803A72F4: Branch when entering flying state?
During Hook
CPU 0x803A1BE8: During FPS Mode
During Hook (shooting flying)
_Call
CPU 0x800230B0: Store soundeffect
CPU 0x800230A0: Sound repeater
CPU 0x8021FCE8: Start
CPU 0x80220364: Jump to Start
MEM 0x801E49A4: Stores where to jump
CPU 0x8021FA50: Store where to jump
CPU 0x8021FB48: Branch if longshot?
CPU 0x8021FB5C: Jump to store where to jump
CPU 0x8021FD38: Hookshot Jump to Sound Repeater
CPU 0x80024B34: Branch if soundeffect isn't set
CPU 0x80024B3C: JAL to function
CPU 0x80024540: Start hook function
CPU 0x80024580: Play Shoot Sound Effect
Hook Connect
CPU 0x803A72C8: Hook Connect Start
Hook End
CPU 0x803A1D50: Exit FPS
CPU 0x803A73B0: Remove Disable Chest Flag When Ending Hook
Reach Destination
CPU 0x8039AB68: Reach Destination Start