Fudge for Desktop released

By Daniel Cook

Fujifilm has a lot of desktop software:

Ever wondered if somebody would come along and make open-source alternatives? Well, wonder no more.

Introducing:

Fudge for Linux, Windows, and MacOS.


Currently, this software has two main features:

It comes with a bunch of CLI options:

Fudge 0.1.0
Compilation date: April 1 2025
  --list
    List all PTP devices connected to this computer
  --dev <device number>
    Select a device to connect to instead of choosing the first available one.
  --raw <input raf> <output jpeg path> <profile file>
    Does a Raw conversion based on information parsed from a FP1/FP2/FP3 file.
  --backup <output dat path>
    Backs up camera settings to file.
  --restore <input dat path>
    Load camera settings from file.
  --dump-usb
    Dump all info on a camera. If something goes wrong you may want to send this info to developers.
  --script <filename>
    Execute a Lua script using fudge bindings
  --parse-fp <filename>
    Parse and dump a FP1/FP2/FP3 file

And the most awful looking UI you’ve ever seen: screenshot of Fudge desktop

It even has Lua bindings.

$ cat test.lua
x = ptp.getDeviceInfo()
print("You are connected to a " .. x["model"])
$ fudge --script test.lua
Connected to a Fuji camera, running test.lua
You are connected to a X-H1

Raw Conversion

The main blocker for writing an X Raw Studio replacement has been the proprietary Fujifilm profile formats. To reverse-engineer them, I used vcam, my camera emulator project, to spoof X Raw Studio running in a VM through vhci-hcd. I’ll spare you the technical details, but this allowed me to manually clean-room reverse-engineer these profile formats and create a library to handle them.

The result is a CLI version of X Raw Studio.

Usage is as simple as: RAF + FP1/FP2/FP3 = output.jpg

$ fudge --raw ~/Pictures/DSC0000.RAF output.jpg MyProfile.FP1

FP1/FP2/FP3 files are Fuji’s XML-based profile format used by X Raw Studio. You can read more about them here.

Note: This hasn’t been well-tested and whether it may cause harm is unknown. To my knowledge this is the first time somebody has reverse-engineered the raw conversion protocol.

Ready to try it out?