Releases: reinauer/amifuse
Releases · reinauer/amifuse
amifuse v0.2.0
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:
- Broader disk format support - Now handles ADF floppies, MBR partitions (Emu68), and disks >4GB via TD64
- 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)
- Read-write support - Experimental write capability with crash detection and proper unmount flushing
- Native macOS integration - Amiga icons display as actual Finder icons with correct aspect ratios
- Improved CLI - Proper Python packaging with pip install, partition selection, and diagnostic tools (
rdb-inspect,driver-info) - Cross-platform - Added Windows support and auto-mountpoint on macOS/Windows
- 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-inspectanddriver-infotools - 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_GETGEOMETRYstructure layout - Fix signal handling and message port list structure
- Fix write mode stability with crash detection
- Fix
Wait/WaitPortresume 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.tomlfor proper Python packaging - Add PyPI publishing workflow with setuptools-scm versioning
- Add
amitoolsas a git submodule - Add
Makefilefor 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(-)