Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MacMan

A native macOS utility for converting and patching game disc images and ROMs. MacMan wraps a collection of well-known open-source CLI tools (chdman, dolphin-tool, maxcso, xdelta3, flips, ecm, wit, JWUDTool, NKit, PkgTool) behind a clean SwiftUI interface, with batch input, drag-and-drop, live logs, and one-click installation for missing tools.

If you have a folder of PS1, PSP, GameCube, Wii, Wii U, or Saturn games sitting in heavy formats and want them compressed, converted, patched, or identified — this app is for you.

Features at a glance

  • CHD compression and extraction (PS1 · PS2 · Dreamcast · Saturn · Sega CD)
  • RVZ / GCZ / WIA conversion using Dolphin's tools (GameCube · Wii)
  • NKit lossless preservation conversion (GameCube · Wii)
  • WBFS / ISO / CISO / WDF conversion with FAT32 splitting (Wii)
  • CSO / ZSO compression and decompression (PSP)
  • ECM compression for PS1 BIN images
  • Wii U WUD/WUX operations: compress, decompress, extract, decrypt
  • PS4 PKG building from GP4 projects and unpacking PKGs back into GP4 projects
  • ROM patching with XDelta, IPS, and BPS
  • ROM verification with CRC32 / MD5 / SHA-1 and No-Intro / Redump DAT matching
  • Tool Status view to install, build, download, or uninstall every helper tool

Requirements

  • macOS 14 or later
  • Homebrew (for installing helper tools — MacMan invokes brew on your behalf when you click Install)
  • Java (for Wii U mode) and Mono (for NKit mode) only if you use those modes
  • Rosetta 2 (for PS4 PKG mode on Apple Silicon) — softwareupdate --install-rosetta --agree-to-license

User Guide

Use the sidebar to switch between modes.

CHD Mode

Compress disc images into CHD format or extract CHD archives back into a usable disc image. CHD is the ideal preservation format for optical-disc games — small, lossless, and supported by most emulators.

Compress to CHD accepts: .cue (recommended for BIN/CUE sets), .bin, .img, .iso, .gdi. Extract from CHD accepts: .chd.

How to use

  1. Choose To CHD or From CHD using the mode selector.
  2. Drag and drop one or more supported files into the drop zone.
  3. Optionally choose an output folder.
  4. Click the action button.

When extracting, choose Bin/Cue if you need the original track layout, or ISO for a single-track image.


RVZ / GCZ Mode

Convert GameCube and Wii disc images using Dolphin's dolphin-tool. RVZ is Dolphin's modern compressed format and is the best choice for everyday use; GCZ is the legacy format supported by older emulators; WIA is widely supported.

Supported inputs: .iso, .gcm, .gcz, .rvz, .wia, .wbfs.

How to use

  1. Drag one or more supported source files into the drop zone.
  2. Choose the target format (RVZ / GCZ / WIA).
  3. If using RVZ, choose compression type (zstd / lzma / lzma2) and level.
  4. Click Convert.

NKit Mode

Convert GameCube/Wii disc images to and from the NKit lossless preservation format. NKit removes redundant data so files compress smaller while remaining bit-perfect after recovery — preferred by archivists.

Operations

  • Convert to NKit — ISO/GCM → NKit format
  • Recover to ISO — NKit → original ISO/GCM
  • Verify — check an image against the NKit redump database

Requirements

  • Mono must be installed: brew install mono
  • NKit.exe must be placed in ~/Library/Application Support/MacMan/bin/. Download it from the NKit releases page.

How to use

  1. Choose a mode (Convert / Recover / Verify).
  2. Drop one or more ISO/GCM files into the drop zone.
  3. Click the action button.

NKit writes output files alongside the input.


WBFS / ISO Mode

Convert GameCube/Wii disc images between ISO, WBFS, CISO, and WDF formats using wit (Wiimms ISO Tools). Use this when preparing games for Wii loaders that read from SD card or USB — and toggle Split for FAT32 if your destination drive is FAT32 (required for any file larger than 4 GiB).

Supported inputs: .iso, .wbfs, .ciso, .wdf.

How to use

  1. Drop one or more disc images into the drop zone.
  2. Choose the target format (ISO, WBFS, CISO, WDF).
  3. Toggle Split for FAT32 if needed.
  4. Click Convert.

CSO / ZSO Mode

Compress PSP ISO files to CSO/ZSO, or decompress them back to ISO. CSO and ZSO are the standard compressed formats for PSP custom firmware and emulators.

Supported inputs: .iso when compressing; .cso / .zso when decompressing.

How to use

  1. Toggle Decompress depending on your goal.
  2. Drag files into the drop zone.
  3. If compressing, choose a compression level (1–9; default 9).
  4. Click Compress or Decompress.

ECM Mode

Compress and decompress PS1 BIN images using ECM (Error Code Modeler). ECM strips redundant error-correction data from BIN tracks, producing smaller archives that can be reconstructed losslessly. Often used in old archives downloaded from preservation sites.

Supported inputs

  • Compress: .bin, .img, .iso
  • Decompress: .ecm

How to use

  1. Toggle the Decompress switch depending on your goal.
  2. Drop one or more files into the drop zone.
  3. Click Compress or Decompress.

Wii U Mode

Operate on Wii U disc images (WUD/WUX) using JWUDTool. Supports the full range of Wii U dump operations from compression through decryption.

Supported operations

  • Compress — WUD → WUX
  • Decompress — WUX → WUD
  • Extract All / Content / Ticket / Hashes — pull files out of a disc image
  • Decrypt Partition — decrypt game partition to disk
  • Verify — verify disc image integrity

