News:

As a consequence of the forum being updated and repaired, the chatbox has been lost.
However, you can still come say hi on our Discord server!

Main Menu

OOB Walls and Encounters

Started by Plexa, 26, January, 2015, 02:17:02 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Plexa

This is a topic I've long been curious about as it begins to suggest that the out of bounds (OOB) world of Golden Sun is an incredible mess. For the record, this applies to Golden Sun 1 as well but is more pronounced in Golden Sun 2. Anyway, let's talk about what the issue is.

We've spent an awful long time working out how to navigate the OOB world because there are loading zones/doors that you can access here that can warp you various places. One well known instance of this is the Gondowan skip which allows you to go from Indra to Gondowan pretty much anytime that you like. In particular, in a speed run after getting scoop you will go do the Kibombo quest and get Piers etc before fighting Briggs (and activating the flag for the rope that allows you to pass through the mountains). Here's one possible Gondowan skip; https://www.youtube.com/watch?v=05FNHFx6LeI here is another https://www.youtube.com/watch?v=AEaYMVn5cH0 and the one we currently use in speedruns is slightly different again.

Gondowan skip is also an example of the problem we currently have. All of these methods work so long as you maintain a 0 BRN i.e. get no encounters.

Bizarrely, getting certain encounters will completely change the OOB landscape. Most often this will result in walls being put up everywhere preventing you from accessing anything useful. The prominent example in this area is getting the 2 chest beater party. Once you hit that the landscape changes and there's not much you can do except save, reset and try again.

Other places where getting 'bad' encounters is known to cause trouble include the Aqua Rock skip, Vale Cave Skip (gs1) and Sol Sanctum skip (gs1). Whatever information/files that would be useful to help diagnose the problem here I'll happily supply. More than happy to answer questions if I've been unclear or left out information!

Salanewt

