Jump to content

Starting Position Editing


BlackRose
 Share

Recommended Posts

Ok guys, i just wanted to share a little progress I've had in changing the scene/map in which Link starts the game when selecting a new file from the menu. All of this was accomplished due to the help of Deathbasket and Jason777 especially, and i give them credit for some of the data that will be listed in this post.

 

So let's start at the beginning, the way in which the game opens is just an entry in the exit table. There's nothing super complicated that tells the game how to begin, it's just another exit!

 

To find the data that needs to be changed:

 

1. Open up your debug rom in a hex editor

2. Go to the offset 0xB9F64C in the ROM (click Address, then Goto... if you're using XVI32)

3. This will take you to the Link's House data in the exit table. (where i found what offset to go to is located at this link: http://wiki.spinout1...%28alternate%29 but I will explain more on that soon)

4. The data here is set up like this:

 

AA BB CC DD

 

AA = scene number (00 through 6D)

BB = Entrance number (you can find these by looking at the scene files)

CC = Variable

DD = Fade

 

Thanks to Jason777 for this data^

 

5. There will be a total of 6 groupings in that format under Link's House. You're going to want to go to the last one, which is... 34 00 48 10 <-- These are the values that trigger the cutscene when the game begins.

6. So, it's just about as simple as you may think from here: All you have to do is change those values to the desired location where you want to begin the game. Let's have an example here:

 

Ok, so I wanna make the game start off in Hyrule Field. First thing I'm going to do is head to offset 0xB9F64C and to the values 34 00 48 10. First I want to change the scene number to match that of Hyrule Field. A scene listing can be found here, but note that all of those number ARE NOT in hexadecimal, and need to be converted via hex calculator before entering into the hex editor. To make it easier on everyone, i will post a list of scenes already in hexadecimal form so you do not have to go converting yourself http://core.the-gcn.com/public/style_emoticons/default/thumbsup.gif.

 

So anyways, Hyrule Field is listed under 081 which in hex would be 51, so you're going to enter 51 in place of the 34 in your hex editor. Next is for the entrance number, (entrance numbers, variables, and fade values can all be found at this link, but its a bit crowded so be careful to obtain accurate data. You shouldn't have to use the ROM Address column and the Exit column) There are 14 different entries in the exit table for Hyrule Field, so for simplicity's sake, let's just choose the first one. The entrance number is 00, so enter that value in the hex editor (should be the same as before). Last are the variable and the fade value which can be found right next to the entrance number. For this first entry, the variable is 41 and the fade value is 83, so go ahead and enter those values into the hex editor.

 

So, what used to be entry 34 00 48 10, should now be 51 00 41 83. Go ahead and save your changes and load up the ROM in an emulator. Create a new savestate and there you go, It should load up the Hyrule Field cutscene where Zelda throws the Ocarina of Time from the horse into the water for link!

 

Now for the lists. Here is my converted scene listing so that all numbers are already in hexadecimal:

# Name

- 00 Deku Tree

- 01 Dondogo's Cavern

- 02 JabuJabu's Belly

- 03 Forest Temple

- 04 Fire Temple

- 05 Water Temple

- 06 Spirit Temple

- 07 Shadow Temple

- 08 Below the Well

- 09 Ice Cavern

- 0A Ganon's Tower (Second Part)

- 0B Gerudo Training Grounds

- 0C Thieves' Hideout

- 0D Ganon's Tower

- 0E Ganon's Tower (Floor beneath boss chamber)

- 0F Ganon's Tower Crumbling (Exit)

- 10 Ganon's Tower Crumbling (Exit)

- 11 Deku Tree Boss

- 12 Dondogo Cavern Boss

- 13 JabuJabu's Belly Boss

- 14 Forest Temple Boss

- 15 Fire Temple Boss

- 16 Water Temple Boss

- 17 Spirit Temple Middle Boss

- 18 Shadow Temple Boss

- 19 Second-To-Last Boss Ganondorf

- 1A Ganondorf, Death Scene

- 1B Market Entrance (Day)

- 1C Market Entrance (Night)

- 1D Market Entrance (Adult)

- 1E Back Alley (Day)

- 1F Back Alley (Night)

- 20 Market (Day)

- 21 Market (Night)

- 22 Market (Adult)

- 23 Temple of Time (Outside - Day)

- 24 Temple of Time (Outside - Night)

- 25 Temple of Time (Outside - Adult)

- 26 Know-it-all Brothers

- 27 House of Twins

- 28 Mido's House

- 29 Saria's House

- 2A Kakariko Village House

- 2B Back Alley Village House

- 2C Kakariko Bazaar

