Post subject: How to find Useful memory addresses
jaysmad
Other
Experienced player (932)
Joined: 12/1/2006
Posts: 629
Location: Mom's
I am not absolutely sure how this works and i would be glad to learn how. I would like to know things like "how to find the speed my character is going" like in the Mario trick page. How did they found that out?
Player (89)
Joined: 11/14/2005
Posts: 1058
Location: United States
It is actually very easy to find memory addresses in any game. I will give you an example of how it can be done. Lets say you want to find the hit points of a boss you are currently trying to kill. Before you first attack the boss, pause the emulator and go to the Cheat Menu, then select Search for new cheats. Hit the reset button, then exit the cheat search screen and go back to the game. Attack the boss one time (this will lower his HP), pause the emulator again and go back to the cheat search menu select the radial button that says "< Less than" because the HP of the boss will be less than the last time you ran the search function. It is selected by default anyway, then press the button that says "search". This will reduce the amount of results to the memory values that have reduced in size since the last time you ran the search. Go back to the game and damage the boss again, then repeat the search, now the amount of memory addresses should be even smaller. Repeat this process until there is only a manageable amount of addresses left, or only 1. Then select that memory address and click "watch" now you will be able to view the HP of the boss in real time even though the game itself does not display the information.
They're off to find the hero of the day...
jaysmad
Other
Experienced player (932)
Joined: 12/1/2006
Posts: 629
Location: Mom's
Thanks but how to find my current speed?
Player (89)
Joined: 11/14/2005
Posts: 1058
Location: United States
What game are you referring to? I may be able to find it for you.
They're off to find the hero of the day...
jaysmad
Other
Experienced player (932)
Joined: 12/1/2006
Posts: 629
Location: Mom's
Well i was referring to Aladdin but i would use this in many games.
Player (89)
Joined: 11/14/2005
Posts: 1058
Location: United States
Ok easy enough. When your character is not moving at all and is in a complete stand still, run a search and click the button "entered value" then type in "0" into the box. Most game will represent no movement as the number 0. Then move your character right or left in order for him to start the running/walking animation and pause the emu while in the running animation, then go back search and click the button that says "greater than" and click search. Now the 0 should be a greater value because the character's momentum has increased and is no longer 0. After you have run the search, go back to the game and hold down left or right plus the run button, now your character will be running even faster than he would during normal walking. Pause the emu while running, then go back to the search and click "greater than" and click search again. The value should be even higher than the value from the second search. After that, stop the character completely and search one more time for the value "0". There should only be one memory address left. I quickly did this for aladdin and got this value; 7E08F5, 1u
They're off to find the hero of the day...
jaysmad
Other
Experienced player (932)
Joined: 12/1/2006
Posts: 629
Location: Mom's
Wow! Thanks again Hero of the day
Joined: 8/27/2006
Posts: 883
You should really start a page to help newcomer with this kind of information, and a couple of other example like how do determine a critical hit in final fantasy or things like that. But that's really great help :)
Player (89)
Joined: 11/14/2005
Posts: 1058
Location: United States
You're Welcome jaysmad. Once you get the hang of it, you will soon realize how much easier this feature can make any TAS. After you have found all the useful memory addresses for a game, you should use gocha's snes9x memory watch tool which refreshes instantaneously (Snes9x has a lag of 1-2 frames). gocha has a post on this forum where you can download the program. As for RPGs and finding critical hits, I do not believe this can be calculated using any single memory address (though it may depend on the game). It is my assumption that the random variables that can create a critical hit are pulled from various memory addresses and as such the only way to create a critical hit is through trial and error.
They're off to find the hero of the day...
jaysmad
Other
Experienced player (932)
Joined: 12/1/2006
Posts: 629
Location: Mom's
(In EVO search for Eden) Let's say i want to know what item the enemy is going to drop... It will either be. Normal: 20pts, 2hp Glowing: 50 pts, 10 hp Can i find the memory address for this?
Joined: 4/11/2006
Posts: 487
Location: North of Russia :[
most probably no without analysing game behaviour or looking into disassembled code
P.JBoy
Any
Editor
Joined: 3/25/2006
Posts: 850
Location: stuck in Pandora's box HELLPP!!!
How about making a page about disassembling ;)
Joined: 4/11/2006
Posts: 487
Location: North of Russia :[
You may start right now ) Expecting WIP in a week~
P.JBoy
Any
Editor
Joined: 3/25/2006
Posts: 850
Location: stuck in Pandora's box HELLPP!!!
The whole point in the FAQ is that I get my question answered, not that I answer questions. No but really, I wish I knew all this crap about ARM and THUMB and what all the addresses even mean
Joined: 4/11/2006
Posts: 487
Location: North of Russia :[
P.JBoy wrote:
The whole point in the FAQ is that I get my question answered, not that I answer questions.
Writing FAQ willing to write a good one is the best way to learn. At least you will understand that single FAQ is just not enough to make one understand assembler code ^^
P.JBoy
Any
Editor
Joined: 3/25/2006
Posts: 850
Location: stuck in Pandora's box HELLPP!!!
That depends how long and detailed it is, it might be a video :)
jaysmad
Other
Experienced player (932)
Joined: 12/1/2006
Posts: 629
Location: Mom's
I'm currently working on SNES Aladdin with v1.43+v9. When i get to the Jafar battle, he reacts differently than in my last run. Now, my question is, how can i find the address that will indicate me the bosses reactions. Thx in advance :) BTW, i tried arriving in a different frame, more hearts, less hearts and not much seemed to happen.
adelikat
He/Him
Emulator Coder, Site Developer, Site Owner, Expert player (3573)
Joined: 11/3/2004
Posts: 4754
Location: Tennessee
Enemy behavior is one of the most difficult things to find addresses for. And most likely there isn't a single address related to it. Perhaps his actions are simply set to a global timer. If so, your only way of manipulating him would be to wait some amount of frames to enter the room/level. If his actions are actually random, then you could possibly find the rng. But that is hard. And even harder to uncover what values cause what to happen.
It's hard to look this good. My TAS projects
jaysmad
Other
Experienced player (932)
Joined: 12/1/2006
Posts: 629
Location: Mom's
I think it's an apple related thing :P Guess i will have to go back in previous levels to re-think my route and all. Thanks anyways =)