Skip to content

emmercm/chdman-js

Repository files navigation

💿️ chdman

Pre-compiled binaries and Node.js wrapper for MAME's chdman tool.

npm: version npm: downloads GitHub: stars license

Supported platforms

OS Architectures Additional Instructions
Windows
  • x64
  • x86
macOS
  • arm64 (Apple Silicon)
  • x64 (Intel)
SDL2 is required to be installed separately:
brew install sdl2
Linux
  • x64
  • x86
  • arm (armhf)
  • arm64 (aarch64)
SDL2 is required to be installed separately:
  • Debian: apt-get install libsdl2-2.0-0
  • Gentoo: emerge libsdl2
  • Red Hat: dnf install SDL2

Running

You can easily run the chdman binary for your OS from the command line like this:

npx chdman [command] [options..]

Examples:

npx chdman help
npx chdman info --input Image.chd
npx chdman createcd --input Disc.cue --output Disc.chd

Installation

npm install --save chdman

Usage

import chdman from 'chdman';

/**
 * Create and extract hard disks
 */
await chdman.createHd({
  inputFilename: 'original-image',
  outputFilename: 'image.chd',
});
console.log(await chdman.info('image.chd'));
// { inputFile: 'image.chd', fileVersion: 5, ... }
await chdman.extractHd({
  inputFilename: 'image.chd',
  outputFilename: 'extracted-image',
});


/**
 * Create and extract CD-ROMs
 */
await chdman.createCd({
  inputFilename: 'Original.cue',
  outputFilename: 'CD.chd',
});
console.log(await chdman.info('CD.chd'));
// { inputFile: 'CD.chd', fileVersion: 5, ... }
await chdman.extractCd({
  inputFilename: 'CD.chd',
  outputFilename: 'Extracted.cue',
  outputBinFilename: 'Extracted.bin',
});


/**
 * Create and extract DVD-ROMs
 */
await chdman.createDvd({
  inputFilename: 'Original.iso',
  outputFilename: 'DVD.chd',
});
console.log(await chdman.info('DVD.chd'));
// { inputFile: 'DVD.chd', fileVersion: 5, ... }
await chdman.extractDvd({
  inputFilename: 'DVD.chd',
  outputFilename: 'Extracted.iso',
});

License

MAME and its tools are licensed under the GPLv2 license.