AmiFuse 0.4 update improves Amiga filesystem support across Windows, Linux, and macOS

For many Amiga enthusiasts, archived hard-drive images are more than just files sitting on a modern computer. They often contain complete snapshots of working Amiga systems: software collections, demo scene releases, development tools and personal projects. While preserving these images has become easier thanks to modern storage, actually accessing the files inside them can still be difficult.

For many Amiga enthusiasts, archived hard-drive images are more than just files sitting on a modern computer. They often contain complete snapshots of working Amiga systems: software collections, demo scene releases, development tools and personal projects. While preserving these images has become easier thanks to modern storage, actually accessing the files inside them can still be difficult. Modern operating systems such as Windows, Linux, and macOS simply do not understand the filesystems used by classic Amiga systems. As a result, those hard disk images often remain inaccessible. AmiFuse was created to solve this problem in a much more convenient way. The open-source project, developed by Stefan Reinauer with contributions from Bernie Innocenti, allows Amiga filesystem images to be mounted directly on modern operating systems. Once mounted, the contents appear like a normal directory on the host machine. Users can browse files, inspect folders, and copy data without needing to start a complete Amiga environment. This makes AmiFuse especially useful for enthusiasts, developers, and archivists who work with preserved Amiga systems or large collections of disk images.

What makes AmiFuse particularly interesting is the way it approaches filesystem compatibility. Instead of attempting to rewrite Amiga filesystem support from scratch, the project uses a much more authentic solution. AmiFuse runs the original Amiga filesystem handlers inside a Motorola 68k emulation environment.

What makes AmiFuse particularly interesting is the way it approaches filesystem compatibility. Instead of attempting to rewrite Amiga filesystem support from scratch, the project uses a much more authentic solution. AmiFuse runs the original Amiga filesystem handlers inside a Motorola 68k emulation environment. In practice, this means the same code that once managed Amiga hard drives is used again to interpret those filesystems today. By relying on the original handlers, AmiFuse avoids many of the compatibility issues that can appear when filesystems are reverse engineered or partially reimplemented. The communication between the Amiga filesystem code and the host system is handled through FUSE or WinFSP for Windows. FUSE allows a filesystem to run as a regular application while still appearing to the operating system like a standard mounted drive. When a filesystem image is mounted with AmiFuse, the host operating system sends normal filesystem requests through FUSE. AmiFuse then forwards those requests to the Amiga filesystem handler running inside the emulator, which reads the disk structures and returns the results. From the user’s perspective, the entire process feels simple and natural.

AmiFuse then forwards those requests to the Amiga filesystem handler running inside the emulator, which reads the disk structures and returns the results. From the user’s perspective, the entire process feels simple and natural.

With the release of AmiFuse 0.4, the project introduces several improvements that expand its capabilities and make it more reliable in everyday use. One of the most notable additions is support for detecting ISO-9660 images and mounting them using the Amiga CDFileSystem driver. This allows Amiga CD-ROM images stored as ISO files to be mounted directly through AmiFuse. Users who have archived Amiga CD software can now explore those images without starting an emulator, making it much easier to inspect or extract files from preserved CD media. Another important feature introduced in version 0.4 is the addition of a format subcommand. This new command allows AmiFuse to format Amiga partitions directly. Earlier versions of the tool focused primarily on mounting and reading existing filesystem images, but the new formatting capability makes AmiFuse more useful when creating or preparing Amiga disk images. Developers working with Amiga storage environments can now use the tool not only to inspect filesystems but also to prepare them.

This new command allows AmiFuse to format Amiga partitions directly. Earlier versions of the tool focused primarily on mounting and reading existing filesystem images, but the new formatting capability makes AmiFuse more useful when creating or preparing Amiga disk images. Developers working with Amiga storage environments can now use the tool not only to inspect filesystems but also to prepare them.

The update also introduces a small improvement that will be appreciated by developers and advanced users. AmiFuse can now be executed directly as a Python module using the command “python -m amifuse”. While simple, this feature makes it easier to integrate AmiFuse into automated workflows, scripts, or development tools that rely on Python. Performance testing has also been improved in this release. AmiFuse 0.4 introduces a repeatable benchmark for traversing the PFS3 filesystem. Professional File System 3 is one of the more advanced filesystems used on Amiga hard drives, and the benchmark provides a consistent way to measure filesystem traversal performance. This helps developers monitor performance changes and verify that updates do not introduce regressions. Alongside these new features, the release includes a wide range of fixes that improve stability and compatibility. Several improvements address how filesystem packets are delivered internally, particularly when working with the CDFileSystem driver. Adjustments to signal handling and packet processing help prevent issues such as duplicate packet execution or stalled handler loops during filesystem operations.

This helps developers monitor performance changes and verify that updates do not introduce regressions. Alongside these new features, the release includes a wide range of fixes that improve stability and compatibility. Several improvements address how filesystem packets are delivered internally, particularly when working with the CDFileSystem driver. Adjustments to signal handling and packet processing help prevent issues such as duplicate packet execution or stalled handler loops during filesystem operations.

Other fixes improve the handling of partitions and block devices. Partition size checks have been corrected, and formatting operations have been adjusted so that larger partitions can be handled correctly. Filesystem statistics reporting has also been improved to ensure that block sizes and block counts are calculated accurately when applications request filesystem information. Platform compatibility has also received attention. Windows users benefit from fixes that resolve mount failures related to drive letter creation, while improvements to path validation help AmiFuse behave more consistently across Windows, Linux, and macOS systems. Finally, the release updates the amitools submodule used by the project, bringing several upstream fixes related to DOS list handling, Amiga date validation, and internal signal and message management. These improvements strengthen the stability of the Amiga runtime environment used by AmiFuse. Altogether, AmiFuse 0.4 represents another solid step forward for the project. By adding support for Amiga CD-ROM images, introducing partition formatting capabilities, improving performance benchmarking, and fixing a range of stability issues, the update makes AmiFuse a more capable and reliable tool for working with Amiga filesystem images. Even decades after the Amiga first appeared, its software and data continue to be preserved and explored by enthusiasts around the world. Tools like AmiFuse help ensure that these archives remain accessible, allowing modern systems to interact with classic Amiga filesystems in a simple and practical way.

Spread the love
error: