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

Jupiter Lighthouse Stuff

Started by Plexa, 08, February, 2017, 07:11:32 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Plexa

Hey everyone. Jupiter lighthouse is known as the most unbroken dungeon in TLA. Everything we've thought of has failed. I took another run at the Lighthouse today and made a curious observation concerning the retreat glitch.

Normally the retreat glitch works like this. After retreat has failed the game thinks you are in the room that you would have been sent to if retreat was successful (the 'retreat room'). Example - entering Airs rock through the second entrance makes the retreat point Area 55 Door 10, if you enter another Area of the dungeon (say Area 58) and use the retreat glitch then the Area is reset to 55, while you're still physically in Area 58. In this glitched state walking through doors loads the corresponding door in the retreat room. So if you're in Area 58 and walk through Door 3, instead of being sent where this door sends you instead you will be sent to where Area 55 Door 3 will send you.

Hopefully that's not too confusing.

In Jupiter Lighthouse this doesn't appear to happen. Regardless of which door you access, you always get sent back to Area 251 Door 0. This is the same location you'd be if you'd entered the dungeon from the overworld. I'm not sure if it is Door 0, but it certainly seems like it is.

I'm just wondering if there's anything special code wise surrounding this lighthouse that might explain this. I know that encountering Alex resets the last visited Sanctum to Contigo, but beyond that I don't know of anything. 

Daddy Poi's Oily Gorillas

#1
It is most likely because the Retreat room uses a different map code file than the rest of the Lighthouse, so the map number doesn't get found.... and if none are found, it doesn't know what to change the map/door number to, so it leaves it as is?

http://forum.goldensunhacking.net/index.php?topic=1014.0 = This topic describes how Exit data is formatted, to point out that a map number is looked up. (Compared with what is stored at the value that gets changed when Retreat fails.) .... However, when I say "different map code files" then that means this gets changed as well... (02008000-0200FFFF = Map code file section.) (When Retreat fails, it doesn't revert back to the Retreat Map's Map Code, which would have been cool, but oh well. And even if it did in this case, then there wouldn't be much abuse you could do, could you? With only two doors that's nearly 10 seconds apart....)
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

#2
The retreat glitch still works, just the every door sends you to the entrance of the dungeon (where you would have been sent if retreat was successful).

If I'm reading the editor correctly, I see the following exits; door 1 -> world map, door 2-> door 2 of 0xFE, door 3->door 3 of 0xFE, door 4 -> door 4 of 0xFC

This doesn't indicate that there's anything funny going on. Although I'm comparing it to another room which has a "madra warp" (felix gets sent to a default position on the world map) to see what is different. Along these lines, it's probably worth clarify exactly what is going when these madra warps happen.

One example is the 0xB door in room 0xCF (Tundaria Tower Interior). Door 0xB in map 0xCF gets sent to door 2 room 0xCF. If you retreat warp through the door you get sent to madra. Looking up Room 0xB relative to map 0xCE (which is where retreat would send you) would make the game read the blank code 0xFFFFFFFF

http://imgur.com/YNQW8RG

Does this mean that the game trying to send you to door 0xFF in area 0xFFF and this sends Felix to the default position on the world map? Or does the game try to look up Door 0xB in Map 0xCE, find nothing, then default you to the default position?

I noticed that the Jupiter Lighthouse stuff is missing any of the 0xFFFFFFFF separators, hence these questions.

EDIT: the first room of Jupiter lighthouse for convenience https://gyazo.com/bc4cb999812c43654b92e1cd6273409f


Daddy Poi's Oily Gorillas

#3
While I believe Jupiter is b/c of separate map code files... / Map's exit list not found ....
Tundaria is a different case... (It is the same file in both places)... In that case, map's exit list is found.... however, the exit is not (Exit 0xB is higher than how many the retreat room had...) So that one choose the map of the first entry. (Interesting/ assuming I read things right... was rather quick...) (Seems like the list detects entrance 0 as the end of a list of map exits.)

Exit data stops at 0x000001FF. (If you seen Atrius's topic, you'd know you can have multiple tables of these ending in that, but also multiple exit lists in one... erm... heheh.... )

080C9694 = Relevant function that scans the exit data... I probably should write up some psuedo-code, huh....?
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

Ah yup I get it now. Curious that some dungeons have map code files split and others not.

Daddy Poi's Oily Gorillas

My guess is that its probably for compression/spacing. Not 100% sure...

If you have all map's map code files separated.... it might be too bulky in the ROM.
If you hae all maps using the same map code file.. well, we're limited to only 0x8000 bytes in RAM for it, so then it wouldn't fit.
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! :)