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

Hex Testing Team

Started by Salanewt, 21, July, 2009, 08:07:00 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Salanewt

Hello. This topic will be used to sign people up for the HEX testing team. I will make one patch for each person on the team. Each patch will have something different that will have been altered in it (with a HEX editor). I type on a list where in the HEX editor I can find the changes, and you will have to play through the game until you find something that has been altered. If it has been altered, then I will ask you to tell me where you were when you found the edited place, and what it is that is different.

By the way, this topic is the same one that is on my website, and will be edited when the original post is edited. To join this team, you must have LunarIPS, and a Mario and Luigi: Superstar Saga ROM. I will not tell you where or how to get the ROM, since I do not want to break the rules, but you should be able to find LunarIPS by searching on Google.

By the way, I will make more fun for you by changing the text of the game in some areas, and I will try to make it funny (or I might change all of what one character says, then nickname that patch "The Toad Patch" or "The Queen Bean Patch" (only if that character's lines have been changed).

You have a time limit though, you must try to complete the game within 18 days, and you must tell me when you download your assigned patch for the game, so I can start counting.

To register for this team, all you have to do is to say that you want to be a member of the team. Also, please be honest when testing. I will post the patches in about 7 or so days.

Okay, so far on the team, we have:
Salanewt
charleysdrpepper


Please make sure to check for different palettes, different enemies (or enemy locations), odd objects in the game (a tree in the middle of the ocean, as an example), different sprites, anything. If you are not sure about something, please post it anyway, and I will double check (on a regular version of the game).

Have a nice day.
:MercurySet:  :MercuryDjinni:  

This post has been edited by Salanewt on Jul 21 2009, 08:49 PM
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?

Atrius (He/Him)

So... You're randomly altering values in the ROM with a HEX editor, then playing through the game the whole way to see if anything at all changed?

There are a lot better ways to go about figuring out where specific data is stored in a ROM y'know.
[sprite=220,4,0]I'm shaking my head in general disapproval of everything[/sprite]

Salanewt

Oh. There are? Could you please enlighten me on some of them? I have been doing research, but I have not found anything.

Have a nice day.
:MercurySet:  :MercuryDjinni:  
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?

Atrius (He/Him)

You'll need VBA SDL H, and a decent knowledge of GBA assembly code.

My method consists of using VBA's "search for cheats..." option, or a scan through the memory viewer to find out where what I want to edit gets stored into memory.  Then using VBA SDL H, I set up a break point when something is written to that location in memory, and then with a little improvising depending on the exact situation I trace the Assembly code back to find the source of that data in the ROM.
[sprite=220,4,0]I'm shaking my head in general disapproval of everything[/sprite]

Salanewt

Thank you. However, how will I know what affects what in the game? This sounds like something for an easier way to edit the information. The problem is that I do not know what anything outside of the text sections would do. I still have to find palettes so I can try to make an editor for the game. Anyway, I will try this and see what I can do.

Have a nice day.
:MercurySet:  :MercuryDjinni:

This post has been edited by Salanewt on Jul 21 2009, 08:51 PM
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?

Charon

In Pokemon (dunno if this will work for ML:SSS) you could just use the memory viewer on Automatic Update and view when certain things change in the ram, then locate the pointers to those ram pointers in the Rom. Well, that's what I do :\

Salanewt

Ooh, thank you. This might help quite a bit if it works (unfortunately, I am past the best part of the game (in my opinion), but I am going to try this).

Automatic Update?

EDIT: Never mind, I found it.

Do you know where sprites are located in Memory Viewer (IRAM, VRAM, etc.)? I would lik eto see if the lost cameos' texts' sprites are in the game's coding (not sure if that made sense).

Thanks again.

Have a nice day.
:MercurySet:  :MercuryDjinni:

This post has been edited by Salanewt on Jul 22 2009, 02:16 PM
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?

Charon

I'm pretty sure the offsets are located somewhere in 0x2000000, but I can't remember. Changing the format to 32-Bit will help (a lot) though.  You can set the bytes to repoint somewhere else in a script (in Pokemon, dunno if they do that in SuperStar Saga) or ASM.

Atrius (He/Him)

Quote from: Charon on 22, July, 2009, 03:00:00 PMIn Pokemon (dunno if this will work for ML:SSS) you could just use the memory viewer on Automatic Update and view when certain things change in the ram, then locate the pointers to those ram pointers in the Rom. Well, that's what I do :\
Yeah, that's my plan B if I can't find it the other way.

VRAM starts at 0x06000000

Here is a full memory map for GBA, there's a ton of other good information there as well.
[sprite=220,4,0]I'm shaking my head in general disapproval of everything[/sprite]

Salanewt

Oh, thank you very much. This will be extremely helpful for when I start making an editor (as soon as I start learning how, oh well). If for some reason either of you want any information on text for this game, then I can give it to you (or a direct link, however, I do not see why you would want it, but just in case).

EDIT: Just to double check before I gather more information for this game, VRAM is for sprites, correct?

Anyway, have a nice day.
:MercurySet:  :MercuryDjinni:

This post has been edited by Salanewt on Jul 22 2009, 04:22 PM
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?

Charon

Atrius, quick question - what's the real difference between the RAM at 0x2000000 and 0x3000000 on a working level?

Atrius (He/Him)

The RAM at 0x03000000 can be accessed considerably faster (Between 3 to 6 times faster) than the RAM at 0x02000000 because it's in the processor chip.
[sprite=220,4,0]I'm shaking my head in general disapproval of everything[/sprite]

Salanewt

Hm... I have a very quick question about VBA SDL H, now that I have downloaded it (I tried a few days ago, but I did not have any luck).

Anyway, do you know how to get to work? When I try to open it, a black square flashes on my screen, and nothing happens.

Thank you in advance.

Have a nice day.
:MercurySet:  :MercuryDjinni:  
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?

Atrius (He/Him)

It's a command line program, the easiest way to use it though is to just drag and drop the ROM onto it to start it up.
[sprite=220,4,0]I'm shaking my head in general disapproval of everything[/sprite]

weckar

Salanewt, you're making a second editor for Golden Sun then?

Salanewt

Thanks, I did this, and it works. However, I do find it a bit confusing... After typing in the necessary commands to find the sprite's tile data, the game stops near the beginning of the title screen with some offsets. I will probably test this again in about a week or two, but I do not see why the emulator stops at the title screen for tiles that are not there.

Oh well.

Have a nice day.
:MercurySet:  :MercuryDjinni:  
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?

Atrius (He/Him)

Mario & Luigi: Superstar Saga.


Salanewt, you have to realize the same location in memory is used for tiles everywhere in the game.
[sprite=220,4,0]I'm shaking my head in general disapproval of everything[/sprite]

Salanewt

Oh, thanks for telling me. I did not know.

Well, I think I will eventually open VBA SDL H again and try searching again (probably today). Now that I know that tiles are located in the same location, then I wonder if there is a way to search for sprites instead (after I record the tiles' location).

Have a nice day.
:MercurySet:  :MercuryDjinni:

Edit: Oh, Atrius? I was wondering, could you please tell me which offset I should choose?



If possible, I would like one from the ROM section.

Thank you in advance.

This post has been edited by Salanewt on Aug 30 2009, 02:12 PM
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

Even though I have like close to slim experience in Assembly.. I would think #15 is the one, the same as the three in the bottom (Well actually as ONE of the three in the bottom, but I think they should all be noted since the other two are next to each other).. However... I also tried playing around with pointers near those locations too...

Also.. I try all the ones that start with 08, just in case.

The two types of breakpoints.. the write one when that value changes, and the read one.. when another pointer gets the info from the pointer you specified., but I, in this case, only used the write one.

Correct me if I'm wrong.

Edit: It appear R8 is often the same. Not 100% sure why, but I hope one day I find out. (Do all the Rs mean something? if not the same thing, I shall find that out. IN my opinion, I think it's the assembly directions.. in the order they are in is when it is written/read..)

Most importantly, I want to know what those acronyms/abbreviation mean. (str, ldr, ldrb, etc.) ) Hopefully I will find out, probably from research. Edit: Like from  GBATEK or THUMB REF.

"Experience gives you wisdom."


I'm glad http://forums.feplanet.net/index.php?showt...45&#entry470945 gave me the push that I needed.. However at first I probably did not understand it, but it's slowly starting to catch on.

Edit: The R0 might be important too.

This post will probably be edited in the future unless someone posts.

This post has been edited by charleysdrpepper on Aug 30 2009, 11:18 PM
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! :)

Atrius (He/Him)

Mmmm... This one looks like it'll take a bit of work, and a slightly more advanced knowledge of Assembly.

The current command is meant to store the value in R0 at R5+8, but neither of those values match what you're concerned with is being written, or where it's being written to.  What it's really doing with the information you're concerned with is moving it through a DMA transfer, meaning the information in the registers right now could be virtually useless, except that it looks like that command it just executed was to initiate the transfer since it's writing to the location that the DMA registers are at.  You'd need to either check a couple of commands back, or check the memory values starting at around 040000B0 (DMA transfer registers location) while at this break point to figure out the specifics though.



R13 = Stack Pointer - A location in memory for temporary variable storage, most often used as subroutines are called.
R14 = Link Register - A pointer used to store the return address for linked branch commands.   Basically it's used so the CPU knows where to continue executing commands after a subroutine is executed.
R15 = Program Counter - Where commands are currently being executed from

Also CPSR is a register, but it's just some flags that I don't even really pay attention to except in extremely rare cases.

The rest of the registers are general purpose, and could be used for anything the programmers needed them for at the time.
[sprite=220,4,0]I'm shaking my head in general disapproval of everything[/sprite]