A SCUMM script compiler with support for SCUMM V3, V4, and V5. It can parse text files as output from ScummVM's descumm tool. Very useful for hacking existing LucasArts adventure games. Check out the manual for more information.
This tool is licensed under the MIT license.
Source Code Repository
- Fix "drawObject" in V3-4.
- Fix "getState" instruction's syntax.
- "debug?" instruction renamed to "debug".
- "PutCodeInString" - add support for a missing 2nd argument (as output by descumm).
- Restructure code path structure, separate out some tests.
- Added some tests based on my attempt to parse MI1 global scripts.
- Change license to MIT license.
- Update build scripts.
- Update to the manual - change info for "getState", add support e-mail to contact list.
These downloads are for version:
(Older downloads can be found on the "History" tab)
A suite of example scripts that can be used to test the operation of Scummbler. It contains all the scripts from the block of room 4 of MI2, some scripts from other games, and a couple with Scummbler-specific tests. NOTE: these tests are probably outdated now.
Version: v2 r15
Last updated: 2011-07-12
An online copy of the Scummbler manual.
v2 r14 (2010-12-22)
- Add support for inline string functions, like "wait", "newline", "sound", "getInt", "setColor", etc.
v2 r13 (2010-08-20)
- Much more accurate error reporting.
- PyParsing library now included in the source.
- Fix example script in the manual (escape codes were "x033" instead of "x03").
v2 r12 (2010-08-03)
- Fix drawBox modifying main opcode instead of auxilliary opcode.
- Fix drawObject using wrong sub-opcode.
- Fix saveVerbs/restoreVerbs outputting the wrong opcode.
- Fix SetPalColor outputting a word instead of a byte for last parameter.
- Fix the auxilliary opcode values for SetPalColor, drawBox, setRGBRoomIntensity.
- Supports new descumm formatting, also with support for legacy descumm. Some workarounds in place since descumm's output is still a bit buggy.
v2 r11 (2009-10-28)
- Should really return error codes now.
- Fix issue with cursorCommand instruction not being parsed at all.
v2 r10 (2009-10-08)
- Catches all exceptions - should always return an error code now.
v2 r9 (2009-10-07)
- You can now specify an output file name with the "-o" option.
v2 r8 (2009-09-22)
- Fix issue with nested "if" blocks; scripts now compile considerably faster.
- Fix issue with "duplicate label name" error throwing a different error.
- Binaries include verb_helper, for extracting extra object info for V3/V4 VERB scripts.
v2 r7 (2009-07-25)
- Fix problems with delayVariable and loadRoomWithEgo instructions.
v2 r6 (2009-07-23)
v2 r5 (2009-07-04)
- Supports V3 and V4 scripts.
- Supports all script types.
- Some other nice things.
v2 r4 (2009-05-02)
- More fixes for instructions with wrong opcodes (e.g. print.Text()).
- Code refactored in preparation for supporting other SCUMM versions.
v2 r3 (2009-05-01)
- Fixed missing stringOps instructions.
- Fixed issue with expression mode that has a single value or embedded instruction.
- Some code cleanup.
v2 r2 (2009-04-27)
- Forgot to include lgpl.txt, whoops!
v2 r1 (2009-04-26)
- Completely re-written from scratch.
- Parses & compiles the output from descumm.
- Only supports V5.
- Has a few nice additions like loops, defined values.
- Only supports outputting local or global scripts; for object code, entry scripts etc you will need to modify the header manually.
- Multiple nested 'if' blocks or loops are slow to parse.