ZSR Forums
December 03, 2024, 07:42:46 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 [4] 5 6 7
  Print  
Author Topic: Gecko codes for efficient VC practice (updated 07/03/15)  (Read 110346 times)
Chain
Regular Guay

Posts: 42



Email
« Reply #45 on: May 25, 2015, 07:48:42 PM »

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 Edit: May 25, 2015, 07:50:14 PM by Chain » Logged
scaramanga
Regular Guay

Posts: 42



Email
« Reply #46 on: May 25, 2015, 08:17:00 PM »

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).
Logged
Chain
Regular Guay

Posts: 42



Email
« Reply #47 on: May 25, 2015, 11:55:49 PM »

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 Edit: May 25, 2015, 11:59:04 PM by Chain » Logged
Jimmie1717
Deku Scrub

Posts: 18


« Reply #48 on: May 28, 2015, 01:25:46 AM »

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 Edit: May 28, 2015, 03:42:41 AM by Jimmie1717 » Logged
BasedKingPotato
Deku Scrub

Posts: 10


Someday Speedrunner


« Reply #49 on: May 28, 2015, 12:17:47 PM »

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.
Logged
Chain
Regular Guay

Posts: 42



Email
« Reply #50 on: May 28, 2015, 02:08:35 PM »

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 Smiley

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.
Logged
Jimmie1717
Deku Scrub

Posts: 18


« Reply #51 on: May 28, 2015, 03:50:14 PM »

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.
Logged
BasedKingPotato
Deku Scrub

Posts: 10


Someday Speedrunner


« Reply #52 on: May 29, 2015, 10:42:35 AM »

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! Grin
« Last Edit: May 29, 2015, 10:44:35 AM by BasedKingPotato » Logged
Chain
Regular Guay

Posts: 42



Email
« Reply #53 on: May 30, 2015, 08:14:26 AM »

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 (:
Logged
BasedKingPotato
Deku Scrub

Posts: 10


Someday Speedrunner


« Reply #54 on: May 30, 2015, 04:05:10 PM »

Good to know I have until Christmas to figure this all out
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 Edit: May 31, 2015, 03:36:18 AM by BasedKingPotato » Logged
mzxrules
Admin
Ultimate Mega Guay

Posts: 901


Wrong warp expert


« Reply #55 on: June 08, 2015, 12:56:22 AM »

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
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.
tenacioustomo
Deku Scrub

Posts: 6


« Reply #56 on: June 25, 2015, 02:55:21 PM »

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...
Logged
scaramanga
Regular Guay

Posts: 42



Email
« Reply #57 on: June 25, 2015, 03:00:18 PM »

Did you rename the GCT file? This message indicates that the file is not in the right place on your SD card.
Logged
tenacioustomo
Deku Scrub

Posts: 6


« Reply #58 on: June 25, 2015, 05:00:41 PM »

I didnt rename them at all, was i supposed to?
Logged
scaramanga
Regular Guay

Posts: 42



Email
« Reply #59 on: June 25, 2015, 05:06:21 PM »

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.
Logged
Pages: 1 2 3 [4] 5 6 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!