bobhelander / EDForceFeedback

Elite Dangerous Force Feedback
MIT License
33 stars 11 forks source link

Saitek Cyborg Evo Force support #9

Open Jastreb opened 3 years ago

Jastreb commented 3 years ago

Hello. First I must say excellent job on making this, I really love what you did.

I have Saitek Cyborg Evo Force stick and I made it work.

GUID is ffb506a3-0000-0000-0000-504944564944

Please add support for it. I might add more fx but I must dig a bit deeper in what is supported, and add FFB fx on more events.

Alternatively Id like for this to be merged in Elite G19

Thank you again.

bobhelander commented 3 years ago

Thank you for the product GUID and the testing. Are you requesting a configuration file for this specific device?

Jastreb commented 3 years ago

Im not sure I need it, I copied the settings from other devices and it works.


      "ProductGuid": "ffb506a3-0000-0000-0000-504944564944",
      "ProductName": "Saitek Cyborg Evo Force",

      "StatusEvents": [
        {
          "Event": "Status.Docked:True",
          "ForceFile": "Dock.ffe",
          "Duration": 2000
        },
        {
          "Event": "Status.Docked:False",
          "ForceFile": "Dock.ffe",
          "Duration": 2000
        },
        {
          "Event": "Status.Gear:True",
          "ForceFile": "Gear.ffe",
          "Duration": 3000
        },
        {
          "Event": "Status.Gear:False",
          "ForceFile": "Gear.ffe",
          "Duration": 3000
        },
        {
          "Event": "Status.Lights:True",
          "ForceFile": "Vibrate.ffe",
          "Duration": 250
        },
        {
          "Event": "Status.Lights:False",
          "ForceFile": "Vibrate.ffe",
          "Duration": 250
        },
        {
          "Event": "Status.Hardpoints:True",
          "ForceFile": "Hardpoints.ffe",
          "Duration": 2000
        },
        {
          "Event": "Status.Hardpoints:False",
          "ForceFile": "Hardpoints.ffe",
          "Duration": 2000
        },
        {
          "Event": "Status.Landed:True",
          "ForceFile": "Hardpoints.ffe",
          "Duration": 1500
        },
        {
          "Event": "Status.Landed:False",
          "ForceFile": "Hardpoints.ffe",
          "Duration": 1500
        },
        {
          "Event": "Status.LowFuel:True",
          "ForceFile": "VibrateSide.ffe",
          "Duration": 500
        },
        {
          "Event": "Status.LowFuel:False",
          "ForceFile": "VibrateSide.ffe",
          "Duration": 500
        },
        {
          "Event": "Status.CargoScoop:True",
          "ForceFile": "Cargo.ffe",
          "Duration": 2000
        },
        {
          "Event": "Status.CargoScoop:False",
          "ForceFile": "Cargo.ffe",
          "Duration": 2000
        },
        {
          "Event": "Status.Overheating:True",
          "ForceFile": "VibrateSide.ffe",
          "Duration": 250
        },
        {
          "Event": "Status.Overheating:False",
          "ForceFile": "VibrateSide.ffe",
          "Duration": 250
        }
      ]```
Im not sure if I can add more fx since I dont know which fx are available. Im going to attach screenie fo you to see what my stick supports.

![image](https://user-images.githubusercontent.com/6619829/101758834-1932b580-3ad9-11eb-9153-a6abd1740776.png)
bobhelander commented 3 years ago

Im not sure if I can add more fx since I dont know which fx are available.

The fx files (.ffe) are in the /Forces folder. You can create your own effects with the included utility FFUtils/fedit.exe. I encourage you to play around with this utility. If you create your own effect, save the file in the /Forces folder and you can set any of the game events to this effect. The known list of in game status events are at https://github.com/EliteAPI/EliteAPI/blob/master/EliteAPI/Status/Models/ShipStatus.cs

Jastreb commented 3 years ago

Thank you for the link I sure will try making my it my own just need some spare time on hand. Ill do PR if you dont mind with new fx if you want them.

In 2.4 which is latest now, however, device is not recognized, probably due to missing json entries.

image

Nothing big thought Id let you know.