- 2D Kokiri Shop

- 2E Goron Shop

- 2F Zora Shop

- 30 Kakariko Potion Shop

- 31 Market Potion Shop

- 32 Bombchu Shop

- 33 Happy Mask Shop

- 34 Link's House

- 35 Puppy Woman's house in market

- 36 Stables

- 37 Impa's House

- 38 Lake Hylia Labatory.

- 39 Carpenter's Tent

- 3A Dampe's Hut

- 3B Great Fairy Fountain

- 3C Small Fairy Fountain

- 3D Magic Fairy Fountain

- 3E Grottos

- 3F Grave (1)

- 40 Grave (2)

- 41 Royal Family's Tomb

- 42 Shooting Gallery

- 43 Temple of Time Inside

- 44 Chamber of Sages

- 45 Castle Courtyard (Day)

- 46 Castle Courtyard (Night)

- 47 Cutscene Map

- 48 Dampe's Grave

- 49 Fishing Pond

- 4A Zelda's Courtyard

- 4B Bowling Alley

- 4C Talon's House

- 4D Lots'o Pots

- 4E Granny's Potion Shop

- 4F Final Battle against Ganon

- 50 Skulltula House

- 51 Hyrule Field

- 52 Kakariko Village

- 53 Graveyard

- 54 Zora River

- 55 Kokiri Forest

- 56 Sacred Forest Meadow

- 57 Lake Hylia

- 58 Zora's Domain

- 59 Zora's Fountain

- 5A Gerudo Valley

- 5B Lost Woods

- 5C Desert Collusus

- 5D Gerudo's Fortress

- 5E Haunted Wasteland

- 5F Hyrule Castle

- 60 Death Mountain

- 61 Death Mountain Crater

- 62 Goron City

- 63 Lon Lon Ranch

- 64 Ganon's Tower (Outside)

- 65 Collison Testing Arena

- 66 Beshitu

- 67 Depth Test

- 68 Stalfos Middle Room

- 69 Stalfos Boss Room

- 6A Dark Link Testing Area

- 6B Beta Castle Courtyard

- 6C Action Testing Room

- 6D Item Testing Room

 

Ok, so for a couple extra notes:

I have not tested this TOO instensely, so forgive me if I am mistaken with any of the data. I noticed that some changes do not work that well, for example:

1. When trying to use the Water Temple or Inside the Great Deku Tree, the music plays but theres some kind of obstruction on the screen and link seems to fall endlessly. (Maybe starting in dungeons does not work?)

2. I entered the values in for what should've loaded Gerudo Valley, and the game loaded up the triforce cutscene that ends with Link obtaining the kokiri spiritual stone.

 

I will continue to test, but anyone feel free to document some stuff on this or see if the messed up starts (in dungeons, etc.) can be fixed. Once again any of this data above that was found on the wiki or on other forums is credited to the original founders. Thanks!

Link to comment
Share on other sites

I will continue to test, but anyone feel free to document some stuff on this or see if the messed up starts (in dungeons, etc.) can be fixed.

That's because it tries to load cutscene 1 in any area you give it.

 

When you create a file the game writes the cutscene number of the first map that has to be loaded to that file's data. That number is at 0xB2046A in ROM (0xFFF1 - cutscene 1) so by changing it you can start with any cutscene. iirc 0xFFEC, 0x0000 or 0x0800 are the values the game uses when no cutscene should be loaded.

Keep in mind that you have to create a new file each time you change that number or it will not be written to the file's data.

Link to comment
Share on other sites

 

That's because it tries to load cutscene 1 in any area you give it.

 

When you create a file the game writes the cutscene number of the first map that has to be loaded to that file's data. That number is at 0xB2046A in ROM (0xFFF1 - cutscene 1) so by changing it you can start with any cutscene. iirc 0xFFEC, 0x0000 or 0x0800 are the values the game uses when no cutscene should be loaded.

Keep in mind that you have to create a new file each time you change that number or it will not be written to the file's data.

 

Hmmm... ok, so go to 0xB2046A in the ROM and change 0xFFF1 to a different cutscene? Sounds simple enough. Is there anywhere that lists the offsets of different cutscenes that it can be replaced with? I'll test this out, and add it to the first post when its figured out, and credit you for this new data, Death.

Link to comment
Share on other sites

It's basically 0xFFFx where x would be the cutscene number from the map select. There's no master list as they are map/scene-specific. If it's a higher number than the number of cutscenes the map/scene has then it'll either crash or load a different scene because there's no entry in the exit table for the cutscene you're trying to load.

Example:

 

 

 

