ZSR Forums
August 11, 2020, 01:41:01 am *
Welcome, Guest. Please login or register.

Login with username, password and session length
News: ZSR Forums are back - read only!
 
   Home   Help Search Members Login Register  
Pages: [1] 2 3 ... 7
  Print  
Author Topic: Gecko codes for efficient VC practice (updated 07/03/15)  (Read 50015 times)
Chain
Regular Guay

Posts: 42



Email
« on: January 05, 2015, 05:19:02 pm »

If you want fast and efficient practice on VC you can download these gecko codes here. Simply drop this file in the "codes" folder on your SD card. To get Gecko on your wii, download gecko here then take the folder named "Gecko 1931" from the zip file you downloaded and copy it to the "Apps" folder on your SD card. There should be a gecko icon on homebrew which you can use to boot up gecko. On gecko go to launch channel, select oot and it should boot the codes automatically.

Update log:

  • 07/03/15 Reload area code and soft reset code added. CREDIT GOES TO JIMMIE FOR MAKING THESE THANKS DUDE.
  • 05/25/15 Included some new locations, included light arrows and fire arrows for MST people (who should be running all dungeons), removed the dumb boots switch code and removed the code to give you inventory items (so that bottles are no longer locked). The defualt value for age has been set to adult instead of child.
  • 04/01/15 quite a few button conditionals changed. The modify health code has only two modes, infinite health and critical health. Finally got around to adding the nut and stick upgrades. The tower collapse timer is frozen. There are two teleport codes so you can save and warp to two different locations. Added a code to save and load which flags have been triggered!
  • 02/12/15 button conditionals for dying and speed boost switched.
  • 02/07/15 wrong warp, speed boost + boots switch added.


A nice summary of the button conditional codes can be found here (credit goes to scaramanga for making this). The codes included in this file are:

  • d-pad left to save location 1, R+d-pad left to save location 2. d-pad right to teleport to saved location 1, R+d-pad right to saved location 2.

  • Wrong warp. This code works by allowing you to modify your rupee count which decides your location, the list of locations is here. Once you've set your rupee count (L+dpad up to increase L+dpad down to decrease) to the location you want to go to, you simply walk through a loading zone (or use R+L+dpad down to kill yourself) and hold L+A.
  • Reload area. Press L+R+A+B to reload the area you're in. This can be combined with the wrong warp code to instantly wrong warp you from wherever you are.
  • Soft reset. Press start+L+R+A+B to activate.

  • Save which flags you have triggered by pressing L+R+d-pad left and then load the saved flags by pressing L+R+d-pad right. When you reload the flags the effect usually only takes place after you've passed through a loading zone so you must re-enter the room for the flags to be set back to their initial state (switches you step on are an exception to this, there may be others). If you simply load flags without saving them you will set the flags back to their default value so if your file has already beaten a certain boss you can simply load flags and that boss will no longer be defeated. You can also only load flags in the room you saved them in so if you save the flags in deku tree before breaking the web then you must also load them in deku tree for the web to reappear. Not all flags get saved, I don't think cutscene flags are saved but most flags useful for practice are saved like which webs have been burnt, which rupees you've collected in kokiri forest etc.

  • d-pad up to levitate
  • dpad down for a huge speedboost
  • A+B+R to fall through the floor (useful for escaping cutscenes)

  • R+dpad up to toggle between being adult Link and child Link. The effect only occurs once you pass through a loading zone. The default is set to adult Link so when you first pass through a loading zone, you will always change to adult unless you press R+dpad up.
  • R + L + d-pad down to die (only works when infinite health has been toggled off)
  • d-pad down + R to die to toggle between having infinite health and having half a heart

