Skip to content

halebop17/MacMan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 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) 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
  • 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
  • Xcode 15 or later (to build from source)
  • 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

Building

git clone <this-repo>
cd MacMan
open MacMan.xcodeproj
# Cmd+R in Xcode

Documentation


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.

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/.

If Build & Install fails

flips and wit are built from source by MacMan, and the upstream Makefiles occasionally change. If Build & Install fails in Tool Status, install them manually and place the binary in ~/Library/Application Support/MacMan/bin/ — MacMan picks it up on the next refresh.

flips (IPS/BPS patcher):

brew install flips
# or build from source:
git clone https://github.com/Alcaro/Flips
cd Flips
make TARGET=cli
cp flips ~/Library/Application\ Support/MacMan/bin/

wit (Wiimms ISO Tools):

# Download a prebuilt binary from https://wit.wiimm.de/download.html
# or build from source:
git clone https://github.com/Wiimm/wiimms-iso-tools
cd wiimms-iso-tools/project
make
cp bin/wit ~/Library/Application\ Support/MacMan/bin/

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 and toolkit for Mac

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages