Lash Ropes
Golden Sun Hacking Community
August 15, 2018, 06:51:06 PM *
Welcome, Guest. Please login or register.
Did you miss your activation email?

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

Regular Member

Coins: 2
Offline Offline

Posts: 135

« on: September 18, 2017, 05:18:01 AM »

Okay so these are driving me crazy. The length of the rope on a lash post is variable in length - either short, medium or long (as far as I know). But there doesn't seem to be a good reason why the length of the rope changes? It definitely isn't based on the GRN? Is it related to a global counter or something?

EDIT: Whoops wrong game :D
« Last Edit: September 18, 2017, 06:04:04 AM by Plexa » Logged
View Profile
Fox McCloud, the Hacking Doctor
Mercury Clan


Coins: 28
Offline Offline

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

« Reply #1 on: September 18, 2017, 03:06:06 PM »

Sounds interesting. Would it have to do with the distance between both posts? I guess I can take a closer look at exactly what's being checked.

There are two types of Ropes - One that requires Lash, the other that's already connected... So I'll post the sections of code for both... (To point out the general section is already known, but a lot of it might not be documented good enough.)

Lash Pegs Group 1 (0300009C)
080D897C = Lashy - Initialization (Called from Map Code.)
080D8A00 = Lashy - Called every ~frame?
080D8C10 = See Movement Type - This is based on Lash pegs. - Called every ~frame?

080D8FA8 = Lashy
080D8FF8 = Lashy

080D9104 = Lash/peg/rope related (If flag is off) (pegset,peg1,peg2)
080D9194 = Lashy
080D92A4 = Lashy
080D92D4 = Lashy
080D9498 = Lashy
080D9710 = Lashy
080D9790 = Lashy
080D9974 = Return
080D9978 = *Research needed: One place tries to write “1” to 080F3944.
080D99B8 = isPlayerNextToPeg(peg1,peg2) Returns 1 if the player is next to a peg, otherwise 0. ; The pegs that you use Lash on.
080D9A74 = Lash/peg/rope related(peg1,addr1,addr2) peg2 placed in addr1, pegset placed in addr2.  (When r0=peg1, returns -1 if no match.)
080D9AB0 = Lash/peg/rope related
080D9AD0 = addLashy(pegset,flagInd,peg1,peg2) (Called from Map Code.)

Lash Pegs Group 2 (030000A0) - May not contain flag indexes, so these probably don’t need the Lash psynergy.
080D9D40 = See Movement Type - This is based on Lash pegs.
080D9E74 = [030000A0]+EC, return an empty slot (return address)
080D9E98 = addLashy(pegset,peg1,peg2)
080D9F1C = Lashy
080DA060 = Lashy(,peg1?,peg2?,)
080DA0B0 = Lashy
080DA1B8 = Lashy
080DA22C = Lashy
080DA334 = Lashy
080DA3BC = Lashy
080DA660 = Lashy
080DA6E0 = Lashy
080DA908 = Lashy
080DA938 = Lashy
080DA968 = *Research needed: One place tries to write “1” to 080F3950.

@ room 23 (Shrine of the Sea God entrance room.)
02036CF8 = (value is 6) Seems to affect the sprite. But not length.
First rope entry:
02036D00 = Length of rope. (Probably for number of rope segments in a list.)
02036D18 = Pointer to what looks like a list of entries for each rope segment.

So I guess I kind-of see it?
Shrine of the sea god (Map 23) = Length 15
Kandorian temple lobby (Map 22) = Two ropes that are length 10
Madra catacombs (Map 47) = Length 17
Ahafran Cave (Map 101) = Length 8

But to figure out how the length is decided, I'll need to study one quick thing.

Looking at 080D9194 function for calculation:
Yep! Distance between both is checked - So that means Pythagorean Theorem is used.
(root(x^2 + y^2 + z^2) / 6) + 1
(Where x, y, and z are the difference between both objects, ofcourse.)

Was that what you were looking for, or did I miss something?
« Last Edit: September 18, 2017, 05:11:19 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...

Remember kids! Before you go on that interview, remember to wash your hands in teawater! *Coughs on hand* (Excuse me, I just coughed up a little teawater, so they're still clean!) You wouldn't want that hiring manager to be unimpressed.

May the force be with you!
Shoo! Why does it smell in here?
Maybe that's the wrong kind of force. *smirk*
View Profile

Regular Member

Coins: 2
Offline Offline

Posts: 135

« Reply #2 on: September 18, 2017, 09:37:44 PM »

Oh my god that makes so much sense. The room where we're having trouble with it is the third floor in Gabomba where you need to use lash on the spinning gear. For some inexplicable reasons we didn't know why the rope changed length after the encounter, and this is why - the distance from the rope to the pole on the gear keeps changing.
View Profile
Pages: [1]   Go Up
Jump to:  

August 02, 2018, 07:42:12 PM
Caledor: patch for TLA uploaded again cause i forgot to update descriptions for 3 shields
August 02, 2018, 01:16:14 AM
Caledor: Don't want to triple post so I'll just announce here that v1.71 is out. I updated my last post.
July 29, 2018, 12:18:00 PM
KyleRunner: Let me see...
July 28, 2018, 08:12:34 PM
Fox: What value do you see at 08000468? (Or 00000468 in hex editor)  0801319D or 08F9EE50?
July 28, 2018, 07:11:11 PM
KyleRunner: "there is an easy fix by changing a pointer back to what it was suppose to be"... Hmmm... How?
July 27, 2018, 10:11:06 AM
Fox: Bootleg*
July 27, 2018, 10:09:03 AM
Fox: There are two ROMs that can be found on the internet, one may have the MEGAROMs boot load stuff. (So not truely clean.) ... If you get a screen while booting the game and holding L+R (I think it was?), then you know you have it, and your ROM is not truely "clean"... it is unfortunate, but there is an easy fix by changing a pointer back to what it was suppose to be..
July 27, 2018, 05:10:13 AM
MaxiPower: Hello World
July 25, 2018, 11:09:23 PM
KyleRunner: Well... here's The problem that needs solving: my GSTLA translation patch only works on a clean rom, with specific CRC. 
July 25, 2018, 07:59:37 PM
Fox: I am not sure I understand? If there was such a program to "clean" a dirty ROM dump, what exactly would it do?
July 25, 2018, 12:37:42 PM
KyleRunner: Hello, guys. Could someone teach me how to "clean" a dirty Golden Sun rom dump? Is there a program or something?
July 25, 2018, 01:37:40 AM
Atrius: @Fox, yeah... I was expecting it to take 2 weeks at most...
July 25, 2018, 12:03:01 AM
Majora: Yes, I believe so. Think they were made public a while ago prior to the site issue
July 24, 2018, 08:26:45 PM
Luna_blade: is it normal that I can see all clans?
July 24, 2018, 08:25:41 PM
Luna_blade: Nice to see it is back!
July 23, 2018, 11:01:36 PM
Fox: Yes. I was expecting it to be a little while longer, but it is great to see that Atrius delivered.
July 23, 2018, 02:30:46 AM
Majora: Thank you for getting the site back online!
July 21, 2018, 09:19:06 PM
Salanewt: Time to upload that "EXP gain when KO'd" patch I made a month ago.
July 21, 2018, 09:18:48 PM
Salanewt: Oh hey, the site's back up!
July 18, 2018, 10:49:52 PM
roger: I can post but it goes to an error page when I submit.

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.075 seconds with 23 queries.