Skip to content

Axel051171/UnifiedFloppyTool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UnifiedFloppyTool

Release Build License: GPL-2.0

„Bei uns geht kein Bit verloren" — Open-source forensic floppy disk preservation for 700+ formats and 8 hardware controllers.


Downloads

→ Latest Release

Platform File Notes
macOS UnifiedFloppyTool-x.x.x-macOS.dmg Universal (Intel + Apple Silicon)
macOS UnifiedFloppyTool-x.x.x-macOS.tar.gz .app bundle
Linux unifiedfloppytool_x.x.x_amd64.deb Ubuntu/Debian: sudo dpkg -i *.deb
Linux UnifiedFloppyTool-x.x.x-linux-amd64.tar.gz Portable binary
Windows UnifiedFloppyTool-x.x.x-windows-x64.tar.gz Portable, Qt DLLs included

macOS: Falls „App ist beschädigt" erscheint: xattr -cr UnifiedFloppyTool.app


What's New in v4.1.0

Complete hardware protocol audit — all 6 hardware backends rewritten against original manufacturer specifications. 24+ critical protocol bugs fixed.

  • SuperCard Pro — SDK v1.7 binary protocol (replacing fabricated ASCII commands)
  • FC5025 — SCSI-like CBW/CSW from DeviceSide driver source (correctly marked read-only)
  • KryoFlux — DTC subprocess wrapper (proprietary USB protocol acknowledged)
  • Pauline — HTTP/SSH control matching real DE10-nano FPGA architecture
  • Greaseweazle — 16 fixes against gw_protocol.h v1.23
  • GitHub Actions CI/CD — automated builds for macOS, Linux, Windows

Full Changelog


Features

700+ Disk Image Formats

Platform Formats
Commodore D64, D71, D81, G64, G71, NIB, P64, T64
Amiga ADF, ADZ, DMS, HDF, IPF (CAPS/SPS)
Atari ATR, ATX, XFD, ST, MSA, STX, Pasti
Apple DSK, DO, PO, NIB, WOZ, 2IMG, DC42
TRS-80 DMK, JV1, JV3, IMD
TI-99/4A V9T9, PC99, FIAD, TIFILES
IBM PC IMG, IMA, IMD, TD0, CQM, 86F, MFI
CP/M Various (YDSK, SIMH, MYZ80, RCPMFS)
Flux SCP, KryoFlux stream, HFE, A2R, DFI, RAW
Nintendo NDS, 3DS, Switch (NSP/XCI)

Hardware Controllers

Controller Read Write Flux Protocol Source
Greaseweazle gw_protocol.h v1.23
SuperCard Pro SDK v1.7 + samdisk
KryoFlux ⚠️ DTC tool (official)
FluxEngine libfluxengine
FC5025 Driver v1309 (read-only HW)
Pauline ⚠️ HTTP/SSH (DE10-nano)
XUM1541/OpenCBM OpenCBM library
USB Floppy Standard block I/O

⚠️ = limited / firmware-dependent

Copy Protection Analysis

Automatic detection and preservation of protection schemes:

  • Commodore — V-MAX!, RapidLok, Vorpal, Pirate Slayer, GEOS
  • Amiga — Rob Northen Copylock, custom MFM
  • Atari ST — Copylock, Speedlock, Macrodos, Fuzzy sectors
  • Apple II — Spiral tracking, nibble count, half-tracks
  • PC — Weak sectors, long tracks, non-standard formats

Analysis Tools

  • Flux timing histogram with encoding auto-detection
  • PLL phase analysis and clock recovery
  • Track alignment (V-MAX!, RapidLok, Pirate Slayer)
  • Weak bit and copy protection mapping
  • Sector-level hex editor
  • Side-by-side disk comparison
  • Session management for long preservation runs

Quick Start

GUI

./UnifiedFloppyTool          # Linux
open UnifiedFloppyTool.app   # macOS
UnifiedFloppyTool.exe        # Windows
  1. Hardware tab → select controller → Connect
  2. Workflow tab → configure source/destination
  3. Click Start

CLI

uft read -d greaseweazle -o disk.scp      # Read to flux image
uft convert disk.scp disk.adf             # SCP → ADF (Amiga)
uft analyze disk.dmk                       # Analyze DMK image
uft check disk.d64                         # Integrity check

Building from Source

Requirements

  • Qt 6.5+ (Core, Widgets, SerialPort)
  • C++17 compiler (GCC 9+, Clang 10+, MSVC 2019+)
  • libusb 1.0 (optional, for hardware support)

Linux (Ubuntu/Debian)

sudo apt install build-essential qt6-base-dev qt6-tools-dev \
    libqt6serialport6-dev libusb-1.0-0-dev libgl1-mesa-dev

git clone https://github.com/Axel051171/UnifiedFloppyTool.git
cd UnifiedFloppyTool

mkdir build && cd build
qmake ../UnifiedFloppyTool.pro CONFIG+=release
make -j$(nproc)

macOS

brew install qt@6 libusb

git clone https://github.com/Axel051171/UnifiedFloppyTool.git
cd UnifiedFloppyTool
mkdir build && cd build
qmake ../UnifiedFloppyTool.pro CONFIG+=release
make -j$(sysctl -n hw.ncpu)

Windows (MSVC)

:: Install Qt 6.5+ from qt.io (MSVC kit)
git clone https://github.com/Axel051171/UnifiedFloppyTool.git
cd UnifiedFloppyTool
mkdir build && cd build
qmake ..\UnifiedFloppyTool.pro CONFIG+=release
nmake

CMake is also supported as alternative build system — see CMakeLists.txt.


udev Rules (Linux)

For direct USB access to floppy controllers without root:

sudo cp tools/99-floppy-devices.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules

Documentation

Document Description
User Manual Complete usage guide
Hardware Setup Controller wiring and configuration
FAQ Frequently asked questions
API Reference Developer documentation
Changelog Full version history
Contributing How to contribute

Acknowledgments

UFT builds upon the work of these projects:


License

GPL-2.0-or-later — Copyright © 2024–2026 Axel Kramer