Ocarina of Time

Gecko codes for efficient VC practice (updated 07/03/15)

Started by Chain · 05 Jan 2015 · 95 replies

Page 2 of 4 · All times UTC

Last post ↓

Re: Gecko codes for efficient VC practice (updated 02/12/15)

#31
Ah sorry about that I moved the files over to dropbox and updated the main post with the new links. Let me know if there's any problems.

Also sorry for not sorting out the classic controller problem Vince I've been super busy recently and don't have a classic controller I can use to test if my codes work correctly. My suspicion is that you can use the same input address for both controllers since you said A+B+R works on classic controller so my suggestion would be to mess around with this code until you get something to work:

289F6A88 00000008
0504F350 40CB0000
E0000000 80008000

This makes link levitate by pressing d-pad up on the gamecube controller. You can use this website to look at the last 8 digits which correspond to different button inputs on the classic controller. Mess around modifying the last 8 digits of the top line using this website until something works.

Re: Gecko codes for efficient VC practice (updated 02/12/15)

#32
Thank you for reuploading!

Also sorry for not sorting out the classic controller problem Vince I've been super busy recently and don't have a classic controller I can use to test if my codes work correctly. My suspicion is that you can use the same input address for both controllers since you said A+B+R works on classic controller so my suggestion would be to mess around with this code until you get something to work:

289F6A88 00000008
0504F350 40CB0000
E0000000 80008000

This makes link levitate by pressing d-pad up on the gamecube controller. You can use this website to look at the last 8 digits which correspond to different button inputs on the classic controller. Mess around modifying the last 8 digits of the top line using this website until something works.


The 289F6A88 needs to be changed as well as that is specific to gamecube controller button codes. I'm not sure how to find out what the classic controller code is for the Japanese OOT, but for the American version the code for classic controller uses 281C7F2A and gamecube uses 282091E0 (if that helps).

Re: Gecko codes for efficient VC practice (updated 02/12/15)

#33
Yeah I'm aware that the addresses are different for classic controller and gamecube controller on NACE and originally I just converted the code for classic controller inputs from NACE to NACJ but apparently that didn't work. Then according to vince the code for falling through the gorund by pressing A+B+R worked on his classic controller anyway so that made me think it's probably possible to do using the same address anyway.

I could probably figure this stuff out pretty quickly if I had a classic controller to test with but I don't so I'll let someone else on ZSR figure it out lol. I may try Mzxrules' suggestion of using the N64 button addresses but from what I remember from testing it earlier is that not only did it not work with d-pad inputs but it didn't seem to work with any inputs.

Re: Gecko codes for efficient VC practice (updated 02/12/15)

#34
A+R+B on the classic controller doesn't work with these codes. So I'm not sure how Vince could of possibly got that to work.

Re: Gecko codes for efficient VC practice (updated 02/12/15)

#35

A+R+B on the classic controller doesn't work with these codes. So I'm not sure how Vince could of possibly got that to work.


Yeah I'm pretty sure I used Chains code when I did that and not the one I already had, I'll verify later since its almost 1AM here.

Also it was a CCPro, not a regular classic if that matters.

Re: Gecko codes for efficient VC practice (updated 04/01/15)

#36
Just want to bump this thread since I've updated the codes. The list of changes is included at the top of the post but the most significant is the ability to save and load which flags have been triggered! And no this is not an April fools joke :P

I think the flags code saves all flags except maybe some cutscenes but I haven't really done much testing so let me know if there are any flags you think I should find the addresses for (if my code doesn't save them already).

Last edited 02 Apr 2015, 10:25 by Chain.

Re: Gecko codes for efficient VC practice (updated 04/01/15)

#37
Hey there,
I always had problems remembering all the correct button-combination, even before there was the WW code.
Therefore I created a cheatsheet, so I don't always have to open the forum to practice. I hope, it helps some of you, too.
I'll try to keep it up to date. If there is anything wrong, please contact me.

Download Cheatsheet
(@Chain Feel free to link this in your original post.)

Other than that, I suggest adding a WW to Ganondorf, as this is the only boss left without a code.

Re: Gecko codes for efficient VC practice (updated 04/01/15)

#38
Wow scaramanga that's awesome thanks for making it (: I'll add that to the main post. Fall through the floor should be A+B+R though d:

This is also a good time to mention that currently the second teleport code is a bit worse the than first one. The first one will allow you to teleport past solid object like walls etc. the second one will not. I'm gonna fix this soon but I'm fat and lazy so I dunno when I'll get that done.

Re: Gecko codes for efficient VC practice (updated 04/01/15)

#39

Fall through the floor should be A+B+R though d:


Corrected it. The Dropbox link should stay the same.

Re: Gecko codes for efficient VC practice (updated 02/12/15)

#40

