FFE (force feedback) file format reverse engineered

Elias Vanderstuyft elias.vds at gmail.com
Thu Feb 20 12:20:51 CST 2014


On Wed, Feb 19, 2014 at 11:36 PM, Elias Vanderstuyft
<elias.vds at gmail.com> wrote:
> Hi,
>
>
> Two weeks ago, I started working on reverse engineering the FFE file
> format, because the functionality to load and write is currently not
> available in Wine:
> http://wiki.winehq.org/ForceFeedbackSummerOfCode2005Summary
> "
> Missing functionality:
> - Reading and writing FF effects to files
> (IDirectInputDevice8::WriteEffectToFile and
> IDirectInputDevice8::EnumEffectsInFile) have not been implemented.
> They are stored in a RIFF file, the details of which are undocumented.
> Given the nature of RIFF, it should be relatively simple (albeit
> time-consuming) to determine the exact format of the effect files.
> "
>
> So I wrote a Python program that can read and validate FFE files,
> based on my assumption of the file format structure.
> In the Python file:
> - I tried to maximally expose the relation of the FFE file contents
> and the RIFF structure.
> - Every single bit in the FFE file will be tested/validated, and the
> program will throw a 'Warning' when something odd/against my
> assumptions, occurred with the file of interest.
> I did not yet implement write functionality in the Python file, but it
> should not be difficult (~inverse operation of read).
> For the CustomForce effect, my assumptions are hypothetical: there was
> no way to test it, because:
> - I did not find any file containing such effect
> - I couldn't create such file, because FEdit.exe does not support
> CustomForce effects to be created.
>
> This should be a starting point to implement these read and write stubs in Wine.
> I don't have time to do that now, so, maybe someone else is interested to do so?
>
>
> Any feedback is welcome,
>
> Best regards,
> Elias

Because some people had trouble with the attachment of my previous mail,
I reattach it (as it contains a slightly updated version), and provide
a link to a Google Drive folder containing the latest version:
https://drive.google.com/folderview?id=0B9DBGF77AW7eblFwQWhoSVRvTHM&usp=sharing
If you want to open the attachment in this mail, you should first
download "attachment-0001.bin" and rename it to "FFE_RevEng.tar.xz".
The reason I had to compress it using the XZ compression method, is
because I send this via GMail, and it does not allow to send ZIP
archives containing exe-files (in this case "fedit.exe").

Elias
-------------- next part --------------
A non-text attachment was scrubbed...
Name: FFE_RevEng.tar.xz
Type: application/x-xz
Size: 116020 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20140220/6645f93c/attachment-0001.bin>


More information about the wine-devel mailing list