Skip to content

Releases: reinauer/amifuse

amifuse v0.2.0

02 Jan 00:29

Choose a tag to compare

v0.2.0

High Level Updates

v0.1.0 was a basic proof-of-concept that could mount and read Amiga RDB partitions using FUSE.
v0.2.0 turns it into a much more complete and usable tool:

  1. Broader disk format support - Now handles ADF floppies, MBR partitions (Emu68), and disks >4GB via TD64
  2. Better filesystem handler compatibility - Multi-process support enables SFS and other complex handlers that weren't working before. Now supports FastFileSystem (OFS/FFS), ProfessionalFileSystem (PFS3AIO), SmartFileSystem (SFS), BerkeleyFFS (BFFS)
  3. Read-write support - Experimental write capability with crash detection and proper unmount flushing
  4. Native macOS integration - Amiga icons display as actual Finder icons with correct aspect ratios
  5. Improved CLI - Proper Python packaging with pip install, partition selection, and diagnostic tools (rdb-inspect, driver-info)
  6. Cross-platform - Added Windows support and auto-mountpoint on macOS/Windows
  7. More robust emulation - TimerDevice, HandlerTask exec context, and numerous fixes to the AmigaOS environment emulation

In short: v0.1.0 was "it works on simple cases", v0.2.0 is "it works on most real-world Amiga disks with a more polished user experience."

New Features

  • Multi-process handler support - Support for SFS and similar handlers that require multiple processes
  • Native macOS icon display - Amiga icons rendered as native Finder icons with proper aspect ratio
  • ADF floppy disk image support - Mount Amiga floppy disk images directly
  • MBR partition support - Support for Emu68-style disks with MBR partition tables
  • TD64 command support - Handle disks larger than 4GB
  • Auto-mountpoint - Automatic mount point creation on macOS and Windows
  • CLI subcommands - Add rdb-inspect and driver-info tools
  • Partition selection - Choose specific partitions to mount via CLI
  • Read-write support (experimental) - Write operations with crash detection and volume flush on unmount
  • Auto-extract filesystem drivers - Automatically extract handler from RDB
  • TimerDevice implementation - Proper timer support for handlers
  • HandlerTask for exec context - Better AmigaOS exec environment emulation
  • CPU instruction tracing - Debug feature for handler development
  • Unix permission mapping - Map Amiga protection bits to Unix file modes

Bug Fixes

  • Fix version detection by removing local version suffix
  • Fix aspect ratio of traditional icons
  • Fix SFS startup and add WaitPkt() resume support
  • Fix TD_GETGEOMETRY structure layout
  • Fix signal handling and message port list structure
  • Fix write mode stability with crash detection
  • Fix Wait/WaitPort resume with correct D0 register value
  • Fix handler restart logic after normal exit
  • Fix partition offset handling for logical devices
  • Numerous handler resume and startup reliability fixes

Performance

  • Cache FUSE handles and avoid spin waits
  • Add short negative cache in handler bridge
  • Add backoff to handler reply polling
  • Make FUSE handle cache thread-safe
  • Use direct memory reads in _parse_fib()

Infrastructure

  • Add pyproject.toml for proper Python packaging
  • Add PyPI publishing workflow with setuptools-scm versioning
  • Add amitools as a git submodule
  • Add Makefile for easier development and testing
  • Windows compatibility improvements for FUSE options

Documentation

  • Expanded README with installation and usage details
  • Added BFFS to supported filesystems list
  • Quote pip install paths for zsh compatibility

Full Changelog: https://github.com/reinauer/amifuse/commits/v0.2.0


85 commits by Stefan Reinauer

Stats

  • 23 files changed
  • 6,465 insertions(+), 1,368 deletions(-)