A+R+B on the classic controller doesn't work with these codes. So I'm not sure how Vince could of possibly got that to work.


I dont get it either, tried it today and couldnt get that code to work either... I guess you're right.
I'm pretty sure I was testing that with a CC Pro using Chains code so this is prolly gonna drive me crazy tonight though haha.

Re: Gecko codes for efficient VC practice (updated 04/01/15)

#41
Most of the codes don't work with the classic controller. The GameCube controllers are the only supported ones.

Re: Gecko codes for efficient VC practice (updated 04/01/15)

#42

Most of the codes don't work with the classic controller. The GameCube controllers are the only supported ones.


Merely these codes though, all the codes found on geckocodes.org work for CC Pro with a few rare exceptions.

Re: Gecko codes for efficient VC practice (updated 02/12/15)

#43

I dont get it either, tried it today and couldnt get that code to work either... I guess you're right.
I'm pretty sure I was testing that with a CC Pro using Chains code so this is prolly gonna drive me crazy tonight though haha.


I also have a CCP and I'm pretty sure that both the normal and pro controllers use the same address.

I finally got around to looking of the CC address on jp mm as there wasn't one of it either and some how managed to find it. Maybe I'll try to find it for jp oot as well.

Re: Gecko codes for efficient VC practice (updated 02/12/15)

#44

I also have a CCP and I'm pretty sure that both the normal and pro controllers use the same address.

It should be. As far as I know CCPro is CC with different layout.

Re: Gecko codes for efficient VC practice (updated 04/01/15)

#45
Ok I found the classic controller address, here is just a list for both U and J.

Classic:
801C7F2A - English
801C7EB2 - Japanese

Gamecube:
809F6BA8 - English
809F6A88 - Japanese

I had a little trouble finding it...


The 289F6A88 needs to be changed as well as that is specific to gamecube controller button codes. I'm not sure how to find out what the classic controller code is for the Japanese OOT, but for the American version the code for classic controller uses 281C7F2A and gamecube uses 282091E0 (if that helps).


I never tested 2091E0 as the gamecube address and was using it to calculate an offset of where the classic might possibly compared to the english classic. After actually looking on the geckocodes site I found that someone else used 9F6BA8 as the gamecube address instead. Using this address to calculate an offset and looking in that area I pretty quickly found it. So I'm pretty sure that 2091E0 is not the actual english gamecube address. I don't have english oot installed on my wii and I'm not going to bother just to see.

Last edited 06 Jun 2015, 03:58 by Jimmie1717.

Re: Gecko codes for efficient VC practice (updated 04/01/15)

#46
Just made a quick update, a more full one should come after my exams maybe around July or something. I will add classic controller support in the next full update too. The changes are listed on the main post.

Progress has been halted since I hit the gecko code limit of 425 lines, I know there is a way to get around this because they did it for Brawl. If anyone knows anything about this let me know.

Also scaramanga the new locations are:

39 Ganondorf
40 Desert colossus
41 Lake hylia from Zora's domain
42 Death mountain trail from DC
43 Lost woods from sacred forest meadow
44 Graveyard
45 Zora's domain from Zora's river
46 Goron city from Death mountain crater
47 Kokiri forest from shop

