Welcome Guest [Log In] [Register]
Welcome to Yoshi Lighthouse. We hope you enjoy your visit.


You're currently viewing our forum as a guest. This means you are limited to certain areas of the board and there are some features you can't use. If you join our community, you'll be able to access member-only sections, and use many member-only features such as customizing your profile, sending personal messages, and voting in polls. Registration is simple, fast, and completely free.


Join our community!


If you're already a member please log in to your account to access all of our features:

Username:   Password:
Add Reply
Function Research
Topic Started: May 30 2010, 09:42:19 PM (922 Views)
Posted Image Salanewt
Member Avatar
Star Yoshi

Hello! As the title says, this topic has been created for researching all of the functions of the game (my main reasons for making a whole topic are this do not only include having fewer topics, but also to eventually find decompression/compression functions/algorithms, and to find the main functions/scripts for when Mario and Luigi flee from battle).

From what I know so far, we have...

Edit by charleysdrpepper: Anything with equal signs was added by me. Coloring can be a pain sometimes. I've added a few things that should help as a guide for where to do Enemy/Battle Function Research.

Spoiler: click to toggle




To be continued...

Since charleysdrpepper has been so kind as to add some of the pointers used by the functions, I will try to do some research in the functions to find more. However, as my main point of research is for functions as a whole, I will separate the pointer locations.

Pointers (which can be found within functions, and where they are):

Spoiler: click to toggle


The nice thing about these pointers is that they will be able to help find exactly what some of these functions are. I have also included them in a spoiler tag because there are many functions (all of which will be recorded here), so it might be best if the main functions do not overwhelm the pointers.

Have a nice day.
:Idleblackyoshi: :Idlewhiteyoshi:


Edit: If a function is bolded, this means that I am unable to figure out exactly what it does, at least right now.
Edited by Salanewt, May 31 2010, 10:13:30 PM.
Have a nice day!

Oh wow, it's been a while. Um. Hi. I guess I can get back into M&L stuff sooner or later, it really has been ages.

To use a sword, /\ and / again.
Offline Profile Quote Post Goto Top
 
Posted Image Teawater
Who are you calling an old man?

Oh thanks. I edited your post for a general outline... (showing where the Enemy Database Pointers are) to help out with where to do function research.

This topic might end up being renamed to Enemy/Battle Function research with this progress.... Since there seems to be tons of functions in the ROM.
If you ever find an error in any of my reference materials, PLEASE let me know.
Posted ImagePosted ImagePosted ImagePosted ImagePosted ImagePosted Image

Don't mind me, I'm nothing but a spoiler.
Offline Profile Quote Post Goto Top
 
Posted Image Salanewt
Member Avatar
Star Yoshi

Okay, thank you very much. However, as this topic primarily has to do with the functions themselves instead of their contents, I am going to separate these pointers in the post (they will still be there as they are parts of functions, but are not themselves the whole functions).

Have a nice day.
:Idleblackyoshi: :Idlewhiteyoshi:
Have a nice day!

Oh wow, it's been a while. Um. Hi. I guess I can get back into M&L stuff sooner or later, it really has been ages.

To use a sword, /\ and / again.
Offline Profile Quote Post Goto Top
 
Posted Image Teawater
Who are you calling an old man?

Okay, maybe, anyway, just so everyone knows...

Those pointers are called through the ASM method within the function directly above it, since those are usually found directly after the function of which it is for.

My prediction states that there is a large function that points to each function set depending on what is happening. For example, if two functions are called at the same time, they could be together and pointed to the first function. It may be possible that each new function set could start out with B5F0, but I must look further.


ASM
If you ever find an error in any of my reference materials, PLEASE let me know.
Posted ImagePosted ImagePosted ImagePosted ImagePosted ImagePosted Image

Don't mind me, I'm nothing but a spoiler.
Offline Profile Quote Post Goto Top
 
Posted Image Salanewt
Member Avatar
Star Yoshi

080574A1 - Probably has something to do with compressed graphics. I found a pointer to the beginning of the compressed battle graphics section in here.

08056225 - It could start here, since at 080574A0, there is a pointer (according to the disassembler, but the starts one byte before the function starts).

Oh, and this has been copied from the chatbox. I figure that I should save it here, since it should be important enough. Some other pointers that I have found are:

When looking at Automatic/Arm:

089744D0 (battle graphics) - I used this to find the function, located at 085888C.
081298B0 - is located at 080574A0.
083848FC - is located at 080574B4.


To be continued, but there are several more pointers in here.

Have a nice day.
:Idleblackyoshi: :Idlewhiteyoshi:
Have a nice day!

Oh wow, it's been a while. Um. Hi. I guess I can get back into M&L stuff sooner or later, it really has been ages.

To use a sword, /\ and / again.
Offline Profile Quote Post Goto Top
 
Posted Image Teawater
Who are you calling an old man?

Just adding more to the list of pointers...

Items, Gears, and Badges have been excluded due to 20+ results.

Spoiler: click to toggle
Edited by Teawater, Jun 28 2010, 07:59:40 PM.
If you ever find an error in any of my reference materials, PLEASE let me know.
Posted ImagePosted ImagePosted ImagePosted ImagePosted ImagePosted Image

Don't mind me, I'm nothing but a spoiler.
Offline Profile Quote Post Goto Top
 
Posted Image Teawater
Who are you calling an old man?

...and I forgot to reply to your post...

Quote:
 
089744D0 (battle graphics) - I used this to find the function, located at 085888C.
Yes, that is a good start for finding graphic assembly.. (I think...)
Quote:
 
080574A0
080574B4
I doubt that these are actually ARM, are you sure? This is likely thumb. The ones that are ARM often have a format of E******* in most places, or so, that's what I've been experiencing..

Quote:
 
080574A1 - Probably has something to do with compressed graphics. I found a pointer to the beginning of the compressed battle graphics section in here.

08056225 - It could start here, since at 080574A0, there is a pointer (according to the disassembler, but the starts one byte before the function starts).
The function should start at 080587BC. The pointer, 089744D0, is grabbed at 0805883A, and this is where all the equations that you should be disassembling...

As you read downward and find registers of which you do not know the values to may require you to look back,,, (before this offset..) Ofcourse you could set a breakpoint in SDL-H, but that doesn't tell you where the value came from...

I shall look at this code before I can post more on it.

EDIT: These do not appear to be Battle Graphics.. but instead... used with Tilescript Modifiers (Byte 0A in Room Properties..)

Equation:

GET 16-BIT AT [ 083B7108 + Tilescript Modifier Byte * 4 + 4 ] //* 4 for 32-bit ALIGNED
GET 32-BIT [ 089744D0 + Above 16-bit * 4 ] // * 4 again.. for 32-bit aligned...

These seem to be Tilescript Modifier TILESETS! I have tested it as well.. interesting...
Edited by Teawater, Dec 19 2010, 06:08:33 PM.
If you ever find an error in any of my reference materials, PLEASE let me know.
Posted ImagePosted ImagePosted ImagePosted ImagePosted ImagePosted Image

Don't mind me, I'm nothing but a spoiler.
Offline Profile Quote Post Goto Top
 
1 user reading this topic (1 Guest and 0 Anonymous)
« Previous Topic · Superstar Saga · Next Topic »
Add Reply

↓ It's not the truth (or is it?) Come back tomorrow to find out! (Joke.) ↓