Posts for Kuwaga


Experienced Forum User
Joined: 10/20/2006
Posts: 1248
Have the code for Full Lonlon Milk there first (no Minuet, no Bolero, no Light, have Shadow, have Spirit, no Water, have Fire, no Forest) For example catch a fairy to get Shadow and Spirt. Then get Fire by beating it and do the glitch. The cool thing is, it really doesn't matter what's inside your bottle when you empty it. As you can see, the uses for that glitch are only very limited.
Experienced Forum User
Joined: 10/20/2006
Posts: 1248
KazooieBombchu wrote:
Sorry Kuwaga if I haven't told you about that, good job anyway on that you found them on your own. if you follow that item hex list on and try hack futher than dungeon items you will see some items will hack temples key amount. one song will give you double defense power too and with one song you can hack skulltula amount too ^_^
Yea, of course such things are possible. But currently there's no way to get those items to C-Right except the Bomb Bag, so I'm not motivated to do any testing. The most interesting byte is "Slot 255" imo.
KazooieBombchu wrote:
And BA doesn't work on child, I hope there is way for that someday...
Doesn't look like it though. :/
KazooieBombchu wrote:
Kuwaga - you sayed that you can get half bottle of milk to your invertory and it will give you all medallions expect light medallion and how much it's on amount, i hex it's 1F. I have tried get it but how you do it????
I explained it more detailed in some of my earlier posts. But really, everything you have to do is have the code for Full Lonlon Milk there first (in your inventory). And then empty the bottle on B, no matter what's inside, or do the empty bottle drinking glitch. You will have Half Full Lonlon Milk on B and in your inventory then.
Experienced Forum User
Joined: 10/20/2006
Posts: 1248
Being attached to a huge sign post, everything the "slow" sign would have to do is fall to the ground in the right direction. And it will reach the goal first! I'm also betting on it. Though if there are multiple laps, I'm betting on the turtle. >_>
Experienced Forum User
Joined: 10/20/2006
Posts: 1248
Ok, here it is. For everybody who's interested.. Version of Mupen I used: mupen64-rerecording-v8 Memory scanner I used: TSearch v1.6b Download link and tutorial can be found at http://en.wikipedia.org/wiki/Tsearch A better tutorial for memory searching is here: XD http://tasvideos.org/MemorySearch.html I used Oot v1.0 Here is the .cht-file I created with TSearch: http://www.sendspace.com/file/mgqd8w or http://www.keepmyfile.com/download/e137be1625784 The addresses are not in the same order as on the N64, but I tried my best at putting them in the correct order in the .cht-file. The top values are for an easier understanding of RBA mainly. Play around with those pointer variables and catch something in a bottle and you should understand how it works. The bottom values are related to BA and get used when travelling through time. What everybody who is interested can do is play the game and watch the values labeled as "Slot 42", "Slot 43" and "Slot 255". Maybe they are unused, maybe they aren't. This should be one of my last posts regarding the subject. Happy searching! (or not) ^^ Edit: Also something I've found out (that probably Kazooie and others already know >_>) is that BA will never work so Young Link gets something different on B by travelling through time. Look at the bottom values, Young Link's buffered B Button value always gets changed to 59 (Kokiri Sword) when you become an adult.
Experienced Forum User
Joined: 10/20/2006
Posts: 1248
KazooieBombchu wrote:
Kuwaga - I don't want to sound hars or anything. But all what i can say those are damn old to me and some other peoples too. I have sayed about that acryte some weeks ago but I don't think so he remember it. I have tried figure out those 3 unused byte long time but without succeess. Good find anyway if you found those on your own and if you tell me that why Zelda chaos haven't updatet it because that owner doesn't care about it anymore and I have asked he to update it but no... I know you doens't belive me I don't care. sorry peoples keep this topic on.
Hey, what's wrong? They weren't at Zelda Chaos and nobody talked about it, so I thought they were new. Of course I believe you that you knew it all along, but you should have told me. :O Would have saved me time. I also think those last 3 are unused, but you never know.
Acryte wrote:
wish I was at home so I can test stuff out, but you said BA also works w/ Trade items? If you use Cojiro it would give all medallions except for fire I think... then after that we could use BA for boss key... claim check could give us all but shadow. then it comes down to which one is faster to get... shadow or fire.
From my testings only BA works with trade items, RBA doesn't. So you can have a trade item on B, travel throught time twice and have it changed. And there hasn't been any recent progress on the run, so I don't have a bad conscious talking about BA here. I'll post something in a few hours that can make everybody understand how BA works without reading pages of text or hours of trying.
Experienced Forum User
Joined: 10/20/2006
Posts: 1248
bkDJ wrote:
Little-/Big- Endian issues??
Exactly.. I was hoping I could just find the first address and calculate the rest from it. However, I was able to find out what some of these "unused bytes" really get used for. Question marks are probably unused bits. Prescription on C-Right points to Deku Tree Dungeon Items: ?,?,?,?,?,Map flag,Compass flag,Boss Key flag Eyeball Frog -> Dodongo's Cavern Dungeon Items: ?,?,?,?,?,Map flag,Compass flag,Boss Key flag Eyedrops -> Jabu Jabu's Belly Claim Check -> Forest Temple Bow with Fire Arrow -> Fire Temple Bow with Ice Arrow -> Water Temple Bow with Light Arrow -> Spirit Temple Kokiri Sword (unequipable on C-Right) -> Shadow Temple Now the only thing that could be useful is probably Bow with Fire Arrow and catch a fish/bug to get the Fire Temple Boss Key in an all medallions run. That is if we don't find a way to get the Light Medallion back, after that Lonlon Milk glitch. We still don't know what the bytes with Gerudo Mask and Mask of Truth on C-Right get used for. Also an empty C-Right is equal to 255 and that points to another seemingly unused byte. So there's only 3 bytes left, maybe we can still find something interesting there, lol.
Experienced Forum User
Joined: 10/20/2006
Posts: 1248
KazooieBombchu wrote:
My explantion for that link on B and rigth C is that. If you have swordless link and hop on epona, you can use C items on her. if you have sword it doesn't let you use items. C buttons will fade away. I think game check that you cannot use C items from B button and code will go wrong if you doesn't have anything on it, is that right?
No, your explanation is probably wrong. Because it doesn't explain why the game acts like that, every explanation which includes "the game goes crazy" or "it does something wrong" is either incomplete or wrong. xD Read my explanation in my first post on page 166, it explains why it works differently in MM. From my explanations the game doesn't do anything strange at all. It does exactly what it would do if the bottle was on C-Left for example. The only reason it gets buggy is because B wasn't designed to have a bottle on, so there's no memory reserved for the pointer and it looks to C-Right instead. Why have I been able to drink a Full Lonlon Milk I don't even have to get 5 medallions? Because I understand how it works and there's really not any unusual coding behind it. Have a bottle equipped on C-Left, save your game, switch off the N64. Then freeze 8011A63C to 2 with a Game Shark, catch something inside the bottle and it will write it to your 3rd slot in your inventory. That's just to further prove the pointer theory. (if 8011A63C is the correct address, which I have not tested, HSS posted it) I'll play through the game using a memory watcher program now later today. Chances are most bytes we can reach and we don't know what they get used for are just unused bytes. It would be the best case for us to find another pointer variable there imo. That would allow us to further screw up the game. Though I believe that won't happen.
KazooieBombchu wrote:
That is old you can start BA with all bottle items, but today I noticed that you can strat it with all child and adult trade items too!
Yep, I've already noticed that a few days ago. But unfortunately RBA doesn't work with them because trade items use a different code to update your inventory. They don't use the same pointers because the slot the new item goes to is always the same. What does it mean that you can start off BA with trade items too? It just means that Nintendo initially wrote the code, so you could have a trade item equipped to C as an adult, become Young Link again, trade the item and get an adult again. And you would have C updated correctly again. Read my first long post on page 165 for more details. Nintendo maybe originally planned to make the persons you have to trade with to get the Biggorons Sword divided up between Young Link's and Adult Link's world. And as you can see you would have got the Odd Mushroom inside Gerudo Fortress originally. Edit: I'm currently in the Deku Tree and I have already found were Mupen stores the first important values. I've already found the pointers, they are really there, lol. But Mupen seems to store the addresses in reverse order, it's currently confusing the hell out of me. :X Mupen's memory allocation seems to work reversed in pairs of 4 addresses. It will be confusing as hell to figure everything out. Somewhat like this: 4,3,2,1, 8,7,6,5, 12,11,10,9, 16,15,14,13, 20,19,18,17, 24,23,22,21, ... It will be soo confusing. :/ I'm not sure if I'll be able to handle it, my experience with memory scanners isn't that big after all. I'm making good progress. ^^ I'll post something useful soon.
Experienced Forum User
Joined: 10/20/2006
Posts: 1248
No, I mean watching them through the entire game. Some bytes maybe only get used during certain events, that's why I think it would be a good idea. Either the emulator would have to provide the feature, or we would have to use a general memory watcher/memory freezer program. I have experience with the later, it would be more complicated though. I don't know if it would be worth the time invested because it's very likely that we won't find anything useful imo.
Experienced Forum User
Joined: 10/20/2006
Posts: 1248
Yep that's the problem. You'll lose the Light Medallion and there's no way to get it back I know of. I don't see any major route changes for the any% coming up from BA. But somebody should play through the game and watch all of the addresses we can currently reach and we don't know what they're used for yet or if they get used at all. I'll maybe take the time and do it. Maybe there's still something we can do, but I'd expect it to be nothing major.
Experienced Forum User
Joined: 10/20/2006
Posts: 1248
That's not how you do it. xD Get Shadow, Spirit and Fire Medallions. Don't have other Medallions or Warp Songs (only the green and red warp songs matter). A good way to do this is to catch a Fairy with Broken Sword on C-Right. The only thing left to get is the Fire Medallion. You now have 00011010 at that byte. Which is equal to 26, a Full Lonlon Milk. Your Bottle on B is empty. You do the drinking glitch with the Broken Sword on C-Right. The game activates the drinking code, it looks for what you drink. To do that, it uses our good old pointer on C-Right, lol. It sees, ah, there's Full Lonlon Milk inside the bottle Link is drinking. Then it gives you Half Full Milk on B and updates it to where the medallions get stored. Edit: You also don't need to really have a Full Lonlon Milk anywhere for the above glitch. The game will just look at your combination of Medallions and interpret it as a Full Lonlon Milk. Nayru's Love isn't used for that. I just found out how the bottle drinking works with Nayru's Love on C-Right and I posted it because it doesn't last long to replicate as opposed to the medallions thing. You need to have a Full Lonlon Milk in bottle 2 here.
Experienced Forum User
Joined: 10/20/2006
Posts: 1248
You mean how to get rid of the Half Lonlon Milk? Just move Nayru's Love to C-Right or something that points to an unused byte or something unimportant and drink it? It updates it on the B Button and tries to update it inside the inventory as well. Which is why we get the Medallions. I already said in one of my old explanations that getting Bottle B instantly updates your inventory as usual, or at least it tries to. The same goes for when you make the game think you just drank a Full Lonlon Milk. Edit: Ah, sorry, I get what you mean. Yes, you have to have a bottle in your hand to do the bottle drinking glitch. Which is why you catch a fish with C-Left. Then do a backflip, press C-Left and B.
Experienced Forum User
Joined: 10/20/2006
Posts: 1248
I was able to figure out how the bottle drinking code works, lol. Try doing Bottle B, let it be empty, have full Lonlon Milk in bottle 2 and Nayru's Love on C-Right. Then catch a fish with C-Left for example to do the Ocarina Items glitch with B to see what happens. You drink the empty bottle, get a half full Lonlon Milk on B and in your inventory. The combination of Medallions and songs I used above is the equivalent of a full Lonlon Milk. Make sure the Broken Goron Sword is on C-Right so you point to the right byte. You get Half Full Lonlon Milk written there as a result, which is 00011111. So 5 medallions for Link, yay! xD That's why it works. So drinking a Full Lonlon Milk and getting a Half instead works no matter what's on B, if you can get the bottle drinking code to get executed. It's only important to point to a full Lonlon Milk with C-Right. I'm pretty sure you can drink a Blue Potion on B that way and get a half empty Lonlon Milk as a result on B. Not entirely sure though. :X
Experienced Forum User
Joined: 10/20/2006
Posts: 1248
No problem. You should probably reread my older posts tomorrow if you want to understand it better. Btw, what do you say about my cool way of getting all medallions except Light Medallion with only completing Fire Temple? (which doesn't take long) I thought it's really cool. XD
Experienced Forum User
Joined: 10/20/2006
Posts: 1248
You'll see the light soon. ;) Something the game could also do is always store everything in the first empty bottle in your inventory when you catch something. But wouldn't it feel cheep to equip bottle 4, catch something and have bottle 1 updated in your inventory?
Experienced Forum User
Joined: 10/20/2006
Posts: 1248
Acryte wrote:
Okay so then since pointers are the exact same thing as hex but with an unnecessary goaround then what were you saying earlier about bottles needing pointers to slots because there are multiple of them? Because it doesn't even matter if you have 100 million bottles if you have 100 million addresses where the bits are stored then each address has the item stored independantly. AND every other item that is in that main menu has it's data stored in exactly the same way, so I'm wondering what you mean when you are talking about bottles being exclusive when it comes to pointers.
Pointers aren't an unnecessary goaround. Multiple bottles don't NEED pointers to work. You could have also have every bottle have its own VALUE. However, there's proof that this isn't the case. When you equip a bottle to C, everything the game would know is its value without a pointer. It would just change the bottle on C when you catch something, not inside your inventory. By every bottle having a different value, you would be able to make conclusions as to which slot it comes from. Or by using a thing, I and lots of other people call pointer, where they store the address where that bottle comes from. Which is what they did.
Acryte wrote:
The only reason im arguing this w/ you was because you had said it has nothing to do w/ adding +44 to hex on c-right and that bottles required some exclusive stuff w/ pointers that other stuff didn't when to me in hex, evey item in the exact same thing but w/ a different value in its bit address.
It has nothing to do with adding 44 because it works the same for every button. If you use an item on C-Left, the game adds a certain number to get to the inventory, if you use it on B it adds a different number, 44. Is that what you think? It looks at the same base address no matter on which button the bottle gets used, therefore it isn't adding, it's looking at the same base address no matter what, that's not called adding. It then adds a value to that base address, like above in my explanation "y+03" for example. That is called adding. I never said bottles where different in such a way. The only thing bottles do differently is look at pointers (reading signs) when you use them to know where inside your inventory they need to update a slot. The pointer is there when you use other items as well, it just doesn't get used because the game doesn't have to. This post explains it well:
HSS wrote:
Only bottles use the indexes when you use them because they are the only ones that can be in 4 different places normally. 8011A638 - B item 8011A639 - C-left item 8011A63A - C-down item 8011A63B - C-right item 8011A63C - C-left index 8011A63D - C-down index 8011A63E - C-right index The game adds 3 to the address of the item to get to the index when you use the bottle. It also uses them when you change C-items, but then it doesn't check the B-button.
The game wouldn't know where to update bottles in your inventory without remembering the slots. And that is basically what is called "using a pointer" (reading sign).
Experienced Forum User
Joined: 10/20/2006
Posts: 1248
I know exactly what you're talking about. I know cheating devices. XD I just didn't want to call it game shark or anything at first because that's basically advertisment. The problem is you don't know what I'm talking about. xD
Acryte wrote:
I completely understand what you are saying about pointers and just because it seems like a logical structure for a game programmer to use, doesn't mean it was indeed used.
Everytime a game or a program uses one of those "reading signs" to remember addresses, you can basically call that a pointer. It's just a different way to look at the same thing. It's not, either the game works with pointers or entirely in hex. It doesn't make a difference. After you compile a program everything there's left is what you look at now with memory viewers. But you can never explain WHY things happen just from that alone. You didn't understand why the game does things which seem random to you. I offered explanations, which I can not entirely prove without having the originally source code, but there's lots of evidence that I'm right about a majority of the things I wrote.
Experienced Forum User
Joined: 10/20/2006
Posts: 1248
You can't really say a game works in hex. Hex is just numbers you look at, you could display all of them in binary or decimal code as well. Hex numbers are used for addresses to avoid having to use long numbers, easier to look at.
Acryte wrote:
How did I get magic beans to that slot? Just like you can get ANY ITEM onto ANY SLOT in the inventory. You take that slot's location in memory. That slot has bits stored there. You change the bits to whatever the desired item is in the slot. That is why I am saying this stuff about pointers is completely irrelevent. If you use pointers as some way for your mind to understand how it works outside the game then that seems fine but that is not how the game appears to be working at all.
Man, I just wanted to know if you are able to do that without using game shark. Of course, I knew that it's possible with a cheating device and it has nothing to do with pointers. A pointer is a memory address stored in memory by the game. Similar to a reading sign. And they are relevant because they're how it works. I don't want to discuss with you about that, it would just waste my energy. I have a feeling you still don't understand what a pointer is. You should maybe read it up somewhere or just stay stubborn. XD Both pointers and values are just a sequence of bits. Whether you call something pointer or value depends on how they get used. BA includes using a value as a pointer and stuff like that, so I can understand that you're confused without having any programming experience.
Acryte wrote:
AND HOW DO THESE POINTERS EXPLAIN EDITING VALUES THAT ARE NEVER LINKED TO THE MENU AT ALL
Normally the highest value getting saved at x+04, x+05, x+06 (see my explanation above) (8011A63C, 8011A63D, 8011A63E for hex freaks) is 23. Any higher number causes the game to look beyond the addresses of your inventory slots. Because that just kind of points to other memory addresses. You can explain BA entirely without using the word "pointer", just by adding values and writing stuff to addresses. But by adding something to an address, everything you do is changing a pointer to point to a different address.
Experienced Forum User
Joined: 10/20/2006
Posts: 1248
EDIT:Thanks for the actual addresses. Will make it easier to understand. Pointers are what game developers use to write more flexible code. I tried to look at BA from a deleopers perspective. Because it makes more sense imo than just looking at pure addresses.
Acryte wrote:
No, I wasn't critiquing your post
Yet, you said this:
Acryte wrote:
That's not quite how it works. K so...
Acryte wrote:
Also, why does BA work differently in MM? Bottle on B works but we don't have a link to ANY of the C buttons at all. It can only change the item in slot 1 into a bottle w/ what we have on B, but we can't maniulate the slot it points to.
Hm, I didn't know that. It looks like there is a memory reserved for that pointer on MM. It's always zero though, so you always point to the first slot. Also, what petrie911 says should be true too. The inventory code is very flexible, which is why you can turn items into bottles and then use them like normal bottles.
Acryte wrote:
Also this: "the value of the item on C-right is on that place instead." Especially when cleft and cdown have closer memory allocations then c-right.
It doesn't really matter how close they are. I just used the word close because I thought it would be easier imaginable then. It's just a certain space in memory relative to the address where the value of B (for example) gets stored to, whatever.. I'll try to explain better what I think is going on.. I don't know the actual addresses for the C-Button-items or anything. EDIT: Look at the post above for them. :P So I'll just use made up addresses. The addresses and the order are maybe different in reality, not like it matters much though. I'll try to use easy numbers. You don't have to use hex to understand how it works. Somewhere in memory: (Equipped items on your buttons) x+00: Value of the item on the B button x+01: Value of the item on C-Left x+02: Value of the item on C-Down x+03: Value of the item on C-Right x+04: Space for pointer to your inventory of the item on C-Left x+05: Space for pointer to your inventory of the item on C-Down x+06: Space for pointer to your inventory of the item on C-Right Somwhere else in memory: (Your inventory) y+00: Value of item on slot one y+01: Value of item on slot two y+02: Value of item on slot three .... y+18: Value of item on slot 19 y+19: Value of item on slot 20 y+20: Value of item on slot 21 y+21: Value of item on slot 22 (There's normally bottles at these slots) .... Now, you move to slot 21 and equip that item to C-Left. The game copies the value at y+20 to x+01. You now have the item on C-Left. What it also does is this: You selected the item at y+20, it stores that 20 to x+01+03=x+04. What you equipped to C-Left was in this case an empty bottle. Now you use that bottle and catch a fish. The game writes that new value to x+01, so you have it on C-Left. Then it looks at x+01+03=x+04 There's a 20 there. It also writes that same new value to y+20. y is the base pointer as you can see. Now you do the Ocarina items glitch to get Bottle B. The game glitches up and writes an empty bottle to x+00 instead of x+01. It now looks for the pointer at x+00+03=x+03=value of item on C-Right! Lets say, you got Nayru's Love there. Its value is 19. It writes the empty bottle also to y+19=20th slot. If you could equip a bottle to B from your inventory menu, this would happen: We equip a bottle from slot 20 (y+19) to B: Game writes 20 (empty bottle) to x+00, game writes 19 to x+00+03. This would theoretically give you Nayru's Love on C-Right. For MM: Nintendo has reserved memory for a pointer here, which never gets used. They probably planned to make you able to equip bottles to B in this game at some point. x+00: Value of the item on the B button x+01: Value of the item on C-Left x+02: Value of the item on C-Down x+03: Value of the item on C-Right x+04: Space for pointer to your inventory of the item on B x+05: Space for pointer to your inventory of the item on C-Left x+06: Space for pointer to your inventory of the item on C-Down x+07: Space for pointer to your inventory of the item on C-Right You do Ocarina items glitch. The game writes 20 to x+00. Then it looks for the pointer at x+00+04 (+04 in MM because there's that additional space inbetween). There's a 00 there because it never gets used. It writes the bottle to y+00 (first slot always). I hope that clears things up a bit. The game never does any +44 stuff to get to your inventory. It uses y aka the base pointer to your inventory. EDIT: How did you get Magic Beans to that slot? Does it work without a cheating device? It's also annoying to see that Bottles turned into Adult Link's items aren't equipable as YL. Or do they just look grey, but are equipable? Would make more sense. By the way, the pointers/indexes at x+04 to x+06 get set, no matter if you equip a bottle or a different item to a C-button. They just don't get used again by any other item except bottles. Proof is the old turn items into bottles glitch (without BA). Catch something in a bottle, press start before it's inside, equip a different item to that C-button. The item gets turned into a bottle inside your inventory. Which proves that equipping ANY item to C sets that pointer, like HHS said. EDIT2: Haha, I just thought up something funny while trying to come up with useful ideas. It's not useful at all though, but funny. Get Bottle B as an adult. Catch a fairy and have the Broken Sword on C-Right. You get Spirit and Shadow Medallions and lose all the others. Now finish Fire Temple to get the Medallion without learning the green or red warp songs. Do BA to get a full Lonlon Milk on B. Have the Broken Sword on C-Right. Now drink the Milk. You should now have a half full Lonlon Milk on B and all medallions except the Light Medallion. XD This would have been useful in an all medallions run, if you didn't lose the Light Medallion. lol EDIT3: Wouldn't work. You can't do BA without the Forest Medallion. However, I've found an interesting workaround. Do everything as in EDIT2 until you get the Fire Medallion. Then do Bottle B, it must be empty. Equip Broken Sword to C-Right, fish in bottle to another C-Button. Empty the Bottle, catch the fish again. Now do the Ocarina items glitch. You should drink the empty bottle, and have a half full Lonlon Milk on B and all medallions except the Light Medallion after that.
Experienced Forum User
Joined: 10/20/2006
Posts: 1248
To me it looks like you are basically saying the same thing, just explain it differently. And more detailed. To me what you say doesn't seem to contradict my explanation at all. You explain it in hex, I didn't include hex in my "explanation" because it can unnessecarily confuse the reader imo. Hex is nothing we are confronted with on an everyday basic. (The same goes for pointers, but what can I do? XD) For the places in inventory, yes everything up to Ocarina points to the "right" place. I'd say, they use a base pointer to the inventory (=Deku Stick slot because it's first) and the bottle pointer I talked of in my previous posts says how much space relative to that base pointer the bottle lies in your inventory. Deku Stick has the value 0, base pointer + 0 = Deku Stick slot in your inventory. It points to the SLOT in your inventory. It would be possible to have something entirely different in that slot, like a bottle. We know we can turn Deku Sticks into bottles. You could also write Deku Nut to that 1st slot in your inventory, if there was a way. It's essentially just the first slot that we're pointing to, it has nothing to do with the fact that normally Deku Sticks are in the first slot. Fairy Ocarina points to the 8th slot because its value is 7. Base pointer (Deku Stick slot) + 7 = 8th slot. The Ocarina value is 8, points one slot further (9th). It has nothing to do with the fact that the Ocarina gets equipped to the 8th slot. Those slots are designed in a way so you can have anything anywhere. You could theoretically have a Megaton Hammer at the Deku Stick slot, if you could just write its value to that slot. EDIT: Why do they use a base pointer + space to travel relative from that pointer? (for the catch something in a bottle code) Because it saves space to only store that relative pointer everytime instead of the entire address. Also this kind of code is a lot safer, since we can't move outside that address window if a bug occurs (like there has). Game developers don't want their games to crash if a bug occurs, pointers are always dangerous. Really, I'm pretty sure I'm not entirely wrong with my theories. I know pointers, lol. Turn your Megaton Hammer into a bottle. Then do BA with the Lens of Truth on C-right. That would normally give you the Megaton Hammer on B. But since everything works with pointers, it will give you the item which is on that slot. The item on the Megaton Hammer slot is a bottle, you will get a bottle on B again. I have not tested that yet, but I'm pretty sure it will come true. Read my explanation again, it tells you why only bottles work. They are the only item which use pointers to slots. I even explain why only bottles need that pointer. I hope you'll realize that what we say doesn't contradict the other. Yep, getting Bottle B in first place has nothing to do with Deku Sticks. It's an entirely different glitch. You do a backflip and while you do that backflip you press two buttons. The first button determines the action when you land, the second gets stored as last pressed button. You do the bottle action, but the new value of the bottle gets written to the last pressed button, B, instead. That's faulty code. That's why it's possible to turn several items into bottles with that backflip. The game instantly also tries to update that bottle to the slot in the inventory. Of course it does. Read my explanation above, there's no memory for the pointer reserved on B, the value of the item on C-right is on that place instead. Why you start to play Ocarina with certain others is a thing I don't understand. I interpreted it as some strange coding regarding the Ocarina playing. It's entirely besides the point btw. This glitch is a lot harder to understand for me because there are only few hints as to how it works exactly. You need to understand the difference between slots and items and between pointers and values. A pointer points to where a value is. A slot is the equivalent of a pointer (kind of). Change the pointer and it points to a different value, change the value and that changes the value at that address where the pointer is pointing to at that moment. By the way, there's only one way to get to lower addresses than the Deku Stick slot. We would have to change the base pointer to the inventory. If that pointer is stored on a lower address, there's no way to reach it with our current glitch arsenal. The game will never subtract instead of adding. Edit: Wow, that site is pretty good. Thanks a lot! ^^ Now speaking from your perspective... The code for adding items into your inventory gets run because you use a bottle. The game runs the code because it updates (or tries to) what's inside the bottle into your inventory. Unfortunately trade items work differently. They don't have a pointer to their slot. It's probably hard coded where the new item gets stored to into your inventory. It can't be hard coded for bottles because there are four of a kind. Like I said before. I should have already included this in a previous post.. Edit: Nevermind, I already DID include something like this in a previous post. Anyways... Once more: If you equip a bottle to C-Left, this is what happens. The value of C-Left gets changed to 20 (empty bottle), a pointer near the value of C-Left gets changed to point to the slot of the bottle. When you catch something, the value on C-Left gets changed, then the value of where the pointer points to gets changed too. That's why items turned into bottles work. They point to the right slots. The conclusio is, what we can do with BA and RBA is only very limited. If we can't reach other pointers or values to set up other glitches, like a chain reaction, we've very likely already reached its full potential for an any% TAS. We're lucky to get all medallions off it, thanks to Acryte we have everything we need. I admire his work, I only started posting in this thread because I thought I could speed things up a bit. I will stop posting again anyways, once I get my guitar back, haha. This is only a secondary hobby of mine and I'm happy that there are people like Acryte, Kazooie, etc so you can break the game without my help. (like you already did) >_>
Acryte wrote:
until we find out EXACTLY WHY only bottles work for BA and the link between them and 00 aka dekunuts
Why exactly do you think there's a link between bottles and dekunuts? Ah, you probably ment Deku Sticks, I see. The link would be that base pointer to your inventory. It's almost definitely there. Also it's not like I'm making this up only after you've asked that question. I thought it would work like this from the beginning, I didn't mention it because I think it's unchangeable anyways and therefore not interesting.
Experienced Forum User
Joined: 10/20/2006
Posts: 1248
There are only 6 medallions. And according to Zelda Chaos two songs get stored into that same byte as well. So they need to use the more complicated way to check for the medallions anyway. It's still interesting though. xD
Experienced Forum User
Joined: 10/20/2006
Posts: 1248
Anyway, I'll post some more stuff. My source for all these values and stuff is Zelda Chaos. http://www.jaytheham.com/zc/oot.php?page=ootba These are the items and their values. Everything >50 is still unconfirmed, I believe. Note that Fire Arrow, Ice Arrow and Light Arrow are the pure arrow icons, Fire Bow, Ice Bow, Light Bow is what you get if you equip them. 00 Deku Sticks 01 Deku Nuts 02 Bombs 03 Fairy Bow 04 Fire Arrow 05 Din's Fire 06 Fairy Slingshot 07 Fairy Ocarina 08 Ocarina of Time 09 Bombchu 10 Hookshot 11 Longshot 12 Ice Arrow 13 Farore's Wind 14 Boomerang 15 Lens of Truth 16 Magic Beans 17 Megaton Hammer 18 Light Arrow 19 Nayru's Love 20 Empty Bottle 21 Red Potion 22 Green Potion 23 Blue Potion 24 Bottled Fairy 25 Fish 26 Milk 27 Letter 28 Blue Fire 29 Bug 30 Big Poe 31 Lon Lon Milk (Half) 32 Poe 33 Weird Egg 34 Cucco 35 Zelda's Letter 36 Keaton Mask 37 Skull Mask 38 Spooky Mask 39 Bunny Hood 40 Goron Mask 41 Zora Mask 42 Gerudo Mask 43 Mask of Truth 44 SOLD OUT 45 Pocket Egg 46 Pocket Cucco 47 Cojiro 48 Odd Mushroom 49 Odd Potion 50 Poacher's Saw 51 Broken Sword 52 Prescription 53 Eyeball Frog 54 Eyedrops 55 Claim Check Ok, now we want to know where all of these things would point to if you had them on C-Right. There's 24 places for items in your inventory. For the items with the values of 0-23, add 1 to them and you know to which slot in your inventory they point. Megaton Hammer on C-Right is 17. It points to the 18th item slot. That's Nayru's Love. So BA with Megaton Hammer on C-Right as a child would give you Nayru's Love on B. Catching a fish with B and the hammer on C-Right will write a fish to where Nayru's Love is. From that alone, it doesn't look at all as if there was a way to turn bottles in your inventory into the actual items again. You would have to catch Nayru's Love in a bottle to get it back again. What's with the values >23? They point to different things. It looks like Nintendo reserved memory for an item count at the address of the item slot in the inventory +24 (in bit values). Ocarina of Time is 8, points to the 9th item slot, normally Bombchus. 8+24 = Bombchu Count = 32 = Poe. So a Poe on C-Right points to your Bombchu count. It looks like an item count is only reserved for the first 16 slots (fortunately for us). Everything from the slot for Deku Stick to the slot for Megaton Hammer. There is a Boomerang count, but it never gets used by the game. So 0-23 points to item slots (slot x+1), 24-39 points to item counts (count for the item at slot x-24+1). What's left are the values 40-56. They point to the interesting stuff, lol. According to that site Goron Mask and Zora Mask point to your equipment. The other masks seem to point to unused bytes again. Just look at the upper link to see where the rest points to. It could be that not all of these things labeled as unused bytes are really unused. Nobody knows what happens if you write higher values to the B button. A 60 could be an undefined item. Maybe the standard item is a Deku Stick. So you get a Deku Stick on B, making it seem like a zero had been written to B, leading us to think that we pointed to an unused byte. EDIT: It looks like there are no undefined items. Instead there's still low possibility that the game changes high values on B to Deku Sticks to prevent the game from crashing. I'd say it's unlikely for Nintendo to have included such a safety check, it looks like those are really unused bytes. Broken Sword points to the Medallions. So having it on C-Right and catching something in a bottle writes that to that place. We can write a 20 (empty bottle), 24 (bottled fairy), 25 (fish), 28 (blue fire) or 29 (bug) to there. 20 is 010100 in binary, 24 is 011000, 25 is 011001, 28 is 011100, 29 is 011101. The first 0/1 says if you have got the light medallion. All zeros there, so you lose it anyway. The second digit from left is for the Shadow Medallion iirc, third for Spirit, fourth for Water, fifth for Fire, last for Forest Medallion. Like Acryte said before, a fish gives you Spirit, Shadow and Forest Medallions, a bug gives you Water Medallion too. 63 would be 111111, but we know no item with this value. Somebody could test something here... Have all Medallions, do Bottle B as a kid, travel forwards in time, equip Broken Sword to C-Right, travel backwards. You should get 63, an unusual item on B. Or just Deku Sticks. If we get Deku Sticks, that's kind of prove that they are the default item. And that some bytes which seem to be unused maybe aren't unused at all. I think I need to get myself v1.0 to test some stuff on my own. x_x Edit: I think, I've found a way to equip Young Link's items to C-Right as and Adult and vice versa. I can test it without v1.0. I hope it works. Nope, didn't work. Would have been too strange if I had been the first to test this after all.
Experienced Forum User
Joined: 10/20/2006
Posts: 1248
My understanding of BA without doing much testing or being a super smart guy. I'm taking a lot of guesses here: There can be something inside bottles. Everytime you catch something, it gets into the bottle on the C-Button. But the game also has to write it into the inventory, so changes are permanent. Since there are four bottles, every bottle has a pointer to the place inside the inventory where stuff gets written to when you catch it. This is why if you equip bottle 4 and catch something, it gets stored inside bottle 4, not bottle 1. Yet there's only one bit code for the item "empty bottle", not one for bottle 1, one for bottle 2, etc. It's possible because of that pointer. There is memory reserved for that pointer on all three C-buttons. But not for B, since it shouldn't be possible to have a bottle there. There happens to be the value of the item on C-right instead on the place where that pointer should be. So when you catch a fish, that fish gets written to that byte address instead. Fish is 25, a bug is 29, empty bottle is 20. The value of the item on C-right acts as a pointer to your inventory. When you have a fish on C-right the pointer points to your Deku Nut amount. So making the bottle empty writes a 20 to that place, giving you 20 Deku Nuts. Catching a bug gives you 29 Deku Nuts. That's it for RBA, easy to understand imo. Now BA is a bit different. I think it works like this.. Whenever you travel through time, the items you had equipped get saved somewhere. So you don't have to reequip the Biggoron's Sword everytime or put the bow to C-left everytime. Bottles get saved as 20, no matter what's inside. They still have the pointer into the inventory which says what's inside. Why is that so? Because you can change what's inside a bottle as a kid, then travel forward in time again. You'd expect it to be changed as Adult Link too. So whenever you travel forwards in time and the game loads that 20 (bottle) from that buffered space into your inventory, it looks for the pointer to see what's inside and puts that to the button. The game changes B first. So there's still the item on C-right, you had as a kid there. It loads the bottle to B, looks for the pointer to see what's inside. The pointer has the value of C-right as a kid. If it's a bottled fish it points to your Deku Nut amount again. If your Deku Nut amount is 29, you get a bug on B of course then. If the amount is 10, you get the Hookshot though. Because the game doesn't check if it's an item in a bottle. You can never catch a Hookshot in a bottle, but if you could it would change into a Hookshot. Sorry if this is too confusing.. Normal game: Again, 20=empty bottle, 25=fish, 29=bug You put bottle 1 to c-right. The game writes 20 to c-right and the pointer to bottle 1 in your inventory right behind that. You catch a fish. The game writes 25 to c-right, it looks for the pointer, the pointer points to bottle 1, it writes 25 to bottle 1 in your inventory. You have a fish on c-right and travel backwards in time. The game puts 20 to c-right instead of your fish and copies your entire equipped stuff to the buffer space. You let the fish go as a kid, catch a bug. You travel forwards in time. The game puts the things from that buffer space back to where your actual equipment gets stored. It sees a 20 (empty bottle) while copying and looks for the pointer. It points to a 29 (bug). The bug gets put to c-right instead. It continues copying the rest. Try reading the first part of this post again now, maybe it's less confusing then. Having other items on B doesn't cause weird stuff to happen because there are other pointers involved. If you have Deku Nuts on B and use them, nothing gets changed inside your inventory. The game only notes that a Deku Nut has been used and lowers the Deku Nut count by 1. There is only one Deku Nut amount, so the game doesn't need to use a similar pointer as with bottles. It could have been that Adult Trade items act the same as bottles, I tested it a few days ago when I tried to get more than 23 hearts. But unfortunately the game doesn't even change the B-button if you have a trade item on B and use it in the right place. It has to work like this: Game puts new trade item into inventory, game changes old trade item on C-button to new one. Also: Try getting a full Lonlon Milk (26) on B and drink it. It gets empty at once. But if you put an empty bottle to C-right (has value 20, points to bottle 3) and have full Lonlon Milk in bottle 3, and then drink it, it works like normal. That means the game has an additional check for Lonlon Milk, to see if it's full before you drink it, strange. If you could pause the game while drinking the Milk, it would be possible to change the item on C-right, and you could also write 31 (Half Lonlon Milk) to random bit addresses. I've not been able to do it. :/ Doing Bottle B as Young Link, travelling forwards in time, then backwards should put random things to Young Link's B button by the way. Just like the BA we know. There'd be no use for it in a TAS though. I have never tested it though, no v1.0... It could be that something different happens. But that would explain why the tries to do BA with only one time travel failed :P Maybe it could be of use in a 100% TAS. Do BA to get Bunny Hood on B, then sell it and all masks are available. That could maybe work, but would that be 100%?
Experienced Forum User
Joined: 10/20/2006
Posts: 1248
OK then. I just thought it could be a good idea. Edit: I just realized everything I said about Deku Nuts was stupid btw.
Experienced Forum User
Joined: 10/20/2006
Posts: 1248
Has anybody tested if it's possible to obtain the Master Sword as a child from RBA? It could work with Goron Mask or Zora Mask on C-right, I guess. I can't test it myself, I don't have v1.0. Maybe the door in the Temple of Time would be open then before you have all the Sacred Stones... Also, what happens if you do RBA as a child with an empty C-right? And when you sell a mask, the C button looks like it would be empty again. It could be that "SOULD OUT" is equipped then. "SOULD OUT" has 0x2C as its bit value and that's pretty close to the items which change stuff in your inventory. So it might be good to also test RBA with it.
Experienced Forum User
Joined: 10/20/2006
Posts: 1248
You can get 3x5 Deku Nuts from beating the plant on the right at the entrance in Kokiri. It's there no matter if it's day or night, but only before you have the Forest Medallion. That shouldn't be a problem though. Maybe it would be faster to get 15 there when you go get the Poacher's Saw and none inside Spirit Temple?