A couple other things as well, though they may not quite be "OOB" in the same manner as what you are talking about (especially since these only apply to areas you are not supposed to be able to reach within GS2's normal boundaries, and are far less useful than the examples you have discussed);

Angara:
- There's a warp to Indra almost directly south of the Kolima forest, on a little peninsula surrounded by river
- The bridge area southwest of Kolima changes the surrounding area so it uses the Prox overworld tileset (snowy area with lightning void)
- I think there may be a Yampi Desert warp around here as well, but I can't remember 100% where it is

Indra:
- There's an additional warp to Dekhan somewhere inside the mountains; the in-game world map shows a clear path through them, so they likely added the sprites and mountains later on and forgot to fix the map
- If you find some way to get here without the boat (such as walking through walls on the overworld), then you can fight Iron in the water north of Gondowan Cliffs; I don't think it works if you skip fighting it and then travel around here by boat

Debug (either of the two that have Sol Sanctum tiles):
- If you figure out how to escape the camera-locked portion, there is additional terrain to the left that you can walk on (I think the editor can show you this stuff as well)


As for what you are talking about in particular, this is some very interesting stuff. Do you have any idea why this happens (I never even knew it was a thing, but it looks like Retreat Glitch stuff)? Also, BRN?
Oh yeah baby, £ me harder.

Fusion is just a cheap tactic to make weak Adepts stronger.

Yoshi's Lighthouse is a hacking website in progress. Why not check it out if you like Yoshi or the Mario & Luigi games?

Daddy Poi's Oily Gorillas

#2
GRN = General Random Number
BRN = Battle Random Number

I think. Or at least, that's the way I'd see it, since one random number is only used in battles, the other seems to be everything else. (Including fleeing from battle.)
Golden Sun Docs: Broken Seal - The Lost Age - Dark Dawn | Mario Sports Docs: Mario Golf & Mario Tennis | Misc. Docs
Refer to Yoshi's Lighthouse for any M&L hacking needs...

Sometimes I like to compare apples to oranges. (Figuratively) ... They are both fruits, but which one would you eat more? (If taken literally, I'd probably choose apples.)
Maybe it is over-analyzing, but it doesn't mean the information is useless.


The only GS Discord servers with significance are:
Golden Sun Hacking Community
GS Speedrunning
/r/Golden Sun
GS United Nations
Temple of Kraden

Can you believe how small the Golden Sun Community is?

2+2=5 Don't believe me? Those are rounded decimal numbers. Take that, flat earth theorists! :)

Plexa

Quote from: Lord Squirtle on 27, January, 2015, 08:54:30 AM
A couple other things as well, though they may not quite be "OOB" in the same manner as what you are talking about (especially since these only apply to areas you are not supposed to be able to reach within GS2's normal boundaries, and are far less useful than the examples you have discussed);

Angara:
- There's a warp to Indra almost directly south of the Kolima forest, on a little peninsula surrounded by river
- The bridge area southwest of Kolima changes the surrounding area so it uses the Prox overworld tileset (snowy area with lightning void)
- I think there may be a Yampi Desert warp around here as well, but I can't remember 100% where it is

Indra:
- There's an additional warp to Dekhan somewhere inside the mountains; the in-game world map shows a clear path through them, so they likely added the sprites and mountains later on and forgot to fix the map
- If you find some way to get here without the boat (such as walking through walls on the overworld), then you can fight Iron in the water north of Gondowan Cliffs; I don't think it works if you skip fighting it and then travel around here by boat
Ah yes, you're talking about the existence of out of bounds doors on the world map. Slightly different phenomena as I'm talking about one within maps/dungeons. As far as I'm aware, there are a handful if out of bounds doors scattered across the whole world map sending you to one of five locations. They access Daila, Yampi Desert (from alhafra side), Sea of Time, Atteka Inlet and Northern Reaches. We can actually access these using a fairly well known glitch resulting the the first flight cutscene. Here's a little discussion on that http://www.twitch.tv/tl_plexa/c/4525777

With regard to the Prox overworld tileset, and interesting bug is that during the final credits scene immediately north of Mt Aleph is an area which is normally covered in snow, but renders as grass due to the position of the camera! Pretty funny.

QuoteDebug (either of the two that have Sol Sanctum tiles):
- If you figure out how to escape the camera-locked portion, there is additional terrain to the left that you can walk on (I think the editor can show you this stuff as well)
That would imply that we're able to access the debug room without hacking! #thedream

QuoteAs for what you are talking about in particular, this is some very interesting stuff. Do you have any idea why this happens (I never even knew it was a thing, but it looks like Retreat Glitch stuff)? Also, BRN?
I'm not sure why the out of bound terrain changes! But I'm up to speed on everything else. Fox is correct when he says BRN = battle random number (I adopted his terminology when he gave me the addresses a long time ago haha! You're also correct Fox, BRN determines the kind of attack use, whether you get random drops, whether statuses are inflicted, damage dealt and so on. GRN deals with everything else including some functions in battle like where an attack is targetted.)

Anyway, this does indeed involve the retreat glitch. We can use that to get out of bounds and off screen there are a bunch of invisible loading zones that take you to various loading zones from the first room of the map that retreat would normally send you to. Our current working theory for why these doors even exist is that they are remnants of when the game was programmed and the devs were too lazy to remove all the ones that they thought would be inaccessible. I like to call them junk doors for this reason.

Here's an illustration of the gondowan skip (as I presented in the OP) working correctly. https://www.youtube.com/watch?v=8geBiaGZRhU&t=38m15s
If I got a mob of 2 chest beaters as the first encounter (I haven't extensively tested past the first encounter) it will change the landscape of the out of bounds terrain, and in particular block me from accessing these doors in the normal way.

Daddy Poi's Oily Gorillas

#4
QuoteOur current working theory for why these doors even exist is that they are remnants of when the game was programmed and the devs were too lazy to remove all the ones that they thought would be inaccessible. I like to call them junk doors for this reason.
I think I'd maybe like to disagree with that theory?
I haven't done much research, but I suspect it's more related to reading data that was actually meant for other things. (Like reading non-map data as map data.)

For example, 020301A4 and 020301A8 hold the address to the tile the player is on. (Map data is 02010000 - 0201FFFF ... If that address isn't in the zone, it's reading data it's not supposed to.) For example, moving the player north of the map, will bring it under 02010000... ; The World Map's map data may have a different range of addresses.
Golden Sun Docs: Broken Seal - The Lost Age - Dark Dawn | Mario Sports Docs: Mario Golf & Mario Tennis | Misc. Docs
Refer to Yoshi's Lighthouse for any M&L hacking needs...

Sometimes I like to compare apples to oranges. (Figuratively) ... They are both fruits, but which one would you eat more? (If taken literally, I'd probably choose apples.)
Maybe it is over-analyzing, but it doesn't mean the information is useless.


The only GS Discord servers with significance are:
Golden Sun Hacking Community
GS Speedrunning
/r/Golden Sun
GS United Nations
Temple of Kraden

Can you believe how small the Golden Sun Community is?

2+2=5 Don't believe me? Those are rounded decimal numbers. Take that, flat earth theorists! :)

Plexa

Awesome! That sounds really interesting. There is at least one lazy programmer door in Vault Cave though :) but this sounds like a much more promising explanation for the underflowed doors. Any other addresses that I should be aware of before I go examining things?

Daddy Poi's Oily Gorillas

Not sure. But you probably should be aware that 02008000-0200FFFF is map code data, and that if you visit one room that uses a large map code file, and then go to another one that uses a smaller map code file.... You'd still remain with some of the map code data from the old file, since it wouldn't be big enough to overwrite the rest.

Also, because Golden Sun converts their branch links from relative and absolute addressing for compression purposes, I suspect this might be why you shouldn't enter battle for some of that stuff to work? (And that's for the entire 02008000-0200FFFF scope, and not just for the map code file's size, I think.)
Golden Sun Docs: Broken Seal - The Lost Age - Dark Dawn | Mario Sports Docs: Mario Golf & Mario Tennis | Misc. Docs
Refer to Yoshi's Lighthouse for any M&L hacking needs...

Sometimes I like to compare apples to oranges. (Figuratively) ... They are both fruits, but which one would you eat more? (If taken literally, I'd probably choose apples.)
Maybe it is over-analyzing, but it doesn't mean the information is useless.


The only GS Discord servers with significance are:
Golden Sun Hacking Community
GS Speedrunning
/r/Golden Sun
GS United Nations
Temple of Kraden

Can you believe how small the Golden Sun Community is?

2+2=5 Don't believe me? Those are rounded decimal numbers. Take that, flat earth theorists! :)

Plexa

So, first thing is that in the two places I checked it looked like these underflowed doors only existed when the tile value was reading a value in the 02008000-02000FFFF range which was away from the zeroed values. For instance, in Gondowan cliffs the last non-zero value is 02000A740 i.e. 02000A744-02000FFFF are all zero. So that's a partial confirmation of your theory right there.

So next thing I did was compare the memory between a file that had gotten the problematic 2 chest beater party and one that had no encounters. The differences in the 02008000-FFFF range occurred in only 27 addresses. The majority were in the 02009AXX range. Whereas the problem (of walls appearing) is occurring elsewhere, e.g. when looking up 0200ECAC


Daddy Poi's Oily Gorillas

#8
So? Do you know of anything that edits map tiles based on player position? (Either event-related or psynergy-related?)

If we can figure this out, it's quite likely one could beat the game once they've accessed it. (Maybe even to the point of accessing the debug mode.) It depends on the limitation of how it would write to memory, though.


(I think there are events that can copy tiles to other tiles... at least when such an event is coded for it, but I haven't quite figured out any that are player-position related.)
Golden Sun Docs: Broken Seal - The Lost Age - Dark Dawn | Mario Sports Docs: Mario Golf & Mario Tennis | Misc. Docs
Refer to Yoshi's Lighthouse for any M&L hacking needs...

Sometimes I like to compare apples to oranges. (Figuratively) ... They are both fruits, but which one would you eat more? (If taken literally, I'd probably choose apples.)
Maybe it is over-analyzing, but it doesn't mean the information is useless.


The only GS Discord servers with significance are:
Golden Sun Hacking Community
GS Speedrunning
/r/Golden Sun
GS United Nations
Temple of Kraden

Can you believe how small the Golden Sun Community is?

2+2=5 Don't believe me? Those are rounded decimal numbers. Take that, flat earth theorists! :)

Plexa

Unfortunately I don't know anything that manipulates tiles =/ everything interacts with objects aside from in game events (like activating jupiter lighhouse and so on).

Few ideas about manipulating the addresses though.

1) Ankhol ruins sand. I mentioned it in the speedrunning thread, but soft resetting retains the sand - it's probably tied up in this.
2) Using your suggestion about large maps causing overflow, I figured that loading a different save file then soft resetting could keep some of the map data in memory. I gave this a quick test in GS1 in Sol Sanctum and there were differences between a hard reset, soft reset after saving and loading a different save file, soft resetting then loading the first file.

(2) seems plausible, but I'd need to know what maps are 'large' and which are 'small' to test that out.

Plexa

So I got my good friend Bloodduster to test out some stuff related to this (specifically testing the second theory above). Here's what he found: http://www.twitch.tv/bloodduster/c/5985182

Here's a summary:
1) Standard OOB: Run up, hit spikes, tret cutscene plays if you go up+left or down right
2) Sanctum warp, soft reset OOB: Run up, encounter tret much earlier without having to go left/right
3) Load Sol Sanctum file, soft reset OOB: Run up, there's just a wall everywhere. (this was not shown in the video)

This confirms that loading a different save file, soft resetting then loading the original file can change the OOB terrain.

We also hunted around for doors for one of these non-standard OOBs. It looks like all the doors were still sending you around tret i.e. the door instructions were all relative to the map you were in, as opposed to absolute. Which is a bit of a shame as it means this is unlikely to be useful.