Yes, and sorry about that- At some point, the basic idea is that every lesson should function as the Custom1 lesson does. The current version, however, Observe behaves just like you said, as if you press Execute. There is a separate script for it, however I have not actually scripted P1’s moves. I’m hoping the community can help me out with this to flesh it out more (and/or share/add your own scripts and lessons). I should have made this clearer.

(Don’t worry about button config, that doesn’t affect it at all- once it’s configured, it will stay that way until changed).

Also quite a few of the default lesson scripts as they are could be better. Again I’m hoping others will get their hands dirty and start tweakin.


Is there a place you would recommend for learning the base language? Also, are there any other tutorials that might help us work on the project?


Looks really nice!

AVG also reports lua51.dll as a trojan.

By the way it would be nice with the installation as a simple archive. I prefer not clogging up the windows register more than nessesary :sweat:


Great intro to get familiar with the lingo: MacroLua script tutorial here: [media=youtube]FiyUIjC8sm4[/media]
More details here (keep an eye specific to mame-rr) MacroLuaDocumentation - macrolua - This document is also available in the download package. - input playback and recording utility - Google Project Hosting

A great way to get started is to make a lesson for a character you play (can be as simple as running a loop of a particular setup or situation you want to practice for yourself, ie scratch your own itch first) with a savestate, and implement it by replacing one of the Custom lessons e.g. Custom2. You can open the file in Notepad and edit its .mis macro script. If you replace the state to load (with the &110 or whatever number), keep in mind that the name of the actual .sta savestate file must be an integer NUMBER ONLY like the others you see there, i.e. not something like “practiceFromHere4.sta” but “499.sta” is ok (and try to keep in line with the numbering scheme of the others while you’re at it).

The center pane of the TRUST app is HTML, so right click in the pane to “View Source”, and the path for the html file you’re looking at is displayed in the bottom (left) edge of the TRUST window, so you can open that file in Notepad or some editor and change the text.

As I mentioned above, all I can say at this point is that it’s a false positive for lua51.dll that is included in the installer.

Yeah there’s a lot of .lua files. You can run mame.exe directly by double-clicking it, and then Ctrl-L to load the Lua console, Browse button and load trust.lua, then Run button. You will see yellow menus (start and joystick to navigate). This was the original design, however it required you to “renavigate” after you already selected the lesson in TRUST’s front end before clicking Execute/Observe.


For whatever reason, this thread was not coming in on my subscriptions on the old forums. Now that I actually see your response to my question I will definitely see what I can get started on!

If I come up with anything that is worth anything I will definitely let you know!

Edit: If you want, you could let us know if you are making any additions so that we don’t repeat the same work.


I’m not working on any additions in particular at the moment. (I did my share! Now it’s your turn people.) One place I’d start is making Observe solution scripts for what is there before moving on to other characters, and even fix a lot of the lessons and basic scripts themselves. But if no one else gets involved it won’t be as fun.


Great Job XSPR :smiley:
Look foward to returning to internet usage, 1 year without has been taxing…


Here’s a great little script put together by fatboy. I’m posting the Observe /SuccessReplay.mis file; take out the P1 inputs line for the Execute file:

You are P1 sim. Duck P2 dictator’s headstomp

and punish with standing MK.

<#Player 1
W100._D.W10.^D.L5.W10 # DELETE THIS LINE FOR EXECUTE, leave it in for Observe
/#Player 2

Copy and paste that into one of the custom scripts, replacing what is there. For example, Custom 2:

  1. Select Custom 2 lesson
  2. Tweak menu, Edit Selected Lesson’s Script
  3. Select all and Paste in the above script, then Save it. Delete the indicated 3rd line.
  4. While Notepad is still open, Open (view all files), open custom2SuccessReplay.mis
  5. paste in the script again, this time leaving in 3rd line.

So custom2SuccessReplay.mis is for the Observe button, and also custom2.mis for the Execute button (and for custom2.mis, delete the indicated 3rd line beginning W100).

  1. make the save state file:
    The save state (50.sta as ref’d in the macro script) should have sim as P1 on far left of screen, and dictator on far right, at full screen distance and sim is closer to center of the stage so he when sim ducks, he will fly over to the other side and sim can hit him on the other side with MK. (shift F7 to save a state, then rename the 7.sta file in the \sta\ssf2t\ folder to “50.sta”)

Again, the html file (found in \TRUSTlessons\custom2.html ) can be edited so you can explain the setups here.


i’d like to get started with this, but i don’t know what rom i need to make it work. i won’t ask anything specific on here, but if someone can pm or email me to point me in the right direction i’d appreciate it. is my email


someone posted it in pasky’s HUD thread. look there.


What exactly is the numbering scheme?

For instance, there are currently 6 moves listed under Special Moves.
Currently these are numbered 150 through 175 in multiples of 5.
However the following section begins with 210.
This leaves room for 6 more special moves.
Even ignoring moves with the identical inputs there are way more than 12 special moves in the game.
Should I stop using multiples of 5? Do you mind if I just rework the number system?

Currently my plan is to flesh out the special moves section with a complete move set section for each character. This way, if anyone (like me) has trouble with a specific motion, they can select their character and the move they are planning on practicing with a decent savestate already in place.

Further questions:
Is there an easy way to edit the lesson tree on the left?
Are the individual .lua files for each lesson identical? My linux box isn’t online so I can’t use diff :frowning:


You don’t need to use multiples of 5 at all, it’s just a general pacing of the lessons so I can squeeze in others later. Customized macro scripts should go in the range from 20 or so to about 98. It’s not too strict, as long as you don’t overwrite something else with the same number that you want to keep and haven’t backed up yet. 100 to 999 are kind of reserved for the lessons there (and that may be there as more lessons get added).

Sounds good, if you do those I can update it to include those under the Special Moves branch in the next release. I focused on Ryu but there could be something for each character at some point. One way to approach special moves can restrict it to a particular character, however since the required motions overlap with other character’s moves, it might offer a change of pace if you mix in other characters a bit. Since it’s a repeating script, the idea is not exactly to have the player anticipate what the opponent will do of course, so I recommend approaching it like you’re creating a kind of baseline rally warm-up in tennis before a game, where the point is not to score a point but to keep the rally going. But if you want to do it a particular way for some reason, go for it, I look forward to what you come up with. I think the most important thing is coming up with something that helps to keep the player engaged and focused. It doesn’t have to be too complicated either, in fact it’s important to keep it basic and just provide something like a simple goal to strive for. E.g. a common theme or task can be, “Get out X number of special moves before the script loops”. A “mini-game” as Maj described would be great and keeping it simple goes a long way for that. Did you see that Guilty Gear Flash app thing that tested your reaction time? It was great in that it helped you get accustomed to the moves themselves. It gave you a specific number of a certain precision, and comparing your number with others was like a mini-game. Measuring performance can help increase performance tremendously if someone’s serious about getting better.

You can’t edit the lesson tree on the left. I may update those from time to time when new releases come out, but intend to do so infrequently. If you do all the special moves as described, I can update it cause that could be very helpful, but if people are just sharing a few scripts, they can fit in the custom slots.

Yes, most of the .lua files are identical. If you want to take a look into the Lua code, just know that it can get a bit hairy and the numbering scheme helps to keep things consistent and more organized. Open one in a text editor or IDE and scroll all the way to the bottom. If your editor displays line numbers, take a look from line 1310 to line 1321. That loads the specific .mis macro script. Now, one good reason to edit the Lua script would be to display images. One feature I added was the ability to draw images on any given span of frames over the course of your .mis macro file playing. In the Lua code I call these “Frameflow objects”. For example, the fireball lesson’s input images display such images. You can also display text and lines. Every script displays the text “PRESS COIN TO RETURN TO MENUS” from frame 20 to 280 (or the last frame if less). I did this in the Lua code itself on line 1317 by creating a frmText object, then adding it to the frmTextTable on 1319. For images, put them as .png’s in the \TRUSTlessons\images\ folder. You’ll have to create a Frameflow object for each image you want to display, and add that object to the frmIllusTable table.



I think I may have been on a slightly different page from you on a couple of points. I’m getting a better sense of where you are going.

For the special moves section in Beginners I was thinking something a little less involved I think. I expected the loop to be just a long “W200” with two different state save loads (one where the character is on the left and one where the character is on the right). At each state save load the player would be expected to try to perform as many dps as possible in that direction prior to the next state load.

Some motions in the game simply need to be ground into your brain.

I was going to create a full set of save states, 2 save states for each character. The first state has p1 on the left and the second state has p2 on the right.

The mis file would consist only of

&10 # p1 on left
&11 #p1 on right

The solution .mis files would each contain p1 doing the correct motion for the move listed.

Unfortunately, this would end up creating approximately 100 lessons by itself (if each character’s full moveset is included).

I realize that this is not what you were initially looking for. I would be glad to help with some of the higher level scripts as well (mini games, fireball wars etc). I’m just hoping that the Special Moves (and possibly the combos) portion of beginner could be a good section to grind out the muscle memory I don’t yet have.

If you really really don’t like this idea I can put it together for myself, but you don’t have to include it in the regular build. However, if that is your decision, I would be super appreciative of access to the menu source so I can keep the lesson layout structured.

What you are giving us is amazing! If I am intruding in any way just let me know and I will back off.


Ok… yeah what you had in mind would certainly work, but probably be a lot of work just to get only slightly more than what a console’s training mode would provide (only difference on a console would be, that you have to go through initial menus to set it up, and also switching sides by jumping over to the other side or throwing P2 each time). TRUST lets you control the opponent so you get a better sense of the context of actual situation, e.g. P2 jumping in so in THAT split second, you think “OK the stick needs to already be in position by now in order to get out a srk in time”, etc. and get used to that. The sf3 3rd Strike training mode had this too though, however with TRUST we can share scripts to work out together which are the best moves to work on (to counter which moves, etc) in an extremely granular level of precision, right down to the frame. Basically like those Pro Tips articles, but you convert all that text (making you read, think, it’s all theoretical, yuck) into doing (Execution). The reading process itself has us decoding symbols into sounds and meanings, and even requires a sense of disbelief to a certain degree before you can even get a genuine sense of how to do what’s being described in the text. When you put that decoding process into the context of a script, suddenly you’re right there in the action, and can truly appreciate just what timing is required, exactly. Videos accompanying them are a step up, but it’s not… TRUST. Nowadays, when I see posts about ST Saturdays or those other video tutorials for ST, I’m just thinking if you go to the trouble of making a video to teach something, why not make a macro script while you’re at it, you know what I mean? That’s so 2000 and 8; that’s so 2000 and late. As you mention, the motions need to be ground into your brain, so with this program you have more to interact with; it can throw things at you to react to and keep it interesting, so the more convenient and engaging it becomes, the less self-discipline is required.

Also I should probably mention that you generally don’t need to edit/look at any of the Lua code files at all, unless you really want to and even then, it would be a big help to have some programming experience, and a curiosity to see or hack what’s there. The macro scripts (.mis files) are the best place to spend your time hacking, in any case, tweaking the start of a move up a frame or two to get it just the way you want it etc. The macro scripts are separated off into their own .mis files, are easy to figure out and abstracted away from the lua code to let you focus on just the most interesting parts, so you really don’t need to go digging deep into the actual lua code at all.

I’m interested in helping both, esp. people new to ST. Fighting games don’t really come with much in terms of a decent manual for what you really need to know so I was thinking this could also offer that kind of “tutorial mode”. If you found any of that helpful or not I’m curious as to feedback.

Thanks- I don’t take it as intrusion, esp just discussing it (I welcome the intrusion). The menu source is written in BlitzPlus (I totally recommend it but the compiler is not free and syntax not so common). How about this, maybe it’d be easier to just increase the number of Custom slots there are?


For the record. This program is SICK… I am comming up with several scenerios for Sim fans!


I hope one of them is post-noogie xup slide into headbutt on Chun/Claw and also forward drilling clean over fireballs.
Some Killing Arts of Yoga, perhaps? :shy:


I’m trying to work on this, but I’m in the middle of a move to another city, and I’m starting a new job next week.

Hopefully I’ll have some progress to report soon though.


I just tried this out two days ago, pretty cool. I think another good training scenario would be for first-frame reversals. Just set it up with Zangief doing a meaty sweep that you have to uppercut/flash kick/super to survive.


Something to be aware of there is that getup timing is character specific. (And can be position specific.)


Any basic examples?