Title: Memory Address List Post by: Fatories on July 05, 2011, 08:29:37 PM Here is an extensive list of memory addresses for various things in the Legend of Zelda Oracle of Ages. This is for Oracle of Ages ONLY. Although OoA and OoS (Oracle of Seasons) are very similar the memory addresses are not in the exact same locations, nor are values the same. You can use these memory addresses in the VBA (Visual Boy Advance) Memory Viewer to edit various aspects of the game, or if you have knowledge on gameshark codes you could easily make them into gameshark codes for stuff such as permanent pegasus seed use.
Table of Contents: - Life/Rupee Addresses - Item Addresses - Inventory Addresses - Item count - Weapon/Item Level - Miscellaneous Item Addresses - Ring Addresses - Animal Addresses - Miscellaneous Addresses - Credits Life/Rupee Addresses: Rupees: C6AD - The first byte the game reads your rupee total from. Changes the ones and tens digits (0-99 rupees). C6AE - Second byte, changes the hundreds digit (100+ rupees) Life: C6AA - Your current life in-game C6AB - Total amount of hearts you have Item Addresses: Inventory Addresses: C688 - B Button C689 - A button C68A-C699 - Slots 1 to 16 on inventory screen. Item Count: C6B9 - Number of ember seeds C6BA - Number of scent seeds C6BB - Number of pegasus seeds C6BC - Number of gale seeds C6BD - Number of mystery seeds C6BE - Number of gasha seeds C6B0 - Number of Bombs C6AC - Number of pieces of heart C675 - Number of small keys Weapon/Item Level: C6B2 - Sword Level C6AF - Shield Level C6B8 - Power Bracelet Level C6B7 - Harp of Ages songs obtained Miscellaneous Item Addresses: C6BF - Essences (FF = all essences) C69F-C6A5 - Secondary Items (FF in all for all items with mermaid suit, or FF in all except C6A3 with FB for all items with flippers) C69E - Seeds obtained for use (FF = all seeds) Ring Addresses: C616-C61D - Rings obtained in ring list (FF for all rings in each list) C6CC - Level of Ring Box C6C6-C6CA - Rings in Ring Box C6CB - Ring currently equipped C6CD - Number of Rings (resets on inventory open) Animal Addresses: C6B5 - Animal flute icon(01 Rickey, 02 Dimitri, 03 Moosh) C610 - Animal Song+Animal+Map Features (0B Rickey, 0C Dimitri, 0D Moosh) Miscellaneous Addresses: D00D = Links X position D00B = Links Y position CC99 = The tile coordinates that Link is standing on (YX) CC9A = Tile ID that Link is standing on CC2D = Active map group (00 present overworld, 01 past overworld, 02 present underwater, 03 past underwater, 04/05 dungeons, 06-07 side scrolling rooms) CC2F = Map backup/real map to go into CC30 = Active map CD23 = Active map tileset CD25 = Active map animation CD28 = Active map unique CD29 = Active map palette CC48 = Map to warp into CE00-CEBF = Collision data (Same bit style as D033) CF00-CFBF = Map data Pegasus Seed timer = CC6C Pegasus Seed timer loop = CC6D D033 Bits: 00 - regular walking C0 - touching up 0C - touching left 30 - touching down 03 - touching right 10 - top left corner (top end) 01 - top left corner (left side) 02 - bottom left corner (bottom end) 40 - bottom left corner (bottom end) 80 - bottom right corner (bottom end) 08 - bottom right corner (right side) 20 - top right corner (top end) 04 - top right corner (right side) Note: Values can combine such as if you are touching both left side and top side, D033 will become CC Note2: When pushing up against an object, D034 is set to 10. Credits: Oracle of Ages Memory Address document written by Fatories. Special thanks to Lin for giving some memory addresses and helping with a few things. Other than a few memory addresses given by Lin, all were found using the VBA memory viewer by myself. Title: Re: Memory Address List Post by: Lin on January 08, 2012, 11:03:28 PM Sorry if I'm not supposed to reply to this thread, but I think I found something while messing around in VBA's Memory Viewer. I was trying to figure out how to make the Harp of Ages work so that you could choose which song to play, because when I gave it in-game, you weren't able to select the song. I figured out that the address C6B7 determines which song is currently selected by the harp, whereas how many songs you have, and whether or not you get a menu, is intertwined with the number of seeds address, C69E. Sorry if this has been posted before. I'm currently trying to work out a list, but for now I can say for sure that the values '61' to '7F' is where you first get two song options, Echoes and Currents and 'E1' to 'FF' gives you all 3 songs. Changing the 2nd number gives different seed combinations. There are some other values inbetween these (81-DF), but the harp song images don't match up with the tunes or the names, so I guess they're kinda buggy. It seems like the first number goes up by 6 (hex) and the 2nd goes up by 2 (hex), with the 2nd number always being an odd number. Huh, really? That means the upper 3 bits of the seeds byte actually are used. Interesting find. What might help you understand the value is it's a bit mask - each bit is a boolean (true/false). There are 8 bits in a byte, so the first 5 bits are for the seeds and the upper 3 are for the harp songs (According to your findings anyway).I'm not super great with hex editing, so I could be wrong about some of this stuff. Maybe someone more experienced could also play around with this and see what they can find out. I'll still try to map out a full list for people to use. Title: Re: Memory Address List Post by: Lin on February 12, 2012, 06:08:34 AM Some memory addresses I have that I'm sure are on here but I'm too lazy to check.
Memory Addresses CC46/CC35 - The current music index CC30 - The current map CC2D - The current map group CC39 - The current dungeon CBB6 - The selected spot on the minimap CBB7 - The selected warp-to spot when warping with a gale seed CBBF - The image shown of the hovered warp-to spot CBA3 - The dialogue index being shown CC2A - Input bitmap (pressed once, not held). Also the value the game checks to use your weapon C688 - B weapon C689 - A weapon CBE9 - Show B weapon C6C4 - Selected seed satchel seed C6C5 - Selected seed shooter seed C69E - Seeds that you have (Bitmap) CD02 - The direction you went when going map-to-map (00 = Up, 01 = Right, 02 = Down, 03 = Left) CDD1 - Enemy count CCA0 - Triggers stepped on CC8F - Torches lit (count) CCAB - The length of the lever you pull from the wall (Bit 7 is set if it's pulled all the way) C6AA - Current health (00 dead, 40 full) C6AB - Max health (00 if dead, 40 full) CCAD - Cube torch color (8x if lit) D029 - If >= 80, decrease health while > 0 (If it's FD, take away 2 health. FC, 3, etc) Enemy RAM ========= Dx80 - In use byte Dx81 - Main ID Dx82 - Sub ID Dx84 - Enemy stage (For example, 09 in a stalfos is walk, 0A is prepare jump, 0B is jumping) Dx86 - Movement timer (How long to walk in a direction unless hits a collision) Dx89 - Movement direction. 00 = up, 08 - right, 10 = down, 18 = left Dx8B - Y Dx8D - X Dx9A - Not sure, but if < 80, enemy disappears Dx9B - Palette echo Dx9C - Palette DxA1 - Sprite index (current step) DxA2 - Lower byte of data DxA3 - Upper byte of data DxA4 - If bit 7 is set, the enemy is vulnerable DxA6 - Collision height radius DxA7 - Collision width radius DxA8 - Damage that gets dealt (FF - [value]) DxA9 - Health - A level 1 sword deals 2 damage DxAE - Frozen timer (boomerang hit) During the enemy loading procedure, FF8F = Main ID, FF8E = Sub ID The format for enemies is mainly the same for particles and regular interactions, except particles are 0xC0-0xFF and regular interactions are 0x40-0x7F. |