Here are some codes which don't involve button conditionals:

  • The tower collapse timer is frozen.
  • Able to equip all c-items (for instance megaton hammer as child)
  • Able to use c-items anywhere (set farore's wind outside of a temple for example)
  • Infinite ammo, magic and small keys
  • Ammo + wallet upgrades and gold scale
  • Some inventory (like farore's wind, ocarina, hookshot etc.)
  • All songs, stones and medallions

These codes only work on the Japanese 1.2 version of oot and the codes with button conditionals (like teleporting and levitating etc.) only work with the gamecube controller (or N64 controller if you have an N64 to gamecube adapter) and will not work with the classic controller.
Thanks to everyone in the forum for pointing out various problems and providing solutions! If anyone has any requests for other cheat codes please let me know. The text file for anyone who wants to improve / make adjustments is here.

Troubleshooting:

If you have installed gecko but the launch channel option does not appear it is because you need to patch IOS36 with simple IOS patcher. If your wii is not connected to the internet it will complain that it can't find the patched ios to install. Instead, you have to download the ios (here) and place it onto your sd card before running the installer. If you launch the game and it says codes booting yet none of the codes work, it is probably because you have the wrong hook type. Go to config options and set the gecko hook type to default.
« Last Edit: July 03, 2015, 10:35:10 am by Chain » Logged
nickenator8
Regular Guay

Posts: 32



Email
« Reply #1 on: January 05, 2015, 08:13:31 pm »

That's really awesome! The d-pad codes will be really helpful for things like unbuffered swordless dot skip and such. Thanks for making these!
Logged
mzxrules
Admin
Ultimate Mega Guay

Posts: 901


Wrong warp expert


« Reply #2 on: January 05, 2015, 11:24:08 pm »

Just gonna post this for my personal use: http://smashboards.com/threads/guide-to-ar-and-gecko-code-writing-for-complete-noobs.336650/

Thanks to that I can pretty safely say that I can convert N64 addresses -> VC addresses as long as I have a single code for an NTSC J inject that modifies something like rupee count.

Anyway, Link's instance is located at address 8104F2F0 in VC. According to my mhs documentation, the y rotation value that immediately affects Link is at offset 0xB4 from the start of the instance, or 8104F3A4. Similarly, Link's X coordinate is at offset 0x24 from the instance start (8104F314)

Also, why won't the codes work with VC U? Is the rom different, or is it just the wad?
« Last Edit: January 05, 2015, 11:36:05 pm by mzxrules » Logged

Quote from:  Leigh Rogers
Braid
This is art because the music is classical music, and the graphics are done with a pen. The story is something about a woman. I could not understand much of this to be honest, which makes it even more likely to be an art.
Chain
Regular Guay

Posts: 42



Email
« Reply #3 on: January 06, 2015, 01:00:33 am »

Wow just tested the angle address and it works! Now the code saves your position and angle (:

I think it's just to do with the wad but you can easily convert NTSC-J codes to NTSC-U codes by simply by subtracting all the NTSC-J addresses by F0120.

Since you know how to convert the N64 addresses to VC ones would it be possible for you to convert sockfolder's MHS addresses to VC ones or tell me how to do it? If I can get my hands on more addresses I'll write more codes.
Logged
mzxrules
Admin
Ultimate Mega Guay

Posts: 901


Wrong warp expert


« Reply #4 on: January 06, 2015, 04:46:48 am »

If the roms are the same, then you should be able to use the NTSC 1.2 rom to find addresses. Converting from NTSC 1.2 N64 -> VC J should be as simple as adding a factor of E7 4000 to a NTSC 1.2 gameshark code.

You mentioned your input codes don't work for all controllers? What about using these input addresses for 1.2:

801C84B4 00??

00 No buttons
01 D-Right
02 D-Left
04 D-Down
08 D-Up
10 Start
20 Z
40 B
80 A


801C84B5 00??

00 No button
01 C-Right
02 C-Left
04 C-Down
08 C-Up
10 R
20 L

For the MHS addresses, if you're referring to the addresses linked in the sticky those are for 1.0.

Subtracting 8E BA80 from any address in the list will give you the real N64 address, except you have to take into account a weird speed hack done with N64 emulation. Basically, the N64 stores integer data in big endian form, while most pcs operate in little endian. In big endian the number 258 would be stored as 00 00 01 02 while in little endian it will be stored as 02 01 00 00. In order to avoid flipping values every time they're read in, the entire rom is read in as a series of 32 bit integers and then flipped. Because of this, the last digit of an MHS address may need to be converted to get an N64 address.

To convert 8 bit values:
0 -> 3, 1 -> 2, 2 -> 1, 3 -> 0;  4 -> 7, 5 -> 6, 6 -> 5, 7 -> 4;  8 -> B, 9 -> A, A -> 9, B -> 8;  C -> F, D -> E, E -> D, F -> C;

To convert 16 bit values:
0 -> 2, 2 -> 0; 4 -> 6, 6 -> 4; etc

32 bit values do not need to be converted.


The following addresses

The addresses documented between 00A06050 - 00A073A0 can definitely be converted trivially, as this is where the save data falls. A06050 is equivalent to 8011AC80 in NTSC 1.2. There's also a good chance that everything up to at least address A076CC is still in the same relative location, since the game uses address 8011AC80 to reach these variables in 1.0 at least.

Addresses between the ranges 00AC64B0 - 00AC6F1B are definitely part of Link's instance variables. AC64D4 is equivalent to offset 0x24 from the start of Link's instance variables, and contains the X coordinate. Sockfolder's variable list erroneously documents it as being the Y coordinate, since he's assuming a different axis mapping than what the developers used (from negative to positive, X runs west->east, Y goes up against gravity, Z runs north -> south). These addresses might be convertible, but if it can't be done, you can use MHS to find them. Link's Y velocity address (used in your levitation code) is 801DB350
Logged

Quote from:  Leigh Rogers
Braid
This is art because the music is classical music, and the graphics are done with a pen. The story is something about a woman. I could not understand much of this to be honest, which makes it even more likely to be an art.
Chain
Regular Guay

Posts: 42



Email
« Reply #5 on: January 06, 2015, 12:01:00 pm »

It doesn't seem to work. I got the entrance address (or something like it) for 1.2 from http://bombch.us/ulX (it's at the very bottom of the page). Then I added the offset value:

8011 ACE7 + E7 4000 = 80F8ECE7

But this is the address for Link's B button. I think the offset value between VC and N64 isn't constant but depends on which chunk of the memory that you are in.

I also tried using the addresses you gave for button conditionals but they did not seem to work. Maybe it works different in Gecko because you have one address for the gamecube controller and another one for the classic controller when writing button conditionals.
Logged
mzxrules
Admin
Ultimate Mega Guay

Posts: 901


Wrong warp expert


« Reply #6 on: January 06, 2015, 01:32:05 pm »

The reason for this is likely that you're writing your code incorrectly. 8011ACE8 is the address used for the current B button, so you're writing a 16 or 32 bit value by mistake. The code should be 00F8ECE7 000000xx according to that gecko code making link.

That said, 8011ACE7 isn't used directly for setting an entrance. It's used to store what scene the player was in when the game was last saved so that when the game is reloaded it can easily calculate the save warp entrance index via jump table. In pj64 I can't get the code to work because it simply doesn't write the value fast enough.

8011AC82 is the current entrance index address. You'd set this to the values in http://www.zeldaspeedruns.com/oot/wrongwarp/entrance-table. Your other option would be to enable map select by converting this n64 code:

810F1A74 00B9
810F1A76 E430
810F1A78 00BA
810F1A7A 1190
810F1A7C 8080
810F1A7E 09C0
810F1A80 8080
810F1A82 3720
810F1A88 8080
810F1A8A 1C14
810F1A8C 8080
810F1A8E 1C08

The address I gave for button conditionals shouldn't work differently. VC 1.2 rom is identical to NTSC 1.2, so the game can't possibly handle input differently for the two controllers. An if equal then execute next line code for when Z + D-Right is held should be 0903C4B4 00000021 according to that gecko code making link.
Logged

Quote from:  Leigh Rogers
Braid
This is art because the music is classical music, and the graphics are done with a pen. The story is something about a woman. I could not understand much of this to be honest, which makes it even more likely to be an art.
Chain
Regular Guay

Posts: 42



Email
« Reply #7 on: January 06, 2015, 04:45:12 pm »

Okay well I tried the entrance value and save warp entrance value codes and they didn't do anything Sad on the plus side the map selection code worked! The map selection code does not work on my rom though (I guess because it's 1.0)

 I also tried your button conditional code and it would crash before the game was even booted. The code I've been using is:

289F6A88 0000XXXX

I got the first two digits from http://geckocodes.org/index.php?arsenal=2
Logged
mzxrules
Admin
Ultimate Mega Guay

Posts: 901


Wrong warp expert


« Reply #8 on: January 06, 2015, 05:44:12 pm »

The code types on the smash board are different than the ones for the wii then. Looks like there's no 8 bit conditional codes, which kind of sucks.

Instead
0903C4B4 00000021

should be
2903C4B4 00002100

The numbers are different because it's checking the input codes for an N64 controller. This is what the other controller types should be mapping to.

I'm not surprised that the save warp value one doesn't work to well, but I feel like the 8011AC82 should work. Its a 2 byte value rather than a 1 byte one. If you have it set so that it's always on and writing just one byte then you should be able to observe oddities when walking around eventually.
Logged

Quote from:  Leigh Rogers
Braid
This is art because the music is classical music, and the graphics are done with a pen. The story is something about a woman. I could not understand much of this to be honest, which makes it even more likely to be an art.
Chain
Regular Guay

Posts: 42



Email
« Reply #9 on: January 06, 2015, 06:36:16 pm »

Well the game no longer crashes now but the button conditional still doesn't work ): it works if I set the values all to 0 so that no input is required but as soon as I set the input to some value it stops working. I've tried putting the values as:

000000XX and 0000XX00 and neither seems to work.

As for the entrance value code I didn't test it thoroughly so their may have been some oddities if I explored more but I went through a few loading zones with nothing weird.
Logged
gymnast86
Regular Guay

Posts: 52



Email
« Reply #10 on: January 07, 2015, 10:24:03 pm »

This is unrelated, but I would like to use these codes for practice. However my Gecko program does not have a "launch channel" option. I only have Launch Game which loads whatever disc is in my Wii and I'd like to know if there's a different type/version of gecko that has the launch channel option, because I can't find one anywhere.
Logged
Chain
Regular Guay

Posts: 42



Email
« Reply #11 on: January 08, 2015, 10:48:15 am »

This is a tutorial on how to get gecko with launch channel (probably not the best tutorial but the first I found):
https://www.youtube.com/watch?v=2O_8s5SE6Pw

There's no need to mess around with options in gecko like he does though, once you put the gct file in the codes folder in your sd card and launch channel it should boot the codes automatically.
Logged
scaramanga
Regular Guay

Posts: 42



Email
« Reply #12 on: January 12, 2015, 06:11:48 pm »

This is unrelated, but I would like to use these codes for practice. However my Gecko program does not have a "launch channel" option. I only have Launch Game which loads whatever disc is in my Wii and I'd like to know if there's a different type/version of gecko that has the launch channel option, because I can't find one anywhere.

I had the same problem. To solve it, you have to patch IOS36 with the Simple IOS Patcher. Afterwards the options 'Launch channel' and 'Launch Rebooter' should show up.

By the way, has anyone got this to work with USB Loader GX? I don't want to use my crappy SD card...
« Last Edit: January 12, 2015, 06:45:50 pm by scaramanga » Logged
Saltor
Deku Scrub

Posts: 10


Email
« Reply #13 on: January 14, 2015, 08:16:01 am »

I had the same problem. To solve it, you have to patch IOS36 with the Simple IOS Patcher. Afterwards the options 'Launch channel' and 'Launch Rebooter' should show up.

By the way, has anyone got this to work with USB Loader GX? I don't want to use my crappy SD card...

When I ran the program, it complained that it couldn't find the patched ios to install. My wii isn't hooked up to the internet, so I couldn't download it directly.
Instead, I had to download the ios on my pc and then load it onto my sd card before running the installer.

I got the ios from here (it's called ios36-64-v3351.wad): http://det1re.de/d/index.php?dir=wads/&sort=date&order=desc
Logged
nighthawkraven18
Regular Guay

Posts: 23


« Reply #14 on: January 17, 2015, 04:43:36 am »

so i downloaded the files and put them in codes and when i boot the channel it says "codes found, applying" but when i get in game the codes doont work? i feel like im doing something wrong. im on a jp 1.2 wad, so it should work
Edit: well after 3 hours i found out i was on the wrong hook type, i can finally start practicing  Grin
« Last Edit: January 17, 2015, 08:45:12 am by nighthawkraven18 » Logged
Pages: [1] 2 3 ... 7
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!