040F Child: Day : Entrance 00 : 0011 Deku Tree Boss

0410 Child: Night : Entrance 00 : 0011 Deku Tree Boss

0411 Adult: Day : Entrance 00 : 0011 Deku Tree Boss

0412 Adult: Night : Entrance 00 : 0011 Deku Tree Boss

 

0413 Child: Day : Entrance 00 : 0018 Shadow Temple Boss

0414 Child: Night : Entrance 00 : 0018 Shadow Temple Boss

0415 Adult: Day : Entrance 00 : 0018 Shadow Temple Boss

0416 Adult: Night : Entrance 00 : 0018 Shadow Temple Boss

 

If you tried to load cutscene 0 in the Deku Tree's boss room (which has no cutscenes) the game would load the Shadow Temple boss room instead because that's the next thing in the exit table. Interestingly this also happens if no cutscene is being loaded but the game was left in cutscene mode.

Link to comment
Share on other sites

It's basically 0xFFFx where x would be the cutscene number from the map select. There's no master list as they are map/scene-specific. If it's a higher number than the number of cutscenes the map/scene has then it'll either crash or load a different scene because there's no entry in the exit table for the cutscene you're trying to load.

Example:

 

 

 

 

 

If you tried to load cutscene 0 in the Deku Tree's boss room (which has no cutscenes) the game would load the Shadow Temple boss room instead because that's the next thing in the exit table. Interestingly this also happens if no cutscene is being loaded but the game was left in cutscene mode.

 

Hmm.. ok i see. Well I'll do some tinkering ASAP and post my results up in the first post^

 

EDIT:

 

Ok, I believe I've come up with something that would allow you to start the game ANYWHERE. (Note all of this was accomplished with credit to Deathbasket's data from above^):

 

So, first thing you would do would be to go to 0xB2046A in the ROM. This is where the game writes the cutscene number of the first map when you create a new file. It should be 0xFFF1, where 1 is the number of the cutscene. If you change this value to 0xFFEC, it tells the game not to load a cutscene when beginning the game. So when this is done, when you load a new file, you begin the game in Link's House through exit 00BB.

 

00BB Child: Day : Entrance 00 : 0034 Link's House

00BC Child: Night : Entrance 00 : 0034 Link's House

00BD Adult: Day : Entrance 00 : 0034 Link's House

00BE Adult: Night : Entrance 00 : 0034 Link's House

00BF Cutscene 0 : Entrance 00 : 0034 Link's House

00C0 Cutscene 1 : Entrance 00 : 0034 Link's House

 

Exit 00BB in Link's House is the first entry when you go to 0xB9F64C in the exit table, as seen here:

 

0x00B9F64C : 00BB : 0x00 : 0x42 : 0x04 : Link's House

0x00B9F650 : 00BC : 0x00 : 0x42 : 0x04 : Link's House

0x00B9F654 : 00BD : 0x00 : 0x42 : 0x04 : Link's House

0x00B9F658 : 00BE : 0x00 : 0x42 : 0x04 : Link's House

0x00B9F65C : 00BF : 0x00 : 0x42 : 0x02 : Link's House

0x00B9F660 : 00C0 : 0x00 : 0x48 : 0x10 : Link's House

 

So when you go to it in hex it will look like this. 34 00 42 04

 

So now essentially, all you have to do is change this entry to new data using the method I explained in the first post, and you will start in any map you want to in the game. For example, if you enter 51 00 41 83, you will begin the game in Hyrule Field. This will start you right outside of the market. With the data listed here, you are able to enter the variable and the fade value, but every entrance is listed as 0x00. So to change where you would start in Hyrule Field, you would go to this list, find the entries for Hyrule Field, and look at where it says "Entrance" and enter that in the entrance number. So as another example, if you set it as 51 0E 41 83, the game would start with link coming up from the water after running down the river from Zora's River.

 

Alright,sorry for any rambling above, I was figuring this out as I was posting this reply http://core.the-gcn.com/public/style_emoticons/default/thumbsup.gif But now that I have got it figured out, I'm going to post a tutorial using all this information to make it more understandable. Thanks to anyone who helped figure this stuff out, expect to see the tutorial soon!

 

EDIT 2:

 

I just realized that there is one other thing I have overlooked. Using the method I just used, you can start out in any scene/map in the game, from any entrance. BUT, there's the variable of time. Does anyone have a clue of how you would go about changing the time of day (day or night), as well as whether its the past or future in this method? All I can see is that it's affected by the four digit exit number, but im not sure how that is changed through the exit table?

Link to comment
Share on other sites

 Share

×
×
  • Create New...

Important Information

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