Cross-platform tools for building ScummVM-compatible Monkey Island Ultimate Talkie Edition folders from legally owned Special Edition game files.
Point SCUMMKit at your local Monkey1.pak or monkey2.pak, choose an output
folder, and it extracts the classic resources, applies the talkie patches,
processes speech and sound assets, and writes a game directory you can add to
ScummVM.
SCUMMKit is designed for macOS, Linux, and Unix-like Windows environments such as WSL or MSYS2. It uses Python plus common command line tools, and it does not ship commercial game data or generated game output.
Supported games:
- Builds local ScummVM-compatible output folders for both supported games.
- Extracts classic SCUMM resources from Special Edition PAK files.
- Extracts and converts XACT wave bank (
.xwb) speech, sound, music, and ambience assets. - Packs ScummVM compressed speech archives such as
monkey.sogandmonkey2.sog. - Injects high-quality SBL sound-effect resources for The Secret of Monkey Island.
- Converts music for The Secret of Monkey Island and supports
cd,hybrid, andseroot soundtrack modes. - Provides SCUMM resource inspection and diagnostics commands.
- Python CLI: installed
scummkitcommand andpython3 -m scummkitfrom a source checkout. - Automated pytest coverage for CLI parsing, archive packing, XWB parsing, SBL generation, and build diagnostics.
- A legally owned copy of one or both supported Special Edition games.
- Extracted game files, including the
.pakfile and matchingaudio/folder. - Python 3.9 or newer.
- Common command line tools:
sox,ffmpeg,bspatch, andvgmstream-cli. - ScummVM to play the generated output folder.
You do not need the original Ultimate Talkie builder folder for normal builds. SCUMMKit includes the minimal patch/table data with permission.
-
Install required runtime tools:
macOS with Homebrew:
brew install python sox ffmpeg vgmstream bsdiff
Debian/Ubuntu:
sudo apt install python3 python3-venv python3-pytest sox ffmpeg bsdiff clang
Install
vgmstream-clifrom your package manager, upstream releases, or source if your distribution does not provide it.Windows users can run SCUMMKit from WSL, MSYS2, or another environment that provides Python,
bspatch,sox,ffmpeg, andvgmstream-clionPATH. -
Install SCUMMKit:
curl -fsSL https://github.com/jmnunezizu/scummkit/releases/latest/download/install.sh | shThe installer downloads the tagged release archive, installs it under
~/.local/share/scummkit, creates a Python virtual environment, compilesextractpak, writes~/.local/bin/scummkit, and adds~/.local/binto your shell startup file when it is not already onPATH. -
Verify the SCUMMKit environment:
scummkit --version scummkit doctor --out /tmp/scummkit-test
If your current shell cannot find scummkit immediately after installation,
run the export command printed by the installer or open a new shell.
Run the installer again to reinstall or upgrade to the latest GitHub release.
The previous install directory is kept as ~/.local/share/scummkit.previous.
Install a specific release:
curl -fsSL https://github.com/jmnunezizu/scummkit/releases/download/v0.3.0/install.sh | SCUMMKIT_VERSION=v0.3.0 shInstall to custom user-local paths:
curl -fsSL https://github.com/jmnunezizu/scummkit/releases/latest/download/install.sh | \
SCUMMKIT_HOME="$HOME/Tools/scummkit" SCUMMKIT_BIN_DIR="$HOME/bin" shPreview the install plan without changing files:
curl -fsSL https://github.com/jmnunezizu/scummkit/releases/latest/download/install.sh | sh -s -- --dry-runRemove the user-local install:
rm -rf ~/.local/share/scummkit ~/.local/share/scummkit.previous ~/.local/bin/scummkitUse this path when developing SCUMMKit or installing from a local checkout:
git clone https://github.com/jmnunezizu/scummkit.git
cd scummkit
clang extractpak.c -o extractpak
python3 -m scummkit doctor --out /tmp/scummkit-testRun the test suite from a checkout with:
PYTHONPYCACHEPREFIX=/tmp/scummkit-pycache python3 -m py_compile scummkit/*.py scummkit/commands/*.py scummkit/builders/*.py
python3 -m pytest- Python 3.9 or newer: runs the
scummkitpackage and tests. extractpak: helper compiled by the installer or manually fromextractpak.c.bspatch: applies the Ultimate Talkie binary patch files.ffmpeg: decodes WMA/XWMA sound-effect entries where needed.sox: performs trim, mix, gain, pad, and audio conversion operations.vgmstream-cli: decodes MI1 XACT music banks correctly.clang: optional but recommended; used to compileextractpak.c.
Audio encoder support:
- Ogg Vorbis: SoX with Ogg support,
oggenc, orffmpeg. - FLAC:
flacorffmpeg. - MP3:
lameorffmpeg.
Check your local tools and Python package first:
scummkit doctor --out /tmp/scummkit-testBuild Monkey Island 1:
scummkit build mi1 \
--pak ~/Downloads/MonkeyIsland/Monkey1.pak \
--out ~/Downloads/ScummVM/MI1_Ultimate_Talkie_Edition \
--audio ogg \
--music seBuild Monkey Island 2:
scummkit build mi2 \
--pak ~/Downloads/MonkeyIsland2/app/monkey2.pak \
--out ~/Downloads/ScummVM/MI2_Ultimate_Talkie_Edition \
--audio oggAdd the generated output folder to ScummVM, not the original Special Edition installation folder.
| Game | Build support | Notes |
|---|---|---|
| The Secret of Monkey Island | Ogg validated | Builds monkey.000, monkey.001, monkey.sog, root music tracks, and MI1 SBL sound-effect resources. Uses bundled Ultimate Talkie patch10.* and monster.tbl files with permission. |
| Monkey Island 2: LeChuck's Revenge | Ogg validated | Builds monkey2.000, monkey2.001, and monkey2.sog. Uses bundled Ultimate Talkie patch02.* and monster.tbl files with permission. FLAC/MP3 use the same compressed archive path when encoders are available. |
| Game | Option | Supported values | Recommended | Notes |
|---|---|---|---|---|
| The Secret of Monkey Island | --audio |
ogg |
ogg |
FLAC/MP3/raw are not currently validated for the MI1 build pipeline. |
| The Secret of Monkey Island | --music |
se, hybrid, cd |
se |
se uses the full Special Edition soundtrack and ambience path. hybrid uses classic CD music plus selected SE ambience tracks. cd uses classic CD root tracks. |
| The Secret of Monkey Island | --skip-sbl |
flag | off | Skips MI1 high-quality SBL sound-effect injection. |
| The Secret of Monkey Island | --skip-music |
flag | off | Skips MI1 music conversion and root soundtrack copying. |
| Monkey Island 2: LeChuck's Revenge | --audio |
ogg, flac, mp3 |
ogg |
Ogg is the primary validated target. Raw monster.sou generation is not implemented. |
If you downloaded the GOG Windows installer, extract it first with
innoextract. On macOS, install it with brew install innoextract; on Linux,
use your package manager.
innoextract -d MonkeyIsland setup_the_secret_of_monkey_islandtm_special_edition_1.0_\(18587\).exeThe build uses these extracted paths:
MonkeyIsland/Monkey1.pak
MonkeyIsland/audio/
scummkit build mi1 \
--pak ~/Downloads/MonkeyIsland/Monkey1.pak \
--out ~/Downloads/ScummVM/MI1_Ultimate_Talkie_Edition \
--audio ogg \
--music seRequired inputs:
Monkey1.pakaudio/Speech.xwbaudio/SFXNew.xwbaudio/MusicOriginal.xwbaudio/MusicNew.xwbaudio/Ambience.xwb- bundled MI1 Ultimate Talkie patch data under
third_party/ultimate-talkie/mi1/
Options:
--pak PATH: path toMonkey1.pak.--builder PATH: optional path to the extracted MI1 Ultimate Talkie builder folder; defaults to bundled patch/table data.--out PATH: output folder to create.--audio ogg: target compressed speech format. FLAC/MP3/raw are not currently validated for MI1.--music cd|hybrid|se: root soundtrack selection. Usesefor the fullest Special Edition music and ambience path. CLI default:hybrid.--skip-sbl: skip native SBL sound-effect injection.--skip-music: skip music conversion and root soundtrack copying.--dry-run: print planned steps without writing final output.--quiet: explicitly request the default progress-oriented output.--no-progress: use plain stage output without inline progress updates.--verbose: print detailed processing and root soundtrack mapping output.
Expected output:
monkey.000
monkey.001
monkey.sog
SCUMMKIT-BUILD.txt
track*.ogg
cd_music_ogg/*.ogg
se_music_ogg/*.ogg
music-root-map.txt
.work/
--music cd
- Root
track*.oggfiles come only fromcd_music_ogg/. - This is the classic CD soundtrack path.
--music se recommended
- Root
track*.oggfiles come fromse_music_ogg/. - This uses the full Special Edition soundtrack.
- This includes the SCUMM Bar chatter ambience, because the chatter is mixed
into the SE
track8.ogg.
--music hybrid default
- Root
track*.oggfiles start fromcd_music_ogg/. se_music_ogg/track25.oggthroughtrack29.oggare copied over the root output.- This preserves the current default behavior and mirrors the original builder's optional extended-environment root-track workflow.
The original Windows builder generated both cd_music_ogg/track8.ogg and
se_music_ogg/track8.ogg. Only the SE version contains the SCUMM Bar chatter
mix. The optional extended_SE_tracks_to_game_folder.bat moved only SE tracks
25 through 29 into the root folder; it did not move SE track8.
For that reason, hybrid keeps CD track8.ogg. Use --music se if you want
the SCUMM Bar chatter ambience in root playback.
If you downloaded the GOG Windows installer, extract it first with
innoextract. On macOS, install it with brew install innoextract; on Linux,
use your package manager.
innoextract -d MonkeyIsland2 setup_monkey_island2_se_2.0.0.10.exeThe build uses these extracted paths:
MonkeyIsland2/app/monkey2.pak
MonkeyIsland2/app/audio/
scummkit build mi2 \
--pak ~/Downloads/MonkeyIsland2/app/monkey2.pak \
--out ~/Downloads/ScummVM/MI2_Ultimate_Talkie_Edition \
--audio oggRequired inputs:
monkey2.pakaudio/Speech.xwbaudio/Patch.xwb- bundled MI2 Ultimate Talkie patch data under
third_party/ultimate-talkie/mi2/
Options:
--pak PATH: path tomonkey2.pak.--builder PATH: optional path to the extracted MI2 Ultimate Talkie builder folder; defaults to bundled patch/table data.--out PATH: output folder to create.--audio ogg|flac|mp3: target compressed speech format. Ogg is the primary validated target.--dry-run: print planned steps without writing final output.--quiet: explicitly request the default progress-oriented output.--no-progress: use plain stage output without inline progress updates.--verbose: print detailed processing output.
Expected output:
monkey2.000
monkey2.001
monkey2.sog
SCUMMKIT-BUILD.txt
.work/
For FLAC or MP3, the speech archive is named monkey2.sof or monkey2.so3.
SCUMMKit includes the small authored Ultimate Talkie patch/table data set needed to bind the classic game resources to the speech archives:
- MI1:
third_party/ultimate-talkie/mi1/patch10.000,third_party/ultimate-talkie/mi1/patch10.001, andthird_party/ultimate-talkie/mi1/monster.tbl. - MI2:
third_party/ultimate-talkie/mi2/patch02.000,third_party/ultimate-talkie/mi2/patch02.001, andthird_party/ultimate-talkie/mi2/monster.tbl.
These files come from the original Ultimate Talkie Edition patch builders by
LogicDeLuxe and are used with permission. They are third-party patch data, not
MIT-licensed SCUMMKit source. Preserve the original patch credit and license
terms in licenses/original_ute_builder.txt and
third_party/ultimate-talkie/README.md.
The --builder option is optional. By default, SCUMMKit reads the bundled
patch/table data. If you pass --builder, SCUMMKit reads the same minimal data
from a local original builder folder for comparison or compatibility.
SCUMMKit can inspect generated MI1 SCUMM resources. This is useful when debugging SBL injection or checking whether a sound resource is visible through the resource index.
scummkit inspect mi1 resources --game-dir /tmp/mi1-test
scummkit inspect mi1 room --game-dir /tmp/mi1-test --room 41
scummkit inspect mi1 resource --game-dir /tmp/mi1-test --room 41 --id 71Dump one resource:
scummkit inspect mi1 resource \
--game-dir /tmp/mi1-test \
--room 41 \
--id 71 \
--dump /tmp/sound-071.binCompare against a pre-SBL output:
scummkit inspect mi1 resource \
--game-dir /tmp/mi1-test \
--compare /tmp/mi1-test/.work/sbl/pre-sbl \
--room 41 \
--id 71Build the C extractor:
clang extractpak.c -o extractpakCommon commands:
./extractpak --list ~/Downloads/MonkeyIsland/Monkey1.pak
./extractpak --list ~/Downloads/MonkeyIsland2/app/monkey2.pak
./extractpak ~/Downloads/MonkeyIsland/Monkey1.pak monkey1-extracted
./extractpak ~/Downloads/MonkeyIsland2/app/monkey2.pak monkey2-extracted
./extractpak --only classic/en ~/Downloads/MonkeyIsland/Monkey1.pak monkey1-classic
./extractpak --only classic/en ~/Downloads/MonkeyIsland2/app/monkey2.pak monkey2-classic
./extractpak --debug-classic ~/Downloads/MonkeyIsland/Monkey1.pak
./extractpak --debug-classic ~/Downloads/MonkeyIsland2/app/monkey2.pakExpected classic outputs:
classic/en/monkey1.000
classic/en/monkey1.001
classic/en/monkey2.000
classic/en/monkey2.001
Extraction notes:
- Full extraction also writes
.ddsfiles for.dxtassets. - DDS generation is disabled when extracting
--only classic/en. - Archive entries that start with
/are written as relative paths. - Empty archive entry names are skipped.
- If an output file cannot be written, extraction continues and reports the failure count at the end.
SCUMMKit runs the build as a Python-driven pipeline around local game assets, bundled Ultimate Talkie patch data, and common audio/resource tools.
MI1 pipeline:
Special Edition assets
-> extractpak
-> XWB extraction
-> speech processing
-> monster archive generation
-> SBL generation
-> SBL injection
-> music conversion
-> final ScummVM game
MI2 pipeline:
Special Edition assets
-> extractpak
-> XWB extraction
-> speech processing
-> monster archive generation
-> final ScummVM game
For MI1, the native builder extracts the classic SCUMM resource files from
Monkey1.pak, applies bundled Ultimate Talkie patch files with bspatch,
processes speech from Speech.xwb, packs monkey.sog, injects SBL
sound-effect resources, and generates the selected soundtrack set.
For MI2, it extracts the classic SCUMM resource files from monkey2.pak,
applies bundled Ultimate Talkie patch files, processes Speech.xwb and
Patch.xwb, and packs the ScummVM speech archive.
monkey.sog: MI1 ScummVM compressed speech archive for Ogg Vorbis speech.monkey2.sog: MI2 ScummVM compressed speech archive for Ogg Vorbis speech.monkey.sof/monkey2.sof: FLAC variants of the compressed speech archive.monkey.so3/monkey2.so3: MP3 variants of the compressed speech archive.monster.sou: raw/WAV speech archive name used by classic SCUMM talkie games; native raw generation is not currently implemented.monster.tbl: table from the Ultimate Talkie builders mapping MONSTER/SOU speech IDs to speech sample names. SCUMMKit uses it to decide which processed samples belong in the ScummVM archive. The bundled table is third-party patch data used with permission.SBL resources: MI1 sound resources used for high-quality sound effects. The original builder generated them withwav2sbl.exeand injected them withscummpacker.exe; SCUMMKit implements that path natively.patch10.000/patch10.001: MI1 Ultimate Talkie binary patches for classic SCUMM resource files. The bundled copies are third-party patch data used with permission.patch02.000/patch02.001: MI2 Ultimate Talkie binary patches for classic SCUMM resource files. The bundled copies are third-party patch data used with permission.Speech.xwb: XACT wave bank containing spoken dialogue.Patch.xwb: MI2 XACT wave bank containing replacement or patch speech.SFXNew.xwb: MI1 Special Edition sound-effect bank used by the SBL path.MusicOriginal.xwb: MI1 classic CD soundtrack bank.MusicNew.xwb: MI1 Special Edition soundtrack bank.Ambience.xwb: MI1 Special Edition ambience bank. This includes the SCUMM Bar chatter ambience mixed into the SE soundtrack path.
Run:
PYTHONPYCACHEPREFIX=/tmp/scummkit-pycache python3 -m py_compile scummkit/*.py scummkit/commands/*.py scummkit/builders/*.py
python3 -m pytestThe tests cover CLI parsing, dry-run behavior, monster.tbl parsing, ScummVM
monster archive build and verification with tiny fake samples, XWB parser
behavior, and SBL conversion with generated WAV data.
Test the installer against a temporary local archive:
scripts/test-install.shSet SCUMMKIT_TEST_INSTALL_KEEP=1 to keep the temporary install directory for
inspection.
For syntax-only validation:
sh -n install.sh
sh -n scripts/test-install.sh
sh -n scripts/release.sh
PYTHONPYCACHEPREFIX=/tmp/scummkit-pycache python3 -m py_compile scummkit/*.py scummkit/commands/*.py scummkit/builders/*.pyReleases are normally managed by release-please. Conventional commits merged to
main update the release PR with changelog entries and version bumps. Merging
that release PR creates the GitHub release and uploads install.sh as a
release asset.
The manual release script remains available as a fallback from a clean main
checkout:
scripts/release.sh --dry-run v0.3.0
scripts/release.sh v0.3.0The manual script validates package versions, runs syntax checks, runs the test
suite, smoke-tests the installer, creates and pushes the tag, creates the
GitHub release, and uploads install.sh.
See CONTRIBUTING.md for contributor setup, validation, and release expectations.
This repository started as a modernization of extractpak.c, an old utility
for extracting Monkey Island Special Edition .pak archives. It grew into a
toolkit for building local Ultimate Talkie Edition folders and inspecting
classic LucasArts SCUMM resources.
- SCUMMKit uses bundled Ultimate Talkie patch/table data with permission from the original patch author. It does not fully regenerate those files.
- MI1 is currently validated for Ogg output. FLAC/MP3 may be added to the MI1 orchestration once the same end-to-end testing is done.
- MI2 Ogg is the primary validated output. FLAC and MP3 use the same archive format support but are less heavily tested.
- Raw
monster.sougeneration is not implemented. - The PAK parser is intentionally small and targets the two Monkey Island Special Edition archive layouts.
extractpakassumes little-endian archive fields and does not fully sandbox archive paths beyond stripping leading/characters.- Windows use is expected to work best through WSL or a Unix-like environment
with the required tools on
PATH. - The build pipeline is fully Python-driven. No shell scripts are required for orchestration.
If the CLI reports a missing tool, install it and ensure it is on PATH.
Common examples:
bspatch: needed for patch files.ffmpeg: needed for WMA/XWMA SFX decoding.sox: needed for audio trimming and mixing.vgmstream-cli: needed for MI1 music bank decoding.
Check that:
- The bundled
third_party/ultimate-talkie/<game>/monster.tblfile exists, or the optional--builderfolder contains the expectedtools/monster.tbl. Speech.xwbexists under the Special Editionaudio/directory.- The output contains
monkey.sogormonkey2.sog. - ScummVM is pointed at the generated output folder, not the original Special Edition folder.
For MI1:
- Make sure
vgmstream-cliis installed. - Rebuild with
--verbose. - Inspect
music-root-map.txtin the output folder. - Try
--music cd,--music hybrid, and--music se. --music seis the mode that includes the SCUMM Bar chatter mix.
For MI2, the native build focuses on the speech archive and patched ScummVM resource files. Check the original builder documentation for music expectations.
Check that the output folder contains the expected classic resource files:
- MI1:
monkey.000,monkey.001, andmonkey.sog. - MI2:
monkey2.000,monkey2.001, andmonkey2.sog.
If you used a non-Ogg mode, check for the matching archive extension:
- FLAC:
.sof - MP3:
.so3
The native builders use the bundled patch/table data by default. --builder
can still point at a local original Ultimate Talkie builder folder when you
want to compare against or override the bundled files. The analysis notes in
docs/ record the behavior currently implemented.
Use scummkit --help to list commands, scummkit --version to print the
installed version, and scummkit <command> --help for command-specific
options. From a source checkout, python3 -m scummkit works as an equivalent
entry point.
Command shape:
scummkit
├── doctor
├── build {mi1,mi2}
├── builder-inputs {mi1,mi2}
├── inspect mi1 {resources,room,resource}
├── inject mi1 sbl
├── room-audio-report mi1
├── ambience-report mi1
├── script-reference-report mi1
├── speech-manifest mi1
├── patch-diff mi1
├── xwb
├── monster
├── wav2sbl
└── bsdiff-inspect
These are the commands most users need for normal builds.
| Command | What it does | Use it when |
|---|---|---|
doctor |
Checks Python, external tools, the local extractpak helper, package imports, and optional output-directory write access. Supports text and --json output. |
You are setting up SCUMMKit, changing machines, or debugging an early build failure. |
build mi1 |
Builds a complete The Secret of Monkey Island output folder. | You want a playable MI1 Ultimate Talkie Edition folder for ScummVM. |
build mi2 |
Builds a complete Monkey Island 2 output folder. | You want a playable MI2 Ultimate Talkie Edition folder for ScummVM. |
builder-inputs mi1 |
Reports MI1 patch/table data sources. | You want to confirm whether bundled data or an optional original builder folder is being used. |
builder-inputs mi2 |
Reports MI2 patch/table data sources. | You want to confirm whether bundled data or an optional original builder folder is being used. |
These commands operate on one asset format or one pipeline stage. They are useful when a full build fails and you want to isolate the failing step.
| Command | What it does | Use it when |
|---|---|---|
xwb |
Lists or extracts entries from a Special Edition XACT wave bank. | You need to check whether a speech, music, ambience, or sound-effect entry exists in local game assets. |
monster |
Builds or verifies a ScummVM speech archive from processed samples and monster.tbl. |
You want to test archive packing independently from the full build. |
wav2sbl |
Converts an 8-bit mono PCM WAV file into an MI1 SBL chunk, or inspects an existing SBL file. | You are debugging one MI1 sound-effect resource. |
inject mi1 sbl |
Injects MI1 SBL sound effects into monkey.000/monkey.001. |
You want to rerun SBL injection without rebuilding every MI1 asset. |
These commands inspect generated MI1 SCUMM resources and the audio wiring around them. They are the main tools for investigating missing music, ambience, sound effects, or room-specific behavior.
| Command | What it does | Use it when |
|---|---|---|
inspect mi1 resources |
Lists indexed scripts, sounds, costumes, and charsets. | You need a broad inventory of generated MI1 resources. |
inspect mi1 room |
Lists resources attached to one room. | You know the room id and want to see what the patched game contains there. |
inspect mi1 resource |
Shows or dumps one indexed resource. | You need to inspect one script or sound resource directly. |
room-audio-report mi1 |
Summarises one room's sounds, scripts, ambience cues, and root music references. | You are starting a missing-room-audio investigation. |
ambience-report mi1 |
Maps Special Edition ambience cue names to Ambience.xwb entries. |
You are tracing whether a specific SE ambience cue can be found locally. |
script-reference-report mi1 |
Scans scripts for candidate room, sound, or root-track byte references. | You need to understand why a room points at different audio than expected. |
These commands are primarily for reverse engineering, provenance checks, and comparing generated data against authored Ultimate Talkie patch data.
| Command | What it does | Use it when |
|---|---|---|
speech-manifest mi1 |
Builds a manifest from MI1 speech.info, can write a generated monster.tbl-style table, and can compare with an existing table. |
You are analysing speech coverage or investigating the gap between SE metadata and the authored table. |
patch-diff mi1 |
Compares original and patched MI1 SCUMM resource files, with optional JSON reports and sound-plan classification. | You want to understand what the Ultimate Talkie patch changes inside MI1 resources. |
bsdiff-inspect |
Inspects a raw BSDIFF40 patch file. | You are debugging patch size, block structure, or patch provenance. |
Typical troubleshooting flow:
- Run
doctorfirst to rule out missing tools and write-permission issues. - Use
builder-inputsif a build unexpectedly reads different patch/table data than you intended. - Use
room-audio-report mi1for missing MI1 music, ambience, or sound effects in a specific room. - Use
inspect mi1 roomorinspect mi1 resourcewhen the report points to a specific SCUMM room or resource. - Use
xwb,speech-manifest,monster, orpatch-diffwhen you need to isolate one asset format or one pipeline stage from the full build.
- ScummVM, for preserving and documenting the runtime behavior these builds target.
- LogicDeLuxe and the Ultimate Talkie Edition contributors, for the original Ultimate Talkie Edition builders, authored patch data, and permission to include the minimal patch/table files used by SCUMMKit.
- vgmstream, for reliable game-audio bank decoding.
- FFmpeg, for broad audio decoding support.
- SoX, for precise audio processing.
- The original
extractpak.cwork in timfel/monkey, which this repository builds on.
This project does not include, distribute, or generate copyrighted game assets by itself.
You must provide:
- Your own legally owned copies of the Monkey Island Special Edition games.
- The
.pakandaudio/files extracted from those games.
SCUMMKit only automates the local build process. The bundled Ultimate Talkie patch/table files are third-party data used with permission and are not MIT-licensed SCUMMKit source. The generated output folder contains LucasArts/Disney game assets derived from your installation and must not be redistributed.
The extractpak.c utility is modified from the original extractpak.c in
timfel/monkey, a small repository for
working with Monkey Island Special Edition .pak files.
This version keeps DDS generation behavior but adds arbitrary PAK filenames, Monkey Island 2 support, output directories, list/debug modes, classic-only extraction, safer path handling, and more robust filename table parsing.
License note: at the time this README was updated, the upstream
timfel/monkey repository did not show a LICENSE file in its root listing.
Because of that, the original upstream code should be treated as having no
explicit open-source license unless the upstream author publishes one. See
NOTICE for attribution and licensing notes.
This repository includes an MIT License for the local modifications and documentation. See LICENSE and NOTICE.
