Latent Image
Open-source host tools and firmware research for the Fujifilm X-M1, working toward improved autofocus and named film recipes.
- Custom firmware
- Alpha
- Medium brick risk
- Reversible
This project hasn't been claimed by its maintainer yet, so its details come from the community. Is it yours? Claim it
Before you start
- How hard is it?
- HardUses the command line or developer tools.
- What you need
- Comfort with the command line
- A computer
- An SD card or USB stick
- Can it break my device?
- Small chance of trouble, with a way to recover.
- Can I undo it?
- Yes. You can go back to the official software.
Did it work for you?
Did Latent Image work on your Fujifilm X-M1?
No reports yet.
One-tap reports from owners. Bricked reports are checked before they count.
Compatibility
Devices: Fujifilm X-M1.
No compatibility information yet.
Getting started
From the project's README ("Try it on your host"):
The supported build host is Linux x8664 with Nix and devenv. Bazel owns the build; the checked-in devenv environment supplies pinned dependencies. Initial setup downloads toolchains and dependencies.
git clone https://github.com/skeet70/latent-image.git cd latent-image devenv shell -- bazel build //... devenv shell -- bazel test //... devenv shell -- bazel run //af:simulate -- af/fixtures/peak-delayed.json devenv shell -- bazel run //emulation:native-case -- --runner bazel-bin/emulation/native-runner emulation/fixtures/arithmetic.json
These commands perform no camera I/O. The simulation exercises a contrast-search controller against an artificial lens model; the native case checks ARM execution against a synthetic fixture. Neither demonstrates camera behavior. See build integration for toolchain and offline-cache details, and package READMEs for supported commands.
New full-system emulator development uses the FujiMod Rust runtime fetched at an exact commit by the checked-in Nix build; no sibling checkout is required. The retained Python engine is frozen legacy for surfaces not yet ported and the existing acceptance gates until the qualified cutover. See emulator development for supported counterparts, pin updates and the remaining legacy surfaces. Local development does not permit conveying FujiMod-linked binaries under LICENSING item 7.
Risk and recovery
- Brick risk
- Medium
- Reversible
- Yes
- Requires opening the device
- No
From the project's README ("Install it"):
- Format a card in the camera, then copy the built FWUP0002.DAT to the card's root as its only file, keeping that exact name.
- Use a fully charged battery, close the card and battery doors, and disconnect USB.
- Power on while holding DISP/BACK, then check the version screen. It should offer an update from 1.50 to 1.50. If the screen differs or refuses the update, power off. Nothing has been written yet.
- Select BODY and confirm each screen. The final confirmation starts the write. From then on, don't press anything, open a door or remove power until the camera reports completion and asks you to switch it off.
- Switch off, remove the card and start normally. Check that the menus and photography work and that the new film simulations appear.
The install procedure explains each step, the abort points, and what an interrupted update leaves behind. To return to stock, install the official base DAT the same way. That direction has not yet been tried on hardware. If the camera no longer starts, read the recovery kit before trying anything else.
Credits, license and support
- License
- AGPL-3.0