Finding Damage Values in Old School games. (A Tutorial)

I’ve been asked to find these values on multiple games, but I’m here to help where more people can do it instead of a few.

First thing is to get an emulator.Any Rerecord Emulator such as Mame RR, Snes9xRR, PSXjin, Fceu-X is Ideal but any that allows you to search the memory (Even Cheat Engine can be used).
For this example I’ll be using Shaq-Fu (@Cyntalan suggested it) on the Genesis (So I’m using Gens-RR link to the url here http://code.google.com/p/gens-rerecording/)

Now, we got to find the memory location of the life. So where going to bring out the Ram Search while you’re fighting (For Mame/Mess/UME Ctrl+F). The thing is we don’t know what value we are looking for, but we know how and when it decreases (and increase with savestates).

http://i.imgur.com/7ZIHt.png

This is the most common version Ram Search many emulators use it.

Knowing this we are going to use the Previous Value on compare to/ by part of the Ram search to help us do this.
First thing I like to do is hit equal to search to a few times to get lower the possiblities it can be the values.
Now that you did that we’re going to hit the opponent a few times to decrease the life now you did that go to Compare to column and select Less than then hit search to lower the possiblilties even more. Since in Shaq Fu life refills back up over time it isn’t wise to hit a few more times then hit search again you can wait awhile(or load the save state) and do greater than search till you life is full again to lower the possibility.

Now that we are down to a few values

http://i.imgur.com/79cli.png

We now have to manipulate the value to see which is the health and not the graphics of the health bar(In Mame/Mess/UME you can activate the debugger to allow access to the memory viewer.) Since we are on Gens RR we are going to make a cheat. This is done by taking the Address and then the value of you want that at needs to be in hex not the signed values we were looking at in ram search. So bring out Windows Calculator and do the conversion simple as switching the decimal to hex.

http://i.imgur.com/dk8AD.png

Now we know which address is the life we can set up Ram Watch. Hit new then place in the Address keep it on a signed values so you don’t have to do Hexemical to Decimal conversions.

What it should look like once you’re done.

http://i.imgur.com/7rxV5.png

Any questions?

Can you do it for me?

I personally like the old damage units more, like “almost half-way past the round indicator” or “around the letter ‘K’ in Makoto’s name”

Does ZSNES have any tools like this? I would like to mess around with some games.

EDIT: Looks like it does.

Try Snes9x-RR
http://code.google.com/p/snes9x-rr/

I’m messing around with Tournament Fighters on SNES9x and after some digging I found the P2 life and timer values. I wanted to make infinite life and time but the emulator eventually crashed. I thought it was kinda interesting that the timer in the game is displayed as hex.

Timers are usually in hex. Also if you looked in the thread I have the locations already and quite a few of the damage values too.
Also, decimal mode takes a lot of processing power you dealing with systems were coding really mattered. Where lines can be the difference of 30 fps and 60 fps.

Hey thanks for the steps jed! Is it cool if I pass the link to this thread over to killerinstinctonline.net forums? Maybe that way we can support the KI series from a competitive standpoint and not just for nostalgia. More productive than speculating about KI3 all day anyway.

Well this applies if there is no scaling being used. but go ahead and paste it up where ever.

Neat!

Noted. Thanks to this tutorial I believe I found damage values for both the SNES and arcade versions of Killer Instinct! Would it be possible to use Ram Watch to find stun values? This is a huge stretch but maybe even frame data?

Yeah, you can find stun that way as well a little harder as it recovers.

http://killerinstinctonline.net/index.php/topic,1000.0.html

Soooo… i’m having a tough time finding the stun address for KI1. Anyone want to help me with this? I’m not sure if i’m looking for a maximum value that is decreasing after each hit or vice versa.

2 Bytes Unsigned
P1 0x8808BC92
P2 0x8808BD92

Looks like 350 is the when stun triggers.

Holy shit YES thanks alot!!! Hopefully I can get this and some frame data typed up before Microsoft decides to add netplay to KI Classic.