If you could update that file or give me the means to update it that would be awesome (:

Last edited 25 May 2015, 19:50 by Chain.

Re: Gecko codes for efficient VC practice (updated 04/01/15)

#47
The file is updated.

Regarding the space limit, I noticed another problem and they could have the same solution:
The inventory you get from the start is good for some categories, but not for all. I am learning Glitchless and need some other equipment, like the bow and strength upgrades. And some items (I think Ocarina is an example, but I don't know for sure right now) take up the space I need.

Therefore maybe we should add items and equipments for different categories in an txt file, so that everyone can choose via the code-manager. My exams should be done around the same time. I'd be up to discuss possible solutions in greater detail then (or earlier, if we should manage to find some time for that).

Re: Gecko codes for efficient VC practice (updated 04/01/15)

#48
Thanks for updating (:

Yeah I was actually working on a code for that. You would press a bunch of buttons to give you all items. You would then highlight your cursor over the item you want to modify and tap a button is cycle between having it / not having it or having different versions of it. So you could hover over ocarina and press d-pad up + A to cycle between fairy ocarina, ocarina of time and no ocarina.

The problem is this code requires many lines as it has to be done for each spot in the inventory and I already used a lot of lines with the wrong warp and save flags codes. To extend the number of codes you can use in brawl you use a txt file called "gameconfig" and fill it with:

RSB?01:
codeliststart = 80570000
codelistend = 80580000
poke(800042B8, 60000000)
pokeifequal(803E9930, 4BFECA1D, 803E9930, 60000000)
pokeifequal(803E99A8, 4BFECA1D, 803E99A8, 60000000)
pokeifequal(803E9D5C, 4BFECA1D, 803E9D5C, 60000000)

The first line just specifies the game ID and the ? is the region of the game so I tried simply replacing RSB?01 with NAC? and gecko no longer complained about a code limit but then the game wouldn't boot I'd just get a black screen.

If this really doesn't work out I'd be open for making specific code sets for specific categories but it would be much nicer and simpler to have one master code set which works for all categories.

Last edited 25 May 2015, 23:59 by Chain.

Re: Gecko codes for efficient VC practice (updated 04/01/15)

#49
I don't know if you ever changed your warp code but last I looked you have a lot of extra lines that can be eliminated.

Edit:
Here is an improved warp code. Your code was 191 lines. This one is 97 and does the exact same thing. #SaveTheLines
I also added classic controller support on it.

I also included the rupee count modifier I use on my Majora's Mask cheats. Instead of the count changing every frame it changes every 2 frames to slow it down a bit as I personally find it annoying when it's really fast. However it takes up more lines...

Also for the "Manage Inventory" code instead of writing each inventory value separately you can just use a string write code
06F8ECF4 00000018
00010203 04050607
090A0C0D 0E0F1011
1213191D 181C2F2C

Last edited 28 May 2015, 03:42 by Jimmie1717.

Re: Gecko codes for efficient VC practice (updated 04/01/15)

#50
I have some ideas for these practice codes:
1) A button to toggle the ability to walk through walls
2) A button to force loading a new area

This may not help as the practice codes are for VC, but I found the following things in the v1.2 N64 version:
- The function that deals with walls is called at 800225C4 (eg. NOPing this call will deactivate wall collision)
- Setting the byte at 801DAB75 to a non-zero value forces the game to load a new area

If there's an easy way to convert N64 addresses to VC addresses, the second address might be of some use to you.
From watching streamers like Joden, Skater and Moltov, these are the things I've noticed would make practising slightly less tedious.

Re: Gecko codes for efficient VC practice (updated 04/01/15)

#51
Ah thanks Jimmie yeah I thought you needed a E0000000 80008000 at the end of each if code but I guess not. Also yeah having the rupee count change every frame was annoying thanks again! And cool I'll edit the manage items code.

omg BasedKingPotato you are a fucking legend! I've been looking for the address to reload areas for a while now but I'm terrible at finding addresses (it's also much more of a pain to do on Dolphin than Mupen). A couple of people gave me the address on 1.0 but the offset between 1.0 and 1.2 isn't the same for all addresses so I couldn't convert it to a VC code.

I just tested it and it works though. This is a game changer. I'm currently sitting my exams so give me a week and I'll implement the code and make a new release. Thank you very much! I encourage more people to throw addresses (preferably 1.2 ones) at me :)

As for the ability to walk through walls the codes already have that. The teleport code is combined with a code to let you walk through walls. The problem is I can't seem to set multiple inputs to allow you to walk through walls, if I set dpad right to walk through walls and R+dpad right to walk through walls the code stops working.

Jimmie you might know about this, I've got a code that confirms the pointer address:

C0000000 00000009
9421FF98 BCE10008
3F2080BB A359BCC0
A379D2C0 2C1A7C1C
41820010 2C1B7C1C
41820010 48000018
3B39BCC4 48000008
3B39D2C4 3F808000
933C3210 B8E10008
38210068 4E800020

And then this is the code I use to walk through walls:

24003210 80A00000
48000000 80003210
DE000000 80008100
14000000 4082000C
289F6A88 00000002
14000000 4182000C
E0000000 80008000

This is something I got from gecko codes.org but I couldn't reverse engineer it to see what's going wrong. I'd be happy to talk about this on skype Jimmie. If you're interested just PM me you skype address.

Re: Gecko codes for efficient VC practice (updated 04/01/15)

#52

Ah thanks Jimmie yeah I thought you needed a E0000000 80008000 at the end of each if code but I guess not.


You do want to place E0000000 80008000 at the end of every code that is activated by a button, however the rupee count check can simply be a long string of Ifs to see what it is all in one code.

As for the pointer makers I don't really know how they work. I've looked at them before but never figured them out.

Re: Gecko codes for efficient VC practice (updated 04/01/15)

#53
I also recently discovered that if you set the short (2 bytes) at 801DAB7A to the entrance ID of the place you want to warp to, THEN set 801DAB75 to a non-zero value, you'll be sent to the desired location.

I had A LOT of fun messing around with the values in this region of memory, at one point I even managed to get to the sacred realm without being in a cutscene!

Let me know if there are other addresses or things you want to be found, I enjoy digging through a game's code to find ways to manipulate it! ;D

Last edited 29 May 2015, 10:44 by BasedKingPotato.

Re: Gecko codes for efficient VC practice (updated 04/01/15)

#54
Yeah basedpotato, I can basically couple that reload area code with my wrong warp code so we can easily warp to where we want to go. What entrance ID did you use to get to the sacred realm?

Okay well here's my Christmas wishlist:

  • Cutscene flags. I managed to find the dungeon flags but not the flags for cutscenes.
  • An address to load the room you're currently in. I'm not sure if this even exists but when you teleport inside a dungeon from one room to another you end up in a room which is unloaded. This makes the teleport code a pain to use in dungeons.
  • If you can't find an address to reload areas then maybe finding the address modifying the place farore's wind was set would be the next best thing. In fact this could be useful to have anyway.
  • Camera position / angle. I want this because sometimes when you use the teleport code the camera lags behind.
  • A framerate address. Again I'm not sure if it exists but could maybe allow us to speed up / slow down the game.
  • The address for going to the title screen. 8011B92F 0002 sends you to the title screen on 1.0
  • The address to modify what's in Link's hand. I just want a code to instantly put fish in his hand to make wrong warp practice a bit quicker.


That's all I can think of for now I'll edit the list if I think of something else. Thanks for your help (:

Re: Gecko codes for efficient VC practice (updated 04/01/15)

#55
Good to know I have until Christmas to figure this all out Original image
I got to the sacred realm by forcing the game to warp to the entrance ID 0xD8 while the title screen was running. This takes you to the cutscene after the fire temple, where the volcano returns back to normal. After that, you are brought to the sacred realm, where you have full control.

OK, here we go. These addresses are all for v1.2 N64:

1) Cutscene flags? Not quite sure what you mean, sorry.
2) The current room ID is stored at 801DAA1C (1 byte), however in order to force the game to load a new room, you're gonna need ASM hacks. I have the VC WAD, I have Dolphin as well as a USB Gecko, I can find a way to make this work.
3) Farore's Wind addresses:
  • X, Y, Z spawn values: 8011C020 (4 bytes each)
  • Entrance ID: 8011C030 (2 bytes)
  • Room ID: 8011C032 (1 byte)

