Jump to content

Beta Castle Courtyard Fixed Properly


Zeth Ryder
 Share

Recommended Posts

Something that has plagued us since the days of old when we first got the rom was that the beta courtyard had huge graphical errors. This is mainly cause the map is animated and a lot of the animating functions have changed just a bit. So for a total of 20 bytes you can also play the beta courtyard map ingame! :D

 

VIDEO:

 

 

PATCH:

Download PPF Patch

  • Like 3
Link to comment
Share on other sites

Is this JSA's fix or did you optimize it a little bit?

 

EDIT: Nevermind, I read th glitchkill topic :P

 

You can ask Naxy, I screenshared with him the whole time as I started from the beginning figuring it out and worked on this on my own. I however did try JSA's fix afterwards while it gets the map to animate mostly correctly, the fountain is too slow and glitches, which there is nothing that can be done due to the hard coded offset that is needed to get it load properly(aka loading it via the offset castle courtyard in the scenetable). Though it seems he did a few things in the scene that -really- didn't need to be done either cause it didn't effect how the map ran and what I did was allowed us to have it animated properly, give us a proper camera angle and of course its actually ingame now.
Link to comment
Share on other sites

You can ask Naxy, I screenshared with him the whole time as I started from the beginning figuring it out and worked on this on my own. I however did try JSA's fix afterwards while it gets the map to animate mostly correctly, the fountain is too slow and glitches, which there is nothing that can be done due to the hard coded offset that is needed to get it load properly(aka loading it via the offset castle courtyard in the scenetable). Though it seems he did a few things in the scene that -really- didn't need to be done either cause it didn't effect how the map ran and what I did was allowed us to have it animated properly, give us a proper camera angle and of course its actually ingame now.

 

I don't *think* I did do anything extra, but I may have.

 

If I recall, I removed 2 sets of display listings which cause the crash. I didn't just remove them out though, I moved the entries down to the end of the list, and reduced the number of entries by two, so they wouldn't load. I did it that way so if someone, someday took a look at my fix, and knew how to correct the error(s) in the glitched entries, they could.

 

20 bytes? Very efficient! How's it work?

Link to comment
Share on other sites

I don't *think* I did do anything extra, but I may have.

 

If I recall, I removed 2 sets of display listings which cause the crash. I didn't just remove them out though, I moved the entries down to the end of the list, and reduced the number of entries by two, so they wouldn't load. I did it that way so if someone, someday took a look at my fix, and knew how to correct the error(s) in the glitched entries, they could.

 

20 bytes? Very efficient! How's it work?

 

