Jump to content
  • 0

Multiple Exits


wakymaky666
 Share

Question

I cant seem to find any topic on this and im shore that other people want to know how to do this.

 

What i need to know is how to have more then one exit in the same room so when i leave (exit 1) to a new area and go back, link spawns by exit 1 and when link leaves (exit 2) to a different area and goes back he should spawn by exit 2 but i can only seem to get just one spawn point working and allways spawns by exit 1... 

 

VRDbrGs.png?1

 

 

  • Like 1
Link to comment
Share on other sites

18 answers to this question

Recommended Posts

  • 0

Damn, I can remember writing that years ago... It works, but I would definitely recommend avoiding using UoT and Obj2Area (SceneNavi and SharpOcarina can accomplish what is needed for this). That being said, you shouldn't follow all of the steps of the tutorial -- just look at information pertaining to start positions, entrance index, and exit lists in the scene. Also, don't forget to modify the exit lists of the scenes that your custom map leads to so that they lead back correctly. You also need to modify the exit table, I believe. 

 

All in all, the tutorial is a good reference for figuring out how to do most things manually and/or how to read raw data from the ROM.

Link to comment
Share on other sites

  • 0

I still can't figure this out. Damn i didn't think that exits were this complicated until i made 3 worlds and cant connect them... any small tips on how to do this.

or is there a program that can simply do this. if not, then just how to find the exits and edit them in hex to an imported map through Sharp Ocarina... Im guessing i have to in hex goto one of these points 02D00000 or 035CF000 (ex. demo scene from SO) and find something there but i have no idea were. And thanks Jason for the reply.

Link to comment
Share on other sites

  • 0

Okay, in SharpOcarina, there's an exit list on the collision and exits tab. Find the map(s) that you want to link up to in this list and put the index number into that listbox. Here's an example.

 

0191 52 01 41 83 Kakariko Village From Death Mountain Trail 0192 52 01 41 02 Kakariko Village From Death Mountain Trail 0193 52 01 41 83 Kakariko Village From Death Mountain Trail 0194 52 01 41 02 Kakariko Village From Death Mountain Trail 0195 52 02 41 83 Kakariko Village From Graveyard 0196 52 02 41 02 Kakariko Village From Graveyard 0197 52 02 41 83 Kakariko Village From Graveyard 0198 52 02 41 02 Kakariko Village From Graveyard

That first value is the number you'd use for your exit list. That's the index of the entry in THIS table. The second number is the index of Kakariko Village's scene in the scene table. You only need to worry about that if you're editing the entrance table itself. The third value again is only one you need to worry about if you're editing the entrance table, it's the value used to determine which of the 'Link' objects Link will spawn at when the map is loaded. The next column is the variable, in these entries it's 41, which is more or less the 'default'. Lastly, there's the 'transition' byte. This is usually 02 for most, but is alternating here because Kakariko has different setups for day and night.

 

Now, there's 4 entries for each possible 'state' Link can be in when entering a map, Kid Day, Kid Night, Adult Day, Adult Night. Generally you use the first entry, Kid Day, in the exit list, and the game does a bit of math to determine if the others should be used. If the map you're overwriting has all the entry points you need, all you need to do is find the correct entry in this index and use it. If not, you'll need to add new entries. You'd do that by finding another one that you're not using, and change (usually just) the second and third values in the list. Make sure you do all 4 variations, too.

 

 

When it comes to positioning your 'Link' actors as entry points, you'll need to make sure of a couple of things. Firstly, the variable needs to be correct if you have more than one room. The variable is pretty straightforward, xFFF with x being the index of the room the entry point is in, starting from 0. In your screenshot, the entry point in room 0 would need to have a variable of 0FFF, and the one in room 1 would need to be 1FFF. This ensures the correct room loads when Link is spawned. When referencing those entry points, they're just entry points 00 and 01 of whatever scene index you overwrite for the map.

  • Like 1
Link to comment
Share on other sites

  • 0

Just cant seem to see the picture. Ive tried messing about a few different ways... here is a small rar file link that what i have set up in SharpOcarina: https://www.mediafire.com/?ev13bdvysm9vcsv

 

This has three scene setups for Sharp, the obj files and there textures... its a crapy looking map, im just using it to work the exits out..

 

