mpqfs

You are currently browsing articles tagged mpqfs.

And the day after, MacFUSE introduces an Objective-C framework…

MPQFS is implemented in Objective-C in order to interface with MPQKit. However, because the FUSE user-space library (provided by MacFuse) is a C library, I had to write a thin wrapping layer to convert the C callback functions required by FUSE to Objective-C method invocations. This layer is simplistic enough that I had to disable multi-threading support in MPQFS (I’m not too sure of MPQKit’s thread safety status either).

Well today, a new MacFUSE release introduced an Objective-C framework with well-defined classes and protocols ready to be sub-classed (and delegated) to implement filesystems entirely in Objective-C. I may or may not adopt this framework in MPQFS (don’t change code that works), but I will certainly take a look at its implementation to see if I can improve my implementation in any ways.

I also recommend anyone using MPQFS to grab the new MacFUSE version. It has a short, but always appreciated, list of bug fixes.

Tags: ,

Quick note to those interested by MPQFS. I’ve made available version 0.3.3 (0.3.2 was released silently earlier today). The two updates fix a small number of annoying issues, such as read-only files and folders copied from an MPQFS filesystem, and include a work around for a bug in Core Foundation which would result in a crash.

If you’re visiting the blog site, you’ll also notice the sidebar now includes a Downloads category. I’ll be adding direct download links to the latest version of my programs there in the coming days. I’ll also see if I can add a link to the appcast feed.

Tags: , , , , ,

Forthcoming updates

Now that Christmas celebrations are beyond us, it’s time for an update on my two flagship projects. My plan is to release a new binary version of Riven X, MPQKit and mpqfs within the first week of next year.

The Riven X update will include over a year of progress in the project, including functional hotspots, allowing for the first time to explore Riven without having to entirely rely on the debug console. Numerous bug fixes to graphics and audio rendering, better error reporting and many new Riven Script opcodes will also be part of this update. If time allows, I will also include support for the CD edition and card transitions.

The MPQKit update will focus on bug fixes and may be the 1.0 release of the framework. Once that is out the door, I will be planning a 1.1 release to add some less-often needed features, such as the ability to sign new archives using your own certificates. Also, I will enhance the existing test suite (which is admittedly small right now) to cover most of the import code paths in the framework, namely opening and writing archives, reading files, listing files, adding files and deleting files. Finally, I will commit to the repository an external patch adding GNUstep support and release a binary version for Linux thanks to that patch.

The mpqfs update will focus on bug fixes, performance and Linux support. The next big update will introduce write support. I do not know exactly when that will be (there are some difficult problems to deal with in order to have efficient read-write support), but I expect it will be around March.

Until then, happy holidays!

Tags: , ,

MPQFS 0.3 is now available. It is a small compatibility release that brings Leopard support. In addition, MPQFS was built for MacFUSE 1.0, which brings several enhancements to all FUSE filesystems and is required to run MPQFS 0.3. Finally, Sparkle has been integrated in the GUI wrapper for easy future updates.

Download MacFUSE from the MacFUSE website.
Download MPQFS 0.3.

Tags: , ,

MPQFS 0.2

Update: mpqfs 0.3 is available.

MPQFS 0.2 is now available. This release can load external listfiles, which is useful when an archive’s internal listfile is incomplete, resulting in missing files or “unknown xyz” files at the root of the archive (MPQKit generates those filenames for files it can open but whose filename is unknown).

You can specify any number of listfiles using the -l or –listfile options when invoking mpqfsd directly. In addition, mpqfs.app has bundled listfiles for Blizzard games. To load those listfiles, use the File > Open… menu item and check the checkbox.

Download MPQFS 0.2.

Tags: ,