I did not make this.
Awesome, nice job! Plan on trying it out later. One idea I have is to turn it into a training tool, to help you get the timing down for combos, similar to Guitar Hero. Think this could be possible?
Reading game memory opens so many possibitities. This is true coding skills. Good job !
No idea if it’s possible to extend the script to be able to select the game we want to read on, in order to make the thing universal or at least working on several Fighting games.
Not so far from being able to make a godlike version of my poor Okizeme trainer.
You can find relevant memory addresses using a tool like CheatEngine. It’s fairly straightforward. Once you have the memory addresses, you can access them directly from an AHK script. You can use the x/y positions for example to create dummies that will only use particluar moves at certain ranges or positions.
Hi!
I’m the guy who coded SF4SO. Thanks for the interest in my project.
ilitirit: Yes, you are right. SF4SO is written in C#, but I’ve done the same thing in AHK many times.
Shabrout: Unfortunately SF4SO will only work with SF4 because the memory addresses it reads are specific to SF4. It would be possible to make it work with other games, but I’d have to get the memory addresses from that game, and program it in. For your Okizeme trainer, I would definitely do what ilitirit suggested. Find the address for “knocked down opponent”, and X-location of both players. That way Okizeme trainer will know which side you are on, and when to reversal/block without the need for you to trigger it manually. Nice tool by the way, I didn’t know about it until now.
st3ady: Awesome idea on the Guitar Hero like game. I never thought of it. It would be possible to code that in I guess, but it would take some work. I’ll consider it. Thanks for the idea.
If you guys have any more questions, feedback or ideas, please tell me, and I’ll see what I can do.
Shabrout: Here is an example of AHK getting the players X-position from the game’s memory.
http://pastebin.com/6KFtZf2Q
Just run the script and press “1” while in a stage in the game.
Problem is exactly this compatibility thing
My vision of the App I made was to be as universal as the friend you could invite at home.
So no dll use, no interaction that need game data, pure human being emulation in fact. Compatible with any game as far as command stay the same (but this could be worked on). But this app can’t do complicated things and have to relay on combining dumb simple feature into pretty good ones.
Your vision was the opposite, very precise app that know everything the game do, but then hit the wall if OS change or game change. But there’s close to no limitation in what yours can do in a said game and the UI you could make with it in a Trainer version of it, would blow everyone’s mind.
I have a feeling like a lot of people in the community are good Dev but are sleeping on the possibilities.
Ah, ok.
The following is just an idea.
You could still do the memory stuff if you did it like this:
You get the addresses for the games you want (you already have x-position for SF4 now).
In AHK, find out if a compatible game starts/is running.
If you have the addresses for that game, use it.
If not, go back to how it currently works (with manual triggering etc).
And yeah, I’m sure there are a lot of good coders here. Maybe it’s seeing the possibilities that’s hard.
Easily worked around using a “plugin” system with a configuration file and helper tools. I’ve done this in the past. The config file stores which memory addresses to read for whatever plugin I use.
I think you over-estimate my coding skills. Going into C#, Assembler, dll stuff is a long way ahead.
I have already enough work to keep track of Html5 / PHP 5, CSS / LESS / Graphic Design / Being better at SFIV / AHK noob codes
I spent the last 20 hours coding the version 1.3 of Okizeme. Learnt new things for ahk. But saw also the gap between my code and real ones. I’m tired and need to go back to my main concerns.
But YOU seems to have all it takes to do this new version of a Trainer At first sight. At least way more than I do. Hands down.
This is a really neat idea.
It doesn’t seem to work for me.
I have the steam version, it might have different memory locations
not being able to set the keys ( and having weird defaults ) makes it basically unusable for a keyboard player like myself
Hmmm, never tried it with the steam version. You might be right. Does the peeker tell you anything useful when you are in a match? You need the newest version of SSFIV:AE v2012 for it to work.
I’ve been busy coding the other stuff, so I haven’t had the time to make the keys customizable yet. I’ll try to get to it once I got the time.
Oh, by the way, I’m a big fan of your work error1.
thx
the peeker doesn’t seem to display anything.
I’m pretty sure the steam version uses different locations.
I’m really impressed you were able to figure sf4s pointers out, I’ve helped razor5070 with similar things in the past but the pointers didn’t match between us and seemed to get overwritten by hit effects.
There are a few things that are really hard even with normal tool assist methods that would be neat to try out with this, like a truly optimized rsf combo, or some crazy gen kara focus stuff.
The pointers took some time to find, but I got there in the end. I’ve not tested this program or the pointers on the steam version of the game, but my friend tried it on his (russian I believe) game, and they seem to work fine on the non-steam version.
I don’t own the game on steam, so I can’t find the addresses for it. If I had them, it would be simple to update SF4SO with all the right addresses and make it work on the steam version as well. Hmm, I’ve already bought this game twice, and I’m going to buy Ultra when it comes too. Maybe I’ll buy the steam version just to get this fixed. No promises though!
I’m really bad at figuring out cool combos even when I got the tools to make it all automated. I tried to do some rsf stuff but couldn’t do more than 3 loops I think :). You really need to tweak it 1 frame at a time. When I did the video for Abel’s infinite combos, I realized that it’s not just the frames between the f.mk and the next move that counts. Every frame between every normal makes the whole combo different. The space between you and the opponent differs and the frame you hit the opponent has a lot to do with it too. Sometimes I actually had to slow down a lot to make it work. You probably knew all this, but I didn’t even know that you could extend Chun’s hk-legs into mk-legs. Took me a while to figure that one out too. Too bad it doesn’t work for you, because I would have liked to see what you’d come up with.
I’ll give looking for the pointers another try when I get a chance.
you did a good job of it, I saw some things I hadn’t seen before in your combos
Those able infinities were a good test for those reasons. Every frame doesn’t count if you do it right, but there are some surprising frames that do count.
The trick to doing rsf loops is to start with a focus attack or jump in, beacuse that lets you get closer then just walking up, and to do it vs seth.
If you could help me out and get the pointers for the frames, and x-position, I think I could make this work with the steam version. If you want to do this, there’s no rush, and if you don’t, no problem. Just putting it out there.
To get x-position, you need to search for a float value. When the character is in the left corner the x-position is -7.5 , in the right corner its +7.5. The starting position of P1 is -1.5, and the starting position of P2 is +1.5. Remember to run pointerscans on the address you get to get a pointer. This needs to be done for both players.
To get frames, you need to hit a button (hk for example), then pause the game almost instantly. Try to guess how many frames it has been since you pressed the button. Search for a 4 byte value between let’s say 0 and 60 (1 second in frames). Unpause the game, and wait some more, then pause it again. Search for increased value. Do this some more times. Then hit hk again and almost instantly press pause and search for values between 0 and 60 again. After you’ve done this some times you should end up with an address to a number that increases every frame you are not pressing any buttons, but resets to 0 if you press a button. Run pointerscans on this address to get a pointer. This needs to be done for both players.
Those are the main ones used by SF4SO. I’ve used Cheat Engine to get my pointers, it’s relatively easy to use. A tip that might make things easier is to go into settings in Cheat Engine and put “Update interval” and “Found address list update interval” to some small value (16ms for example). That way you can instantly see whats going on. You will need to exit and re-enter the stage between pointerscans, and when you got a pointer you think works, quit the game, restart it, and test if it still works.
I know this is a lot of work, but if you got the time, I’ll add the pointers you find to SF4SO.
Just finished uploading SF4SO v0.4. This one should work with both the steam and non-steam version of SSFIVAE. Also, I added Abel’s infinites to the demos.
I have not yet made the keys customizable as I haven’t had the time, and in my opinion steam support was more important. Sorry.
If you guys are interested, get the new version here:
http://www.slitherware.com/sf4-show-off/
Remember to tick the “Steam version”-checkbox if you have the steam version.
awesome, it works now
It should probably be called, “frames since last button press” and not frames since last move.
It would probably be possible to make a hitbox viewer like this, right?
Yeah, sure it would be possible. I think I already know where some of that info is stored in memory, but then I’d have to program an overlay on the game, and I suck at those things. And you’re right, it’s frames since last button press. I’ll try to remember it when I work on the next version.
If you encounter any bugs, just tell me and I’ll see what I can do.
Any chance of adding the stun data to the peeker?