Thank you for your beginners thread it is very helpful and i have found many good links with match up data and strategies.
Thank you for the link. I found everything i need now i can get to T.R.U.S.T
Thank you for your beginners thread it is very helpful and i have found many good links with match up data and strategies.
Thank you for the link. I found everything i need now i can get to T.R.U.S.T
cool stuff, congrats!
I have translated some of the stuff into Portuguese, and posted it in a local forum. A link to Kuroppi’s blog with XSPR’s extra explanations has been added to the Wiki, too.
Awesome! Thanks oldschool and Kuroppi, I appreciate it.
This is really amazing! But when I press the roundhouse button on my horiEX2, it crashes the program. Any ideas?
Thanks for checking it out! The crash you describe would definitely be a new one- have you tried using your stick with the other lua script apps (throwbox display etc.)? You can test by clicking Execute from TRUST, and then in the lua console window that appears stop the script and load one of the other ones. Is roundhouse mapped to Button 6 in the TRUST Mame, and possibly anything else? What happens if you map roundhouse to a keyboard key or try it with another stick? Also I haven’t tested this on 64 bit yet, only Windows 7 32 bit and Windows 2000.
If I run trustsf2-hitboxes.lua, then roundhouse works normally and doesn’t crash. But if I load any lesson script (like the first block standing script), it crashes.
roundhouse is mapped to joy1 button 9. that isn’t mapped to anything else. If I map roundhouse to a key, it works fine.
If I map the same button to forward, it crashes too. If I map a different button on the same stick to roundhouse, it works. The button that keeps crashing is the “RT” button on the hori ex2.
I tried a few times but could not get a crash. The TRUSTsf2-hitboxes.lua script is just the hitboxes script and doesn’t check for button presses but if that works normally it’s definitely strange behavior… you didn’t happen to edit anything in input-moduleST.lua by any chance? (no reason to do so) If you are able to remap roundhouse and it’s just the HoriEX2’s RT button, this won’t matter but just for kicks please confirm this as line 51 in that lua script file:
i[n…“HK”] = {x+dx*(n-1)+0x40, y+dy*(n-1)+0x8, “P”…n…" Strong Kick", “P”…n…" Button 6"}
Is there any error message at all or do both windows (both Mame and TRUST window) just close? There may be a black box appearing (briefly) but that is normal to put focus back on the TRUST UI window after exiting the emulator with Coin/Back button (the other thing I was going to ask to check was if it was mapped to Coin but it seems like it’s restricted to RT button on the HoriEX2 and/or the input module lua script. I tested this with my HRAP-EX (Hori Real Arcade Pro EX), and I don’t have a button 9 to configure to test it with, though all others seem to work fine in lesson scripts (Buttons 0,1,2,3,6,7,10,11). The closest thing to something like this was a crash when I stopped a running script in the lua console once, loaded another one (Ran it), then Coin to exit generated a crash dialog like Lua Error in LOAD function:
[path of trust145cRoundhouse.lua]:771: [etc., complaining about my changing the framediff variable] but I couldn’t reproduce that and suspect it has more to do with trying to load and track multiple states within the same lesson script than a button issue.
If anyone else has a HoriEX2 to test with please let us know if you can get this to crash with its RT button!
Is there any way to generate random numbers within a script? eg. Suppose I want P2 to walk/wait for a random number of frames between 12 and 20?
The short answer is yes, I’m pretty sure it can be done (by hardcoding it or editing MacroLua to interpret it) but it’s been a while since I looked into this. That was going to be one of the next main features, eg it would loop slightly different scenarios each time.
WALL DIVE
I took a close look at the wall dive in TRUST since you guys now know there’s more to the wall dive than previously believed.
That counter to Sector 2 is not as easy as you may think, even if you know the theory. I investigated this in-depth and finally got it. I also came across some wacky random things along the way. This is a report on the findings, which includes links to two videos I put together (below). The video uses a script that starts out showing a “Practice” script you can use to try countering or blocking each of the three sector attacks, however in the video I just use it to illustrate (explicitly) the difference between each sector. Note the white crosshairs that define each character’s center to make the distinction. After the Practice, I comment that out and uncomment the Blocking section of the script. After Blocking, I get into the Counters which involve Ryu’s shoryuken/dragon punch (DP). First I cover counters (a) and (b) for Sector 1. Then I get into Sector 2’s counters.
Finally, Sector 3 is shown. In the second video, I only cover a successful Sector 2 counter, which I found only after a lot of trial and error.
Countering Sectors 1 and 3 work fine and as you might expect, however Sector 2 counters are anomalous as MAO explains and require strict input. I have been in touch with MAO and he was also not quite unsure as to why the first video’s Sector 2 counter failed (a dp hits when he doesn’t press punch for the claw, yet Ryu gets hit when claw does press punch for the claw). Some subtle but elusive edits to the inputs made the DP counter successfully though.
I can share the savestate I used, however it maybe easier to simply create the savestate yourself. Basically choose claw for P1 and Ryu as P2, and save the state a few seconds after the first round starts (don’t move the characters). You may need to change your Windows OS permissions of the Program Files\TRUST\sta\ssf2t\ folder so you can create files there, in case you try to make a savestate but you don’t see it there. When you run the script, I highly recommend setting the Slow-Motion speed to Half Speed (select this above the Execute button) as in the videos (links below).
BLOCKING IT:
For minimal input to block, I think you can just do it on the exact same frame Claw presses punch in the air for Sectors 1 and 3. To block, opponent must START blocking often by the first or second frame where Claw’s claw-arm is below his body and orientated horizontally (the next animation frame has both arms in like a “V” shape, where his wrists overlap and after that, both arms spread out when the red box starts). Due to the frame-skipping nature of ST, which is how it obtains its game speed, this particular animation frame can take as few as 1 frame of the game, or up to 2 to 3 frames of the game, depending on which frames get skipped (which is determined by an erratic pattern). The wall dive itself is very quick, as Claw can shoot past many pixels of the stage during this time and there’s no way to react but for frame-advancing, just know that sometimes you must have already have started to block during one of the “claw-arm is horizontally under him” frames. It seems to take 3(?) or so game frames to block-- i.e., from the frame you have already started pressing the blocking direction on the stick, until the frame when you are actually able to block moves in the game. (So say if you started blocking 2 frames before you see any red box, it is too late and even though you blocked before the red, the game hadn’t registered it yet to establish your state as blocking yet).
In order to block the Sector 2 attack, specifically, you need to START BLOCKING 2 frames BEFORE claw will press the punch button. The blocking of a Sector 2 attack is a guess (as are the others) and you are NOT REACTING to anything you see on the screen because by then it is already too late. The first instance of a Sector 2 attack in my script has claw pressing punch for the wall dive in the air on frame 302 and this means you must start inputing block (to the farwall side) on frame 299.[note, might be different from 302 as I’ve edited the script since writing this, but the point is that Sector 2 blocking is slightly more complicated in that you must hold the direction longer than for the other Sectors.]
WIDE FACTOR: With regards to the nature of blocking a wide attack (I imagine Zangief’s splash fierce (down+big punch in air) and moves like that might work similarly? haven’t tested to be sure)… if the opponent starts blocking the wall dive that will hit in Sector 2 while claw is still on the far wall side in the air as he comes down, the opponent can successfully block. Otherwise, for Sector 2 attempts, he must block it as a cross-up i.e. hold the direction of near-wall side. He can start blocking it earlier in that direction; in any case, in the example I have of Sector 2, the “claw-arm is horizontally under him” frame occurs after claw’s center (white crosshair X value) has already passed Ryu’s center.
EXTERNAL MIX-UPS: This only deals with the wall dive itself, specifically its 3 Sector (and 3 counter and 2 block) possibilities. Since it is dependent upon something to GUESS which Sector of the 3, as opposed to it being something to react to, there are other things to guess as well while you’re doing the guessing. Maybe it’s one of the 3 Sectors of the wall dive, but if you try blocking and claw does not press punch AT ALL, the wall dive is so fast that he can land and throw from the ground. I haven’t tested this but there are lots of other potential threats besides the 3 sectors of the wall dive itself.
COUNTERING IT:
Countering Sector 1 attacks of the wall dive may vary to some degree from my example, which I think does it kind of late (a). So you can also get it out if you do the DP earlier (b). In my first example (a), because it is late, the Sector 1 wall dive attempt actually winds up with claw on the nearside wall at the very end as he gets hit by the DP (Ryu moved to the right slightly and the hitting has an effect on it as well).
Countering Sector 2 attacks with the anomalous yoga flame motion and releasing the punch buttons proved very difficult. See it’s own section for how to do it successfully. One time, I release the jab (light punch) button while claw is still on the farwall side, and the other two when he has crossed back over to the originating nearwall side but no dragon punch or fireball comes out. HOWEVER, tacking on a light kick while releasing light punch (i.e. a “4” to the inputs) DOES get a tatsu, which actually causes the wall dive to whiff, missing entirely but it does NOT actually counter with a dp.
CHEAPNESS:
The wall dive is the easiest move in the game for the biggest gains, and has tremendous ambiguity. Getting the counter to Sector 2 wall dives is
difficult at best.
Other characters have other attacks in the game that can be difficult to block against, although generally have more to do with the ability to react instead of guess in order to block correctly. The same is true for countering, and in countering it’s not just two possibilities but three you have to guess from. What other move, setup, or situation requires the opponent to guess from one of THREE possibilities, especially one of which requires anomalous input-- a yoga flame motion instead of srk motion-- in order to successfully counter? Does any other move or tactic have effectively three attacks in one? And one of those three, an option select by itself? Sector 2 counter attempts will often incur block damage, hit you clean, or whiff completely outside the small window of opportunity.
I had seen this in Japan many times before MAO taught the tech, but American claw players probably had little idea of what was going on or just how ambiguous it truly could be, attributing failure to counter wall dives that fell into Sector 2 (both their own as well as others’) as “skill”. Some really did not appreciate being told there was more to understand about it, either.
The first video (no sound) is here: [media=youtube]aUyYGZy-usA[/media]
The second video (low sound): [media=youtube]zRpMq8ftW9g[/media]
The Sector 2 counter failing is illustrated from 5:45 until 7:45 in the first video, which shows a little inconsistency and no successful counter. (It also shows an attempt at a counter that winds up being a block for some reason, ONLY on the first iteration of the script. Ever after, it fails to counter and gets hit by the wall dive.)
I urge others esp. claw players to contribute in the effort to come up with the solution independently. There are two factors I suspect. One is the initial inconsistency (first time the script runs, Ryu blocks Sector 2 attack (failing to counter) begining around 7:10 in the video, but each iteration after that gets hit by wall dive). Again, that just plays into the ambiguity favor of claw and one more thing to fear by the opponent, outside the scope of any particular skill and just possibly an ST problem perhaps due to ST frame-skipping. The other is that claw’s dive hitting BARELY on the Sector 2 side (i.e. JUST outside Sector 1 or, the cross-up point, note the white crosshair plus sign in the video frames) could have claw hitting too HIGH in the air (not deep) AND at the same time not enough time to turn around(?) or like, for the yoga flame motion to be Executed quickly enough so that it both starts on Sector 1 side AND has enough time/space to finish once claw reaches Sector 2. btw Note that, in order to block Sector 2 attacks, you cannot just block for as little as one frame (as you can for Sectors 1 and 3) and that you must block for longer over more frames.
MISC:
It doesn’t seem to matter which side Claw lands on. Sometimes claw lands on left side after knockdown, sometimes right. but it hits in Sector 1. Just BARELY in it (i.e. Claw’s center line is the very next pixel over from Ryu’s center line, one to the far wall side). Despite having the same save state and exact same inputs each time, I suspect the difference may have to do with how many frames ST skips to achieve its speed. The goal was to get the center lines of the characters to line up: I tried to get the white crosshairs’ X value to be the same for each character, i.e. Claw is right on top of Ryu dead center for maximum ambiguity or as close as possible to it. Due to the wall dive’s speed in this scenario, just one more frame of left on the stick for Claw would have him go 4 pixels the other way past the crossup point.
I think there are 20 frames from the time Claw starts the move (up+farwalldirection+kick) until he reaches the far wall. Trying to do the DP one or two frames earlier. As it is, I keep getting hit. Anb if I try to do DP two frames earlier, the DP’ll whiff (not counter at all). So from my initial “with and without claw” version of the script, one frame earlier DP gets it blocked, and two frames earlier DP whiffs (neither a counter as desired).
To fail the counter and get a BLOCK, do the yoga flame motion such that you hit down and no other input (not down-right and not down-left) during the time that Claw is directly above you (i.e. the cross-up point, i.e. when you’d switch directions if you were a charge character in order to keep your charge when crossing up/being crossed up). If claw messes up and does presses punch in the air too late for too deep a hit, you can DP this but if the claw player does it correctly (hits high) you cannot seem to counter this at all (block or whiff a DP, but not counter a properly done Sector 2 attack).
If you attempt the counter to Section 2 too early, you’ll wind up blocking, and if you tack on a kick press for tatsu as you release or next frame after releasing punches, the wall dive will hit you clean out of the tatsu. I tried running the script asynchronously, and a DP came out but I did the claw punch (3) earlier and it whiffed.
I found it using manual inputs for Ryu and frame-advancing through each time. It barely hits by 2 pixels with this way- will look at it more. Usually whiffed by bordering the hitbox (blue line next to a red line of the hitboxes). For Sector 2 - Counter (h), do the following steps:
Turn on input display and hitbox display while it runs the first loop.
When the next loop begins, press all three punches and keep them pressed down for P2@Ryu manually (use jab first so it completes quicker). Actually this isn’t required, you can just wait until the yoga flame motion is completed to press weak punch and it should also come out.
Pause around frame 100 (this is after Claw jumps off farwall but still high in the air before he presses punch)
Use frame-advance a few times until frame 112
Start holding down P2’s right directional. You’re still holding all three punches too. Frame-advance exactly one time to frame 113. (You can confirm this by input display if you have that on)
Hold down P2@Ryu’s right and down directionals and frame-advance to frame 114.
Let go of P2’s right directional, still holding down (and all three P’s), and frame-advance to frame 115. Note, at this frame or around here is the frame the characters switch sides.
Hold P2’s left and down directionals, and frame-advance to frame 116.
While holding left, let go of down and weak punch, then frame-advance to frame 117.
Let go of mid and heavy punches and keep holding left, then frame-advance to frame 118 or a few more. YOU HAVE TO HOLD LEFT after releasing weak punch. You’ll go into blockstun otherwise if you don’t do keep holding left!
A DP should BARELY hit by one or two pixels max.
Try the same steps again, except exactly one frame later (start inputing from frame 114 instead of 113) and your DP will whiff.
A DP will also hit starting another frame earlier at 112, 111 and 110 but blocks at frame 109.
A BLOCK will occur if you attempt it from frame 109. THAT IS YOUR WINDOW, four frames with this scenario.
A WACKY RANDOM THING will occur if you attempt it from frame 115. Try that 5 or 10 times in a row, from 115. I’ve gotten a fireball, gotten hit by the claw, and whiffed a DP. Wacky stuff also happens from 116.
From 117 and higher, it’s too late and the claw should hit you.
XSPR
First off, well done and thanks for doing the research on this. Quick question: Why were the counters tested from a standing position rather than on wakeup?
Thanks again for this research!!
Good question- while it would be more practical to include knockdowns as well, I just focused on more basic things of the theory itself, and defining the three sectors. Also the savestate was easy to work from and it allowed me to work with more constants rather than add one more variable, e.g. for knockdowns, recovery times could play into that more for variance, possibly. Claw moves so fast in the air during the wall dive which made it a little easier too.
Without seeing it all go down frame-by-frame and the white crosshairs of the characters’ centers, a Sector 1 looks an awful lot like a Sector 2. Since the claw player still benefits even though he may not know exactly himself whether he got Sector 1 or 2, due to the sheer ambiguity of the wall dive, it’s very easy to walk away from a lost game thinking that it was one way when it was actually the other or that your stick was broken etc. So I took pains to illustrate something so basic as, ok here’s just how to simply block it. If anything, maybe I’ll refer to these studies myself when I lose to it and felt overwhelmed.
Knockdowns can be added without too much difficulty in any case. It would also probably be a good idea to add scripts of what happens when P2@Ryu “guesses wrong”, and does the wrong counter (e.g. Sector 1 counter for a Sector 2 attack, etc). Simply understanding, ok I got that one wrong because I messed up vs. I got that wrong because I guessed wrong of the one out of three choices might help.
I have no idea how the technical side of this works, but it looks absolutely brilliant. well done! I wonder if this could work for other old games? Would love to see a similar tool for KOF 98.
Ah ok. Thanks for the response, and once again, thanks for all of the research! These tactics alone have proven how lucky we are to have a program like TRUST for ST.
I thought I posted something important in this thread already but it seems I overlooked it all this time. If you have used TRUST to make your own unique customized scripts, and are on Windows 7, the savestate you create gets kind of “hidden” which is probably really frustrating. You can still use it and refer to it in TRUST, eg you saved a gamestate to slot 7 and can reference it as &7.sta in a script, however you can’t find it Windows Explorer and can’t rename it. You can find it in your “Virtual Store” which is a folder kind of hidden itself. Open Windows Explorer or command prompt by going to C:\Users[your user name here]\ and click inside the path field at the top to edit the path. Add \AppData\Local\VirtualStore\Program Files\TRUST\sta\ssf2t\ and it should be there:
HOW TO RECOVER YOUR LOST SAVESTATES ON WINDOWS 7 (and Vista?):
C:\Users[user]\AppData\Local\VirtualStore\Program Files\TRUST\sta\ssf2t
Go to that folder and copy it back to TRUST\sta\ssf2t\ (the real folder).
You can rename the file eg 71.sta and refer to it that way i.e. in scripts write &71.sta and it will load that savestate. And each time you want to make more savestates, you can do it the same way eg always press Shift-F7 to make the savestate, and just keep overwriting 7.sta after you have renamed them to other numbers.
Sorry for missing explaining this, I’m sure this must have confused some people! Basically what happens is, because TRUST gets installed to Program Files, when you create data that doesn’t use UAC, newer OSes put it in the Virtual Store instead.
made this script to test reversals. it’s set up for the script to control Ryu (P2) and the user control Chun (P1). for the original save state, i just had ryu push up against Chun and saved it. if you want to switch characters, you may need to change some timing. here’s a Youtube demonstration of the script in action: [media=youtube]NzAOkL7r3nI[/media]
just copy and paste the below text into one of the custom .MSI files in /Trust/Macro/macro & put the state in /Trust/sta/ssf2t and it should work.
&69 W80-
D.D6.W10,_L.W54.^L.D6.W80,^D,
W120!
Good stuff! btw your video is private, so we can’t see it yet. I was able to set it up fine as you described, but I just wondered at first if you had Chun near the corner after getting knocked down or not when I was making the savestate. (She’s not or at least, I got it to work without anyone near the corner… also, she is supposed to get knocked down, right? in order to get the Reversal throw when Ryu attempts the second low hard kick.) I’m really glad to see this- exactly the kind of practical thing players can use and it’s kept very simple and straightforward!
I could definitely not get the timing at first. Looking into the proper timing using frame-by-frame, I noticed that you need to throw on either frame 152 or 153 only. 151 and earlier, or 154 and higher will fail. Well, that is according to my particular savestate- might be different on others’ savestates, with such strict timing and how ST skips frames. I.e. maybe you guys will only get one frame window of opportunity instead of two frames. Please confirm (pause a little before frame 151, frame-advance while holding Right direction on stick plus fierce (3) hard punch, and try again on next loop to confirm for the next frame). I got Fei Long’s stage for whatever that’s worth but I doubt that matters whatsoever. The timing is such that you input the throw on the frame that you start to SEE ONSCREEN Ryu’s crouching low hard kick start to come out, like only the first frame. Here’s my Custom7SuccessReplay.mis script, below to complement yours. I added +.R3 - right after Ryu’s low hard kick. It can also be +…R3-, but not +…R3-.
XSPR
#&77 W80-
#D.D6.W10,_L.W54.^L.D6.W80,^D,
#W120
&77 W80-
D.D6.W10,_L.W54.^L.D6.
+.R3 # <— XSPR adding P1@Chun’s inputs here. +…R3 also ok. +…R3 fails.
-W80,^D,
W120
!
Thought I switched the vid link, but guess I forgot. Oops, should work now
Chun is near mid-screen, and she should be getting knocked down by the first c.HK. I was toying around with it by first trying to reversal throw the meaty c.HK, and then going for a reversal SBK on THAT knockdown if the throw failed. I couldn’t get the reversal throw working in frame-advance mode though, is there some trick to it?
My state seems a little different frame wise too, when I toggle the hitbox viewer the red box on Ryu’s c.HK doesn’t become active until frame 155, and Chun gets sweeped on frame 156.
I uploaded my save state if you want to check it out, here’s the link. Should be P1 Chun vs P2 Ryu on Ryu’s stage: http://www.2shared.com/file/ASUpS0Jk/69_online.html
There’s definitely something involving frame-skipping on my save states too. I was trying to get one where you could attempt a built-in DP vs. a reversal move (Chun’s Upkicks), but I could never get a consistent reversal. Most of the time they would be reversal, but occasionally not and sometimes don’t come out at all - on the same save state. Changing the frame she inputs kick on up or down by 1 can still get a reversal message sometimes. Really weird.
I can make a quick video explaining the process I go through in order to find it, but basically it’s a little trial and error. You start by saying, ok Chun has to throw AFTER she gets up, and BEFORE she gets hit by the 2nd crouching hard kick-- so try it on one frame in there. How to actually try it involves turning on input display (hotkey 5 which for my setup is the “5” key on my keyboard), and pressing P to pause it right before she gets up or as she’s getting up (this is around frame 140 or so). Then while it’s paused, frame-advance by using the backquote key. Ok so on my first try, let’s say frame 150 or so looks like a good time to attempt the throw. So I frame-advance to 149, then hold down P1@Chun’s right direction on the stick and hard punch or mid punch, and while still holding those inputs, frame-advance one more frame to frame 150. I can confirm I got the desired inputs (and didn’t “mess up the move” so to speak) by looking at the input display in lower left corner of the game window. That one frame worth or inputs should be enough to get it, so I can let go of Chun’s inputs and frame advance a few more times. I see that Ryu trips her, so I know that it’s not frame 150, and I have to try it on another frame. So I press the P key again and let the script loop again, then press P to pause it again around frame 140 or so, and frame-advance to say frame 154. It’s too late by that frame so I try it all again, by unpausing and letting the script cycle again. I got it on frame 152. (I usually confirm to myself that it actually works by trying it a second time from 152, just like I often press “C” on a calculator like 5 times even though pressing it once does the trick, or like how some people walk up to other people waiting for an elevator and the button is ALREADY PRESSED AND LIT yet they can’t resist pressing it, like what, that’s going to make the elevator come any faster?) Ok so that works, 152, maybe make a note of that, say add “# frame 152” in the script itself. But I want to have a more comprehensive understanding of the timing window, so I’ll reconfirm that 151 does NOT work and also try 153-- which does work. Then, I’ll go back to the script, copy it and paste it right below, comment out the original above and work on editing the copy as an automated solution/Observe version by adding Chun’s inputs along with Ryu’s. I can’t say just say “Chun throws on frame 152” in the script, so I again have to go through a little trial and error, and use frame-advance again to confirm if my first attempts are too early or too late. I.e. I know it’s 152, so after Ryu’s second “D6” I add +R3- but that doesn’t work, but since I know it’s 152 I can tell if I did it too early or too late using frame-advance when I watch it play back (again, with input display turned on). Another tweak or two will get it.
btw I noticed you said “first trying to reversal throw the meaty c.HK” but I’m not sure about the term “meaty” (never have been). I think the term was meant to refer to attacks that were already in the hitting stage or well into the hitting portion, as opposed to what the script has where Chun can stand up before the attack starts hitting and Ryu is still in the “start-up” stage of his cr. HK attack. Chun has a chance to throw because of this (ie I don’t think you can reversal throw if Ryu delays his attack such that the hitting portion occurs as she finishes getting up-- and if I’m wrong about that you can test it by just making Ryu’s cr. HK start slightly earlier in the script).
[URL=‘http://www.2shared.com/file/ASUpS0Jk/69_online.html’]
No I think that’s the same for my savestate too, you’re fine. 155 and 156 for me too. Keep in mind that the hitbox viewability presents boxes one frame behind I think. So basically by that point, if Chun hasn’t already completed her throw inputs (or started blocking low), she will get swept.
That sounds interesting but I’m not sure what you mean. Can you describe that savestate in more detail or post the script itself? What is a built-in DP, is that like Ryu will do a DP or block or something safe? Reversal messages should appear regardless of whether or not they actually hit or beat out other attacks. Sometimes in actual games we get a fireball instead of a DP which also gives the message (but loses to the opponent’s attack).