FFE (force feedback) file format reverse engineered

Elias Vanderstuyft elias.vds at gmail.com
Wed Feb 19 16:36:41 CST 2014


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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: FFE_RevEng.tar.xz
Type: application/x-xz
Size: 115632 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20140219/933f86a1/attachment-0001.bin>


More information about the wine-devel mailing list