Requirements

  • Java must be installed and available on PATH.
  • JWUDTool.jar must be placed in ~/Library/Application Support/MacMan/bin/ (MacMan can download it for you from Tool Status).
  • Optional: common.key and game.key files for decryption operations.

How to use

  1. Select an operation from the mode picker.
  2. Drag the source WUD or WUX file into the drop zone.
  3. For decryption, provide key files using the key selectors.
  4. Optionally choose an output folder.
  5. Click the action button.

PS4 PKG Mode

Build PS4 packages from GP4 projects and unpack existing packages back into editable projects, using PkgTool from LibOrbisPkg. A GP4 is an XML project file listing which files go into a package and where; a PKG is the installable package itself.

Supported directions

  • GP4 → PKG — packs the files a GP4 project references into a fake PKG. The output is named after the project's content ID.
  • PKG → GP4 — extracts a PKG into loose files plus a Project.gp4, ready to edit and rebuild.

Requirements

  • PkgTool.Core in ~/Library/Application Support/MacMan/bin/ (MacMan downloads it for you from Tool Status).
  • Rosetta 2 on Apple Silicon — upstream only publishes an x86_64 build. MacMan warns you if it is missing.
  • For GP4 → PKG, the files the project references must still be where it points. MacMan rewrites Windows-style backslash paths automatically, so projects authored on Windows build without editing.
  • A passcode is only needed when unpacking retail PKGs; fake PKGs need none.

How to use

  1. Pick a direction with the Direction picker.
  2. Drop .gp4 files (build) or .pkg files (unpack) into the drop zone.
  3. Optionally choose an output folder, and a passcode when unpacking.
  4. Click Build PKG or Unpack.

Unpacking writes the package's full uncompressed contents to disk, and rebuilding writes another copy — budget roughly twice the game's size in free space.

Note that the first conversion after downloading is slower — PkgTool unpacks itself into a temporary directory on first launch.

Why is my rebuilt PKG bigger than the original?

Many PKGs store their filesystem compressed. LibOrbisPkg can read that compression but does not write it, so a package rebuilt from an unpacked project is stored uncompressed — same contents and content ID, larger file. This is expected, not a failed conversion.


Patch ROM Mode

Apply XDelta, IPS, or BPS patches to ROM files. MacMan auto-detects the patch format from the file extension and routes it to the right tool — XDelta uses xdelta3; IPS and BPS use flips (Floating IPS).

Supported files

  • ROM formats: .bin, .iso, .sfc, .smc, .gba, .nds, .z64, .n64
  • Patch formats: .xdelta, .xdelta3, .patch (XDelta), .ips, .bps

How to use

  1. Select the ROM file.
  2. Select the patch file.
  3. Confirm the detected patch format.
  4. Choose an output file location (optional — auto-generated if omitted).
  5. Click Apply Patch.

Verify ROM Mode

Compute CRC32, MD5, and SHA-1 hashes for any file and optionally identify it against a No-Intro or Redump DAT XML database. Useful for checking whether a ROM you have matches a clean preservation dump.

How to use

  1. Drop one or more files into the drop zone (any file type accepted).
  2. Optionally click Load DAT… and select a No-Intro or Redump DAT XML file.
  3. Click Verify.

For each file, MacMan displays the three hashes. If a DAT is loaded, the result also shows a match (green check) or a no-match indicator (orange).

DAT files can be downloaded from No-Intro or Redump — they are XML files listing every known ROM with its hashes.


Tool Status

The Tool Status view shows which helper binaries are installed and available. If a tool is missing, MacMan offers one of:

  • Brew Install — installs via Homebrew
  • Build & Install — clones the source repository and compiles locally into ~/Library/Application Support/MacMan/bin
  • Open Download Page — for tools that require manual download (Dolphin, NKit)
  • Download JAR — direct download for Java tools (JWUDTool)
  • Uninstall — removes a locally built or downloaded tool

Best practices

  • For BIN/CUE → CHD, always choose the .cue file rather than .bin alone.
  • For CHD extraction, choose Bin/Cue when you need the original track layout, or ISO for a single disc image.
  • Use the output folder selector to keep converted files organized.
  • For preservation archiving, prefer NKit (GameCube/Wii) and CHD (everything else) — both are lossless and well-supported.

Troubleshooting

  • If a conversion fails, check the log output inside the current view.
  • Make sure the required tool is installed via the Tool Status page.
  • If you need .cue + .bin from a CHD, use the CHD extractor and choose Bin/Cue.
  • For Wii U operations, ensure Java is installed (java -version in Terminal) and that JWUDTool.jar is in ~/Library/Application Support/MacMan/bin/.
  • For NKit operations, ensure Mono is installed (mono --version in Terminal) and that NKit.exe is in ~/Library/Application Support/MacMan/bin/.
  • For PS4 PKG operations on Apple Silicon, install Rosetta 2 with softwareupdate --install-rosetta --agree-to-license — PkgTool has no arm64 build and cannot start without it.

If Build & Install fails

flips and wit are built from source by MacMan, and the upstream projects occasionally change in ways that break the build. If Build & Install fails in Tool Status, install the tool yourself and drop the binary into ~/Library/Application Support/MacMan/bin/:

  • flips (IPS/BPS patcher) — brew install flips
  • wit (Wiimms ISO Tools) — download a prebuilt binary from wit.wiimm.de

After copying the binary, return to MacMan and the Tool Status view will reflect the install on the next refresh (or relaunch the app).

About

Emulation file converter, patcher and toolkit for Mac

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages