From X-SIM DIY motion simulator community - international wiki
Yoda2 - ForceFeedback Scanner
Please note: If a developer's game plugin is pre-given in the Force-Sender2 application menu and you want to use some of the special special effects they provide, then you then do not need Yoda2 or the Injector tool. This software is only needed for a fast startup when there is no plugin written or the game will never get a plugin because the developer has not designed or will not design an interface for exporting the in-game datas. Using DirectX force values will require a force feedback input device.
This application implements itself between the game and a force feedback able input device, like a joystick and extracts all Force Feedback effects provided by the game through the microsoft Direct-X interface. If you are a programer, you could use this software for your own simulator control software as well. To do this some skills in visual C++ or Delphi are required. An example for exporting ForceFeedback effects is located in the X-Sim2 installation directory.
Yoda intercepts and displays within its interface, all effects that are provided by microsofts Force Feedback technology, as descriped on the MSDN homepage. If you are using a Force Feedback wheel instead of a joystick which offers a X and Y axis, you also need the help of the joystick interface or the injector speed gauge detection to get an in-game Y force value. These combinations should help you to get almost every game working with X-Sim. You may need to invest some evenings of hard work, but the results will be very impressive. You may be able to get not just the combined vibe effects, but seperated forces as well. One of them is the force you feel for left and right.
With single identified force, you can aquire a value such as the in-game lateral force for your simulator. Note: No rumple effects will be transfered to your simulator as they are represented a periodic effects, whereas an accuator for motion will needed something like vector type effect. This will more then likely be shown as a "ConstantForce" effect.
Preperation of the Force Sender for the use with Yoda2
If you own a game yoda file (.yef) you are able to enable the tool in the force-sender application in the menu.
- Enable the use of Yoda2 by checking the “Activate Yoda FF scanner” option in the menu
- Select your Yoda .yef file with the “Set yoda export file (.yef)” menu option
- If not done yet, delect game exe file (Same as in main dialog) and set the real yoda exe location (normaly done by setup)
Now Yoda will be activated each start of a game. Insure the values are displayed in the input setup section of the Profiler2
Using Yoda with x-sim - Quickstart
Start Yoda and uncheck the mark on "delete released effect". Likewise no filter must be activated This option will show you every short Force Feedback action without delete it out of the list if it is released.
1. If you have a dual-screen system you can display Yoda on a second monitor.
If not, you have to start Remote-Yoda on a second pc. Remote-Yoda is a just an external viewer for Yoda. If using Remote-Yoda, you have to enter there the IP-adress of the pc where the main application Yoda is running, in Remote-Yoda (enable UDP ports 4440-4450 or deactivate the firewall). After that set a checkmark in the Yoda network-tab to activate the network in order to connect Yoda with Remote-Yoda. This hierarchy has to be maintained. Do not press the "start capture" button until both applications show that they are connected.
2. Start your game and look what happens. All DirectX effects that your game plays back during a race or flight will be displayed here in Yoda respectively Remote-Yoda.
Yoda will display many differnt Force-Feedback effects during playing a game. These can be expanded with the + symbol and exported. Therefor you have to click the right mouse button. There are many effect types (constant, sine, square ...) all that together can have 40 checkable values. A single FF effect has all the values that are shown in the main yoda page where you can expand them, however; each effect may not use all 40 values and not all that are shown will get used during game play.
The ignore list does not variate between the different effect types (constant, sine ...) it is just one big list of every possible value. Important values for our purposes are mostly magnitudes.
The example below represents what you might see during a bump or hitting a wall. Use the effect lowest in the hiearchy. Example: select the "Magnitude: 1000" item. Note: this effect and its parent catagory will not be hilited in red after you exit the game, so you will have to remember which one it is.
Now the value will be displayed in the export window:
This list, together with the "ignore" settings represent a .yef file.
The ignore list, will list the redetection values of a force feedback effect to see which effect are inconsistant.
Dealing with FF effects that are inconsistant
Some effects may change their starting value from gamestart to gamestart. This is because the game programmer is outputing a real in-game value imediately after the force feedback effect is initalized. This changing of values can be ignored and saved within the .yef file so that it will use only the effect's occurance instead. This will allow for the redetection of this effect to be more consistant by not comparing values. If a yoda file did not redetect an effect you had specified in the .yef file, you must then "check" the effect in the effect's ignore list to ignore the size of the effect and just detect the occurance.
You can figure out which effects you need to ignore by storing/saving two exports of the file and comparing which values that are different by opening the .yef files in a text editor or a differencing text tool like winmerge.
Here you can compare the start values that are stored for differences. Save one file with comments of what effect is changing and the other as it is. Load the "as is" file into yoda and attached an ignore entry for the effects that were different (use your commented version of the file opened in another window or keep winmerge open). The .yef files will store the first contact values of an effect and the ignore list.
Whenever the effect is encountered, it will now render that effect using the value set in your .yef file and use ignore flags as well.This will solve most redetecting issues that may be happening.
Drive your vehicle in the game towards an obstacle and watch which effects pops up, plays or changes values in the Yoda menue. These changes would be symbolised by a green 'playback' symbol or a red 'info' symbol. Mostly these are sine-effects or effects who are combined with constant-forces. Later you will be able to define a mininum value for each effect in the Force-Profiler, wich will initialise a simulator movement.
Drive through a curve and watch which effect (mostly likely a constant-force)that seems to pop up during this action. This effect will play or change values in the Yoda2 menu. This value changes dependent from the driving direction (left or right curve)and from a negative to a positve value. If you have done this, you will notice which effects are the ones best to use for G-force. You will now have to export these to the Force-Profiler2. BTW, Yoda2 compares all directx effects with the ones you have selected to be exported. If similar effects are noticed by Yoda and will be exported to Yoda as well. this is in additon to your selected effect. Exported effects will be listed up in the Force-Profiler2 input setup section. The Force-Profiler2 transforms these values into simulator movement commands. Here, you can define which effect will trigger which axis-movement and at which speed. How to export effects is explained more precis in the Export section. Exported effects will be displayed in bold within Yoda and are numbered from 01 to 40 in the Force-Profiler2 input setup list.
Important: save your export-list as .yef file, wich has to be entered one-time in the Force-Profiler!
After you have identified the lateral forces, you can use the joystick pedal to set longitudinal acceleration movement. This will simulate the Forward/Back direction (surge) of your simulator (assuming you have implimented this DOF). Some may use a slight pitch movement for surge, in which case you would use your pedal's movement or even search out the longitudinal (surge) forces in the same way you did for lateral (G's). Optionally, you can continue instead to use the Injector and search for the speed value held in game's memory. The Injector is then able to convert speed into surge acceleration and then acceleration into real force values. The injector method may be easier to obtain the surge data depending on game.