ResForge is a resource editor for macOS, capable of editing classic resource fork files and related formats. Based on ResKnife by Nicholas Shanks and Uli Kusterer, this derivative of the project has been rewritten for modern macOS systems.
- Hexadecimal editor, powered by HexFiend.
- Template editor, supporting a wide array of field types.
- User-defined templates, loaded automatically from resource files in
~/Library/Application Support/ResForge/
. - Template-driven bulk data view, with CSV import/export.
- Generic binary file editor, via the
Open with Template…
menu item.
- User-defined templates, loaded automatically from resource files in
- Image editor, supporting 'PICT', 'PNG ', 'PNGf', 'cicn' & 'ppat' resources, plus view-only support for a variety of icons and other bitmaps.
- Sound editor, supporting sampled 'snd ' resources.
- Dialog editor, supporting 'DITL' resources (by Uli Kusterer)
- Menu editor, supporting 'MENU', 'CMNU' & 'cmnu' resources (by Uli Kusterer)
- Tools for EV Nova, including a sprite (rlëD) editor, a ship animation (shän) editor and a galaxy viewer.
- Macintosh resource format, in either resource fork or data fork.
- Rez format, used by EV Nova.
- Extended resource format, defined by Graphite.
- MacBinary encoded resource fork.
- AppleSingle/AppleDouble encoded resource fork.
ResForge is compatible with macOS 10.15 or later and runs natively on both 64-bit Intel and Apple Silicon.
Download the latest version of ResForge from the Releases page.
To build ResForge yourself you will need to have Xcode 15 or later installed.
Make sure to use the --recurse-submodules
option when cloning the repository, or use git submodule update --init
to initialise an existing copy.
- HexFiend - Powers the hexadecimal editor.
- CSV.swift - Provides reading/writing of CSV files.
- swift-parsing - Provides parsing of custom DSLs.
- resource_dasm - CLI tools for disassembling resource files.
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE
for more information.