Golden Sun Hacking Community
May 24, 2017, 09:36:03 PM *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News:
 
  Home   Forum   DC Wiki Help Search Calendar Downloads Login Register  
Pages: [1]   Go Down
  Print  
Author Topic: Jupiter Lighthouse Stuff  (Read 646 times)
0 Members and 1 Guest are viewing this topic.

Regular Member
**

Coins: 0
Offline Offline

Posts: 91

« on: February 08, 2017, 12:11:32 PM »

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. 
Logged
View Profile
Fox
Fox McCloud, the Hacking Doctor
Mercury Clan

Prodigy
*

Coins: 17
Offline Offline

I am: certainly not a Gallant!
Clan Position: Head Gallant
Posts: 2265

« Reply #1 on: February 08, 2017, 02:24:34 PM »

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....)
« Last Edit: February 08, 2017, 03:08:41 PM by Fox » Logged

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...

Just because my name is tea doesn't mean I want to be teased.  ... If anyone does it - Consider it an open-invitation to be teased yourself? :P
Glad I'm not Hazewater.... :P
View Profile

Regular Member
**

Coins: 0
Offline Offline

Posts: 91

« Reply #2 on: February 09, 2017, 11:42:34 AM »

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

« Last Edit: February 09, 2017, 12:32:02 PM by Plexa » Logged
View Profile
Fox
Fox McCloud, the Hacking Doctor
Mercury Clan

Prodigy
*

Coins: 17
Offline Offline

I am: certainly not a Gallant!
Clan Position: Head Gallant
Posts: 2265

« Reply #3 on: February 09, 2017, 06:26:25 PM »

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....?
« Last Edit: February 09, 2017, 06:52:53 PM by Fox » Logged

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...

Just because my name is tea doesn't mean I want to be teased.  ... If anyone does it - Consider it an open-invitation to be teased yourself? :P
Glad I'm not Hazewater.... :P
View Profile

Regular Member
**

Coins: 0
Offline Offline

Posts: 91

« Reply #4 on: February 09, 2017, 06:51:53 PM »

Ah yup I get it now. Curious that some dungeons have map code files split and others not.
Logged
View Profile
Fox
Fox McCloud, the Hacking Doctor
Mercury Clan

Prodigy
*

Coins: 17
Offline Offline

I am: certainly not a Gallant!
Clan Position: Head Gallant
Posts: 2265

« Reply #5 on: February 09, 2017, 07:20:29 PM »

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.
Logged

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...

Just because my name is tea doesn't mean I want to be teased.  ... If anyone does it - Consider it an open-invitation to be teased yourself? :P
Glad I'm not Hazewater.... :P
View Profile
Pages: [1]   Go Up
  Print  
 
Jump to:  

Cbox
Today at 06:49:14 PM
Lord Squirtle: I guess I'll make a topic for the GBA concept room in Dark Dawn soon.
Today at 04:27:21 PM
Fox: Yep ... There are many libraries for many languages... Python, etc... And then there are things like  the Google apis - e.g. http://maps.googleapis.com/maps/api/geocode/json?address=(whatever you want to search for)
Today at 07:46:43 AM
Luna_blade: I can see how XML/JSON are a thing these days.
Yesterday at 04:52:18 PM
Fox: Easier in the idea that I can reduce required external stuff where the source code isn't available/modifyable (Well, there is overrides in some cases, but still.) ; So it's possible the only "Events" I would require are those of the Form.... (Mouse Events, Keyboard Events, Paint Events, Etc. when needed.)
Yesterday at 04:42:14 PM
Fox: Anyway... I know I am using built-in controls in my current editor, but it is not out-of-the-question that I might just go and make my own custom controls... so that it is actually easier for me (But that'd take a lot of work.)  I'm thinking about one large bitmap object, and just drawing them on it. Problem is, I'm afraid it might not be efficient enough.  So I haven't decided about doing it.)
Yesterday at 04:33:28 PM
Fox: @XML = If I recall, I believe Visual Studio uses it for Settings Variables that remain even after you close the program. (e.g. There's one variable I have in my program that I call "LastRom" to make it easier to get back into the program.)
Yesterday at 04:17:59 PM
Fox: XML/JSON are simple = They are just a way to store data outside the application... ... The complexity is comparable to learning about data trees, I'd say... XML = Looks like HTML  ; JSON = Think Lists and Dictionaries, and nested ones.
Yesterday at 03:51:19 PM
Luna_blade: @the whole static thing: I recently came across the problem that if you use design patterns, objects of the same class might get duplicate info. Sometimes this is very little information, so it seems better to use something class-wide than making a file
Yesterday at 03:47:41 PM
Luna_blade: another thought I had is that I already made some code better...
Yesterday at 03:45:59 PM
Luna_blade: Sure I will open-source it on github once I rewrite it to be more maintainainable. Now that I think about it, I should put some other stuff there as well
Yesterday at 03:44:54 PM
Luna_blade: Yeah I made some code and screens for it in Java. The last thing I was busy working on was the grid for the values and the selection shape.
Yesterday at 03:41:22 PM
Luna_blade: I will learn a bit of JSON and XML soon. I guess those are pretty good replacements for what I meant with static
Yesterday at 03:40:42 PM
Luna_blade: It's an okay article. I prefer reading the java implementations on tutorialpoint
Yesterday at 12:07:19 PM
Fox: article*
Yesterday at 12:07:06 PM
Fox: Oh yes, there's a whole artice on design patterns at wikipedia? https://en.wikipedia.org/wiki/Software_design_pattern
Yesterday at 07:20:37 AM
Fox: Oh yes.... Just checked.... Program.cs has "Application.Run(new Form1());" ... AND.... Program.cs is a STATIC class, so my hunch is confirmed. (In a way.)
Yesterday at 07:12:43 AM
Fox: So... I'm assuming that it is like a tree, and your top level file should be the static class, with all the other object classes linked from it? (Like a tree?) - Wonder how the Dessigner treats Forms. (How are Form objects linked to a static class, if at all?)
Yesterday at 07:00:51 AM
Fox: (Since I can have incredibly bad wording sometimes :P)
Yesterday at 06:59:50 AM
Fox: (Well, started "?" was more implying whether you made any public releases yet....
Yesterday at 06:59:02 AM
Fox: Wait? You started a Hed Editor? Curious if you were going to open-source it....

Affiliates
Temple of Kraden Golden Sunrise
Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!
Page created in 0.082 seconds with 22 queries.