If someone can have a look and see whats wrong there or if someone edit the scene files in sharp to work the exits correctly then pass them over so i can get a look at what i have to do. It would be easyer to just download and edit my scenes and pass them back to me so you dont have to explain everything but just say the few things i did wrong.

 

I will try and explain what ive done but my brain is just mush right now.

in my scene kakariko, im using this as the base scene with two exits. (one red carpet, one blue carpet) determines the points i should spawn from. The two spawn points in this scene are 0FFF and 1FFF

 

Red Carpet - exit to graveyard

00E4 53 00 41 83 Kakariko Graveyard From Kakariko Village

Blue carpet - exit to deathmountain

013D 60 00 41 83 Death Mountain Trail From Kakariko Village

 

The graveyard scene has one exit to lead back to kakariko scene with a red carpet

graveyard to kakarikos exit - 

0195 52 02 41 83 Kakariko Village From Graveyard

 

The death mounain scene has one exit to lead back to kakariko scene with a blue carpet

death mountain to kakariko exit - 

0191 52 01 41 83 Kakariko Village From Death Mountain Trail

 

when i leave death mountain scene to kakariko i still spawn on 0FFF (next to the red carpet) and not 1FFF (next to the blue carpet).

Link to comment
Share on other sites

  • 0

Okay, first of all, there's no need to add the 1 to the second spawn point, since both are on map 0. You'd only need to do that if it were on map 1.

 

Secondly, I'm not sure what's causing the problem. It's very odd. You might have better luck with a different map, maybe Kokiri Forest.

Link to comment
Share on other sites

  • 0

So im on the right track. Thats good to know. il keep on trying different maps and see if i cant get this thing to work.

 

I think i need to make my maps according to the exit list its self, could be that i need to start from the deku tree (exit 0000) thats first on the list to the next one that's Dondogo's Cavern trail (exit 0004) and so on... if i work this out i will write a full tutorial how to set up the scene and manage exits correctly for moder like me.. i know there's info on this but there isnt much that explains this step by step... thanks Arcaith for helping out.

Link to comment
Share on other sites

  • 0

I think I'm experiencing the same problem using Hylian Toolbox. The only time, though, I got my maps to work was when I used a flat square plane for both maps, and

had only 1 actor.  Even with the same numeric values my complex maps don't load. works fine individually. transitioning though... nope.

Link to comment
Share on other sites

  • 0

obligatory "use http://oot.cloudmodding.com/wiki/ since I'm still updating that wiki"

 

Linking scenes is not an easy process because it's a multi-step process.

 

The best way to think of it is to completely separate entering (or spawning) with exiting. Focus on defining the spawns first, then set up the exits.

 

Spawning begins with the Entrance Table. This table defines the bare minimum info for defining spawn: a scene number (first column), and a spawn number (second column). The spawn number is just an identifier to a spawn that will be defined by the scene file. In case you need to edit the data, know that for every spawn you MUST have a minimum of 4 sequential records in the entrance table set up the way you want, one for all 4 day/night, child/adult combinations.

 

The next phase is defining these spawns in the scene file itself. That's where the scene header comes in.

 

The 0x06 (Entrance List) command pairs Link spawns (0x00 command) with room numbers. The spawn number (second column) value from the Entrance Table is used as an index into this list.

 

The last component to spawning is the actual Link spawn, which is just like spawning any other actor. Actor List (Variables) shows all the different variables used for spawning Link.

 

 

Exits simply link to spawns.

 

The collision mesh contains polygon types that when passed over cause a "new" scene to load. These polys store an index meant to reference the scene setup's exit list (0x13 command). The values in the exit list are indexes to the entrance table. The Entrace Table page I linked covers more of the complexities to this.

Link to comment
Share on other sites

  • 0

ok my scene is set up with a custom map set in kokiri forest ( 0288D000 - 0289E240 085 ) and room ( 0289F000 ). theres one exit to deku tree ( 0000 ) when exiting the deku tree it needs to be linked up with the #2 spawn in my kokiri custom map "dont know if it makes a difference but its variable is 1FFF" i open my rom up in HxD hex and goto the values 0288D000 and 0289F000 scenes and rooms and look for...

(some reason the images wont show just click on them links to see them.)

 

http://imgur.com/ogkYobx

 