In the map, change every DE command's values, example DE00 0000 0X00 0000, they all needed to be change to the value 8 for X, except the last one which needs to be value 9(aka for the fountain to run at proper speed), the scene needs to be loaded up in the scenetable where the final game's courtyard is to run correctly. Its part of something hardcoded needed to run that 09 for animating that fountain correctly.(I racked my brain for a while thinking it was in the scene and its not, suddenly it worked when loaded from the final game's scene offset) For the one in the patch, I loaded the map via the final game's scene to give the camera view and exits, the collision is exactly the same. If anyone wanted to just see the map and didn't care about the animating of textures, go to 0xBA141D in the Debug rom and change the value from 23 to 00. That will null out the animation for textures and cause the map to load properly with no graphical errors.
Link to comment
Share on other sites

... the scene needs to be loaded up in the scenetable where the final game's courtyard is to run correctly. Its part of something hardcoded needed to run that 09 for animating that fountain correctly. ...

 

This is because the scene number is used as an index to get the pointer to the code that handles changing/animating the textures. I can't remember where these are but changing that pointer would have the textures animate properly without having to replace the other scene.

Link to comment
Share on other sites

This is because the scene number is used as an index to get the pointer to the code that handles changing/animating the textures. I can't remember where these are but changing that pointer would have the textures animate properly without having to replace the other scene.

 

The weird thing is, both the final and beta castle courtyard map share the same animation index number(0023) in the scenetable yet it doesn't have all the required [functions?] to properly handle the courtyards animation via that scene location. Any help pointing me to that area would give me an idea where I can start understanding this a bit more too.
Link to comment
Share on other sites

All of this talk of an animation index for scenes and scene-specific animation speeds for particular banks is interesting. If it is not any trouble, may I have some more details on this stuff?

 

As far as I know, somewhere in the map determines how animated textures flow(Like direction), which I still haven't located yet, however those are also accompanied in each Dlist by a DE command, DE00 0000 0X00 0000. X's values that I have seen OOT use are:
  • 03 - Seems to be a jump to display list at a certain offset
  • 06 - Same as above but for objects(zobjs)
  • 08 - The basic animating texture function, usually used mostly for like animating water like in lakes or other things, also is used in npcs to animate eyes
  • 09 - Was used to animate the fountain, perhaps used for complicated versions of animation and flowing of textures?
  • 0A - Unknown
  • 0B - Unknown
  • 0C - This one doesn't cause texture animation but seems to allow RGBA colouring that is controlled by actors or scenes to be applied to the displaylist.
In the Scene table, Every scene entry is set up like this: xxxxxxxx yyyyyyyy aaaaaaaa bbbbbbbb qqrr sstt
  • X = Scene beginning offset
  • Y = Scene ending offset
  • A = Location text beginning offset
  • B = Location text ending offset
  • Q = unknown currently
  • R = Animation index and camera effects
  • S = Determines if the map is a dungeon and allows dungeon objects to load properly (like the spirit temple doors)
  • T = unknown currently
That's about as much information as I have on the animation index and animating textures. Perhaps DB can fill us in on what he has?
Link to comment
Share on other sites

DE000000 xxyyyyyy, where xx is simply the RAM segment in which the called Display List resides. It's not so much that a specific value provides a specific effect, but that the game sets up a specific RAM segment depending on the scene, while the room(s) in it either call DLists in that segment or use it as a source of textures (see ex. Kakariko's windows and a whole lot of stuff in MM). I messed around with this before but I believe I got stuck after the scene table... I had some notes on this, but I doubt they're of any use.

Link to comment
Share on other sites

In the Scene table, Every scene entry is set up like this: xxxxxxxx yyyyyyyy aaaaaaaa bbbbbbbb qqrr sstt

  • Q = unknown currently
  • R = Animation index and camera effects
  • S = Determines if the map is a dungeon and allows dungeon objects to load properly (like the spirit temple doors)
  • T = unknown currently

Hey, I know these! I can help.

 

If memory serves, I can add a little more infoirmation to this. I haven't done this in a LONG time, I'll have to get my old system out.

 

For one thing, aren't they both 4 digits? So, QQQQ and RRRR.

 

If I remember QQQQ sets special textures and blend options. Special textures are referenced in map, but don't appear in either the map or scene. Xdaniel's example above, Kakariko's windows (which change between day and night by the way.) Data for these textures appears just below the scene table. Adding scenes by over writing this data corrupts these special textures.

 

 

It also sets texture blends. Example, Sharp Ocarina uses Hyrule Field's blend texture blend, which won't work on other scene entries unless you copy the QQQQ value from the Hyrule Field scene entry.

 

As for the camera effects, I was unaware of this. Do you mean "frozen camera" scenes like the outside of the temple of time? Wait, or was outside the temple of time a type 1 map(type 0 being vertex colored maps, and type 2 being maps which include normal shading and vertex clipping.), and the shops were the frozen camera....

 

RRRR is Temple textures. Yep temple doors, but other temple objects and maybe temple blocks. But even more textures still! The entrance for each temple is textured with a special texture which isn't in the scene or map, and it loads by the RRRR value. Again, ask Xdaniel. I'm sure he noticed it while making OZMAV.

 

I learned all this *LONG AGO* while trying to port the regular dungeons to the Master Quest ROM. The offset data to the special textures differs from ROM version to ROM version. So you can't even load dungeons from say the 1.0 ROM to the 1.1 ROM without a crash on rooms with special textures.

 

How you put it Zeth put it...Hard coded? Is this what you mean?

 

Beta Bonus: (Proof Fado was never a Sage and the Sage plot goes way back to beta stage of development or older.)

 

I'm dropping this one now while I'm thinking of stuff that never got post to the wiki, and may get "lost" again...

 

2nd Cutscene (or is it third?) Chamber of the Sages contains only 1 actor(but many more groups!), Rauru. It is the cutscene that plays right after the spirit temple *OR* the shadow temple when you have collected all the Medalions. All that happens is Rauru tells you someone is waiting for you in the temple of time, raises his arms, and fade to white.

 

*BUT* It is a very special cutscene because it contains *many* clue to the history of the development of the plot. My favorite being that Saria has always been the forest Sage.

 

Proof? The Scene includes unused groups(objects). Beta saria's group being one of them.

 

Weirder still is the Beta Zora. Yep before Ruto was a sage (and apparently before the Zora's were finished) there was a Zora in the Chamber of sages. The group(object) in that scene for a Zora is so *ANCIET OLD* that it's beyond beta. Alpha, or maybe just a place holder even.

 

Anyways, more later.

Link to comment
Share on other sites

Thanks for finding that, I had no idea where I posted it.

 

The weird thing is, both the final and beta castle courtyard map share the same animation index number(0023) in the scenetable yet it doesn't have all the required [functions?] to properly handle the courtyards animation via that scene location. Any help pointing me to that area would give me an idea where I can start understanding this a bit more too.

 

That seems odd since if it is running the same code then it should produce the same effect? I will have a look at this when I can and see if I can find out why it didn't work properly.

Link to comment
Share on other sites

For one thing, aren't they both 4 digits? So, QQQQ and RRRR. If I remember QQQQ sets special textures and blend options. Special textures are referenced in map, but don't appear in either the map or scene. Xdaniel's example above, Kakariko's windows (which change between day and night by the way.) Data for these textures appears just below the scene table. Adding scenes by over writing this data corrupts these special textures.

 

It also sets texture blends. Example, Sharp Ocarina uses Hyrule Field's blend texture blend, which won't work on other scene entries unless you copy the QQQQ value from the Hyrule Field scene entry.

While I'm not entirely sure if the values go together in 4 digits, however I have not seen anything to do with texture blending, using the Hyrule field scene as an example, which its values after the locations title offset are : 0001 0000; Disabling 01 doesn't effect blending but does disable all animating textures, aka the water in Hyrule field.(I retested it just to make sure, was sharing my screen with sakura at the time so she can confirm it).

 

As for the camera effects, I was unaware of this. Do you mean "frozen camera" scenes like the outside of the temple of time? Wait, or was outside the temple of time a type 1 map(type 0 being vertex colored maps, and type 2 being maps which include normal shading and vertex clipping.), and the shops were the frozen camera....

I don't believe it is the frozen camera used in shops(not 100% for sure), however it does produce effects such as the rumbling shaking effect used in Ganon's castle or the wobbly effect in Lord Jabu Jabu. I made a video of it a long time ago, the camera effects are at 1:15 of the video.

 

I learned all this *LONG AGO* while trying to port the regular dungeons to the Master Quest ROM. The offset data to the special textures differs from ROM version to ROM version. So you can't even load dungeons from say the 1.0 ROM to the 1.1 ROM without a crash on rooms with special textures. How you put it Zeth put it...Hard coded? Is this what you mean?

Actually Sakura ported all of 1.0's dungeons correctly which just fixed only scene, map offsets for each 1.0 version. There was a few small bugs due to a few bugs in Sakura's code for porting which she was fixing before her computer died. But its very possible to port different versions of OOT's maps into another with very little to no problems. I took some screenshots of it from the wip patch I have of it. As you can see it does load the dungeon specific textures properly.

Posted Image

Posted Image

 

Beta Bonus: (Proof Fado was never a Sage and the Sage plot goes way back to beta stage of development or older.)

 

I'm dropping this one now while I'm thinking of stuff that never got post to the wiki, and may get "lost" again...

 

2nd Cutscene (or is it third?) Chamber of the Sages contains only 1 actor(but many more groups!), Rauru. It is the cutscene that plays right after the spirit temple *OR* the shadow temple when you have collected all the Medalions. All that happens is Rauru tells you someone is waiting for you in the temple of time, raises his arms, and fade to white.

 

*BUT* It is a very special cutscene because it contains *many* clue to the history of the development of the plot. My favorite being that Saria has always been the forest Sage.

 

Proof? The Scene includes unused groups(objects). Beta saria's group being one of them.

 

Weirder still is the Beta Zora. Yep before Ruto was a sage (and apparently before the Zora's were finished) there was a Zora in the Chamber of sages. The group(object) in that scene for a Zora is so *ANCIET OLD* that it's beyond beta. Alpha, or maybe just a place holder even.

 

Actually, with my research I've done, I honestly believe Fado became Saria. The beta model and Fado's original beta model share the same textures for the sideburns, blond(and saria is not blond obviously), further more, comparing the eyes, its using the same eye texture from Fado's but slightly edited/stretched. Later on with the beta model of the final blond kokiri girl, they use the same textures from Saria's edit but slightly change it, but still basically the same. Again the same sideburn texture is used. With how the game was suppose to have a wind temple, which shows with the ganon's castle forest barrier, the wind medallion japanese text and later how fado in WW is the sage of wind. I just think literally it evolved that fado was the original sage of wind, but later was developed into Saria who became the sage of forest, in which the blond kokiri girl seen ingame evolved from Saria and the original fado, but as a separate npc. No other beta npc kokiri shares the same exact eye textures or side burns as these do.

Posted Image

 

Though an interesting find on the alpha zora model being loaded up in the object list for the chamber of sages, that's very interesting indeed! So it looks like they changed both the Ice and Wind Sages to fit for the new elemental themes perhaps? Also I have a picture of the beta zora loaded ingame via the prerelease.

Posted Image

  • Like 3
Link to comment
Share on other sites

While I'm not entirely sure if the values go together in 4 digits, however I have not seen anything to do with texture blending, using the Hyrule field scene as an example, which its values after the locations title offset are : 0001 0000; Disabling 01 doesn't effect blending but does disable all animating textures, aka the water in Hyrule field.(I retested it just to make sure, was sharing my screen with sakura at the time so she can confirm it).

IIRC changing Kakariko's 02 to 33 - so collapsing Ganon's Castle's data with the screen shaking - "removes" the multitexturing from the grass. Seeing how the combiner setup of which uses Environment Alpha for mixing, I assume that Ganon's Castle doesn't provide proper Environment Alpha.

Link to comment
Share on other sites

IIRC changing Kakariko's 02 to 33 - so collapsing Ganon's Castle's data with the screen shaking - "removes" the multitexturing from the grass. Seeing how the combiner setup of which uses Environment Alpha for mixing, I assume that Ganon's Castle doesn't provide proper Environment Alpha.

 

Oh interesting, I didn't know that, I just tried that. Yeah it looks like Ganon's castle doesn't provide the environment alpha needed(or perhaps causes a conflict?), though I find it interesting that it literally stops the combiner. But if disabling the index, the combiner works properly, just the windows in Kakariko don't. Same goes for other values, the combiner still works on the textures. I even tried it with the value for Lord Jabu Jabu's wobbling effect of the camera, it still works, my guess is just the ganon's castle value causes some sort of issue?
Link to comment
Share on other sites

Actually Sakura ported all of 1.0's dungeons correctly which just fixed only scene, map offsets for each 1.0 version. There was a few small bugs due to a few bugs in Sakura's code for porting which she was fixing before her computer died. But its very possible to port different versions of OOT's maps into another with very little to no problems. I took some screenshots of it from the wip patch I have of it. As you can see it does load the dungeon specific textures properly.

 

 

I really don't see how that's possible. One would have to fix the special texture offsets within the maps.

 

Posted Image

 

I ported the Deku, with a single map to demonstrate And before you ask, yes it works fine with only a single map in it's native ROM. The camera will freeze after the intro, but you can use debug to get around it.

 

I used a DMA free ROM, but I don't think it's necessary in this case.

 

http://www.sendspace.com/file/aakb3k

 

And I've done maps like Lon Lon Ranch before, and have gotten similar texture corruptions.

 

I'll respond to the rest of the post later.

Link to comment
Share on other sites

 Share

×
×
  • Create New...

Important Information

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