4) *** I'll do this one tomorrow, I need to go to bed ***
5) I'm pretty sure controlling the speed of the game in any decent way would be pretty much impossible on VC, sorry.
6) Title screen thing: 8011BFDF (1 byte)
7) Item in Link's hand: 801DB432 (1 byte)
     Additionally, if you want to able to use a full bottle in Link's hand, you also need to set 801DB431 (1 byte) to 0x21.

I have WAY too much free time.

EDIT: If you set the byte at 801DABBE to 0x0B, then reload the area with 801DAB75, you get an even faster screen transition.

Last edited 31 May 2015, 03:36 by BasedKingPotato.

Re: Gecko codes for efficient VC practice (updated 04/01/15)

#56
For converting codes between versions, there are two main blocks where you can perform a linear conversion, that contain the important variables

http://wiki.cloudmodding.com/oot/Save_Format
http://wiki.cloudmodding.com/oot/Global_Context

Save files are 0x1450 bytes long, and there are probably a few addresses beyond that that can be converted just fine. Rule of thumb is that if the address is in the 8011xxxx range you can convert it.

The global context is 0x12518 bytes long. Link's instance is loaded immediately after this block every time, so you can still use the same conversion unless you're using the debug rom. Rule of thumb is that if the address is in the 801Cxxxx-801Dxxxx range, you can convert it.

There is no one space for cutscene flags. The save format page I linked has some of those flags I've documented in the past though.

For warping to a specific room, my program Spectrum forces a zoneout type 1 state by setting Link's y to -4000, then overwriting the zoneout type 1's respawn coordinates.
The respawn coordinate data should be located 0x38 before the Farore's Wind warp return point coordinates, and has the same structure as FW's. The only thing is that setting Link's y to -4000 will not trigger a type 1 zoneout in some spots (ice cavern being one). Incidentally, the respawn coordinate data located at 0x1C before Farore's Wind is used for returning from grottos.

If you set the entrance index to -1 (FFFF) it will send you to the title screen.

Changing the framerate higher than 20 fps will probably break the game in weird ways

Re: Gecko codes for efficient VC practice (updated 04/01/15)

#57
Hey im not sure if anyone can help me with this but i cannot get these codes to work, when i launch oot i get "sd codes not found"

my hook type is default and im using oot jp1.2 and gecko 1931.

I can get other codes to work fine just not these ones...

Re: Gecko codes for efficient VC practice (updated 04/01/15)

#58
Did you rename the GCT file? This message indicates that the file is not in the right place on your SD card.

Re: Gecko codes for efficient VC practice (updated 04/01/15)

#60
No, iirc it comes with the right name. But you said, you got cheats for other games to work I figured, you know where the correct folder is and a wrong name would be the simplest explanation.