and the deku tree ( scene 01FC2000-01FCFA20 room 01FD0000 ) 

 

http://imgur.com/4qTY57J

 

can you tell me what i need to edit in order to get an exit from the deku tree to line up with kokiri forest #2 spawn its variable is 1FFF..

 

I think im on the right track here but i dont know what number to edit next to the 0x00, 0x06 comands.. thand thanks for that post MZXRULES but im still a little lost in this.

I bet its painful trying to explain something this easy for you lot and i still see it being so complicated.. i stopped modding ages ago because of this issue but this time im going to keep at it till i figguier this thing out.

Link to comment
Share on other sites

  • 0

I wrote nearly an entire guide on how to do this, then i triggered the back page shortcut key and lost everything because these board fucking suck.

 

Your images aren't showing up because you're not copying the direct link url.

 

You don't need to set Link's actor variable differently. What you're doing is changing the animation Link uses when spawning.

 

Looking at your Deku Tree image, you don't seem to understand how to read the scene header.

 

3EladF0.png

 

You want to start by editing the data referenced by the 06 command as this sets up what room is loaded when you spawn. The 06 command's data is located at 0200 0198, which means offset 0198 in the currently loaded scene (which would be this file), or address 288 D198. At that address, the spawn/room data should be set to 00 00  01 00, for: 

 

spawn 00, room 00 (first spawn)

spawn 01, room 00 (second spawn)

 

This will set up where the entrance table will spawn you. If you haven't modified the entrance table at all:

 

entrance index 00EE will reference scene 85, entrance 0 -> spawn 00, room 00 (first spawn)

entrance index 0209 will reference scene 85, entrance 1 -> spawn 01, room 00 (second spawn)

 

With the spawn defined, you simply move on to the Deku Tree scene, and modify the data referenced by the exit list command (0x13). The bank offset for the data referenced by the 0x13 command is 0200 01A4, or 1FC21A4 rom. There you simply replace the first value with 0209, and assuming it's not modified, you will end up at your second spawn when leaving the Deku Tree.

 

 

Importantly though, this does not explain fully how to create custom exits.

 

Exits are part of the collision mesh. The way the collision mesh works in oot is you have a mesh of polygons, and a table of "surfaces" that can be assigned to those polygons. These surfaces can be set so that they behave like an exit. As an exit, the surface stores a number between 0 and 15 (actually could be higher, don't know though) that is used to match with the exit list defined by the 0x13 command.

Link to comment
Share on other sites

  • 0

hahahha you the man mzxrules worked first time...  :lol: thats were i was failing at this i didnt know how to read the scene header.. i get it now the 0600 0000 0200 (0198) is where i have to go to and edit on the line 288D198.. il make a user noob friendly video tut on this now i understand it and post it up on youtube for people like me who dont get it the same way i did when i get some free time.. once again thanks to all of you for helping me on this.. Now its time to do some serious modding. ;)

Link to comment
Share on other sites

  • 0

yes that is true.  i'm just trying to grasp/comprehend all this information...it has me still quite baffled to be honest.

 

like how you said to think of it in a multi-step process...here i was just thinking i just need to make exits and voila it should work.

 

or how to even read a scene header.

 

does the same hold true w/ custom offset numbers? err.. if i'm overwriting a scene with a new unused scene like lets say i write 35D0000 over scene 85 kokiri? 288D000... the offset 288D000 still would exist? but why if i'm writing it over?

and why does it crash if insert a custom map using an already in game offset number, rather than one that is empty?

 

sorry for dribbling off

 

do i still use the exit spawn values in the scene i'm replacing??

i'm confusing myself

 

 

how did you manage to learn and understand this...to even dissect and navigate through all this?????

Link to comment
Share on other sites

  • 0

By reading the Scene/Room header page, writing a program that can parse the data in scene/room headers, and thinking about how the bits and pieces come together as a whole. Actually, that page is what got me into more serious hacking, since I used it to help me figure out how the "Wrong Warp" glitch really worked.

 

does the same hold true w/ custom offset numbers? err.. if i'm overwriting a new unused scene with a new offset over one already in game...

do i still use the exit spawn values in the scene i'm replacing??

I don't understand what you're asking.

Link to comment
Share on other sites

 Share

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.