Tools for exploring and dumping Macintosh resource forks
Go to file
2017-03-14 17:02:00 -07:00
Configurations Initial commit from private projects repository. 2017-03-14 16:42:00 -07:00
Extras Initial commit from private projects repository. 2017-03-14 16:42:00 -07:00
Modules/FUSE Initial commit from private projects repository. 2017-03-14 16:42:00 -07:00
SwresExplode Initial commit from private projects repository. 2017-03-14 16:42:00 -07:00
SwresFUSE Remove print debugging statement. 2017-03-14 17:02:00 -07:00
SwresTools Initial commit from private projects repository. 2017-03-14 16:42:00 -07:00
SwresTools.xcodeproj Remove a bunch of build settings (build settings are controlled via xcconfig files) and bump the LastUpgradeCheck. 2017-03-14 16:54:42 -07:00
Translators Initial commit from private projects repository. 2017-03-14 16:42:00 -07:00
.gitignore Initial commit from private projects repository. 2017-03-14 16:42:00 -07:00
README.md Emphasize the best(worst) part of the project in the README. 2017-03-14 16:48:40 -07:00
SwresFUSE.png Initial commit from private projects repository. 2017-03-14 16:42:00 -07:00

SwresTools is a set of two tools for exploring and dumping classic Macintosh resource forks, written in Swift. The best(worst) part is you can mount a resource fork as a filesystem with FUSE.

SwresTools can convert some resources to modern types. For example, it can translate some snd resources to WAV files.

To be honest, this was just a fun side project and shouldn't be used for anything important.

SwresExplode

SwresExplode dumps the resources of a classic Macintosh resource fork to individual files.

For example, list all of the resource types in a resource fork:

SwresExplode resourcefile

Dump all snd resources to individual files:

SwresExplode -d -t 'snd '

SwresFUSE

SwresFUSE mounts a resource fork as a filesystem. It requires FUSE for macOS.

Example usage:

SwresFUSE resourcefile mountpoint

A screenshot of SwresFUSE exploring a resource fork.

Why?

¯\_(ツ)_/¯

No, Really, Why?

I wanted to rip the music out of the old Mac game Troubled Souls, and this seemed like such a bad way to go about it I had to give it a go. I was playing around with Swift and thought this would be a fun way to write a project that interfaced with a C library.

Building

You may need to point the header parameter of Modules/FUSE/module.modulemap to your FUSE header directory. For some reason module maps don't seem to respect header search paths and need absolute paths.

Limitations

  • The translators are very limited. Only Pascal style prefix strings and an extremely limited subset of SND resources are supported.
  • ResEdit features like RMAP and TMPL resources are not supported.
  • Editing or creating new resources is not supported.