jEstAr jOkiN

news . games . music . software

News

22nd July 2009:
I'm making tenative steps towards modern technology, and from now on all news updates will be posted on my blog.

Games

Battle School

Made for a friendly competition on the Something Awful forums. I made the unit art and animations, and a few of the sound effects.

Music

MySpace

Check out my page on MySpace.

Software & Code

DRO Trimmer

Title: DRO Trimmer
Description:

A tool to modify DRO files, the raw OPL (i.e. Adlib) recordings output from DOSBox (from around v0.65? to 0.72). Pretty simple. It just loads up the data into a table, and you can delete instructions as you see fit.

This tool is licensed under the LGPL 3.0.

Screenshots:
Version: v2 r1 (26/12/2008)
  • File loading is approximately 1,000,000,000,000,000 times faster (give or take a few powers of ten).
  • Song length now correctly calculated (sorry about that)
  • Bogus delays that cause problems are now automatically removed when loading a file
  • Entirely GUI-based, no console output
  • New "Find Next" dialog
  • Removed analysis feature (for now)
  • Internal restructure
  • No longer requires PythonCard
License: LGPL 3.0
Source: Source (27.2 KB) Requires Python 2.5, wxPython 2.6+
Binaries: Win32 Executable (zip) (4.77 MB) -
Other: Example files (238 KB) Some trimmed and untrimmed DRO files.

 

Scummbler

Title: Scummbler

Description:

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

Screenshots: -
Version: v2 r11 (28/10/2009)
  • v2 r11
  • Should really return error codes now.
  • Fix issue with cursorCommand instruction not being parsed at all.
  • v2 r10
  • Catches all exceptions - should always return an error code now.
  • v2 r9
  • You can now specify an output file name with the "-o" option.
  • v2 r8
  • 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
  • v2 r7
  • Fix problems with delayVariable and loadRoomWithEgo instructions.
  • v2 r6
  • Actually works now. I hope.
  • v2 r5
  • Supports V3 and V4 scripts.
  • Supports all script types.
  • Some other nice things.
  • v2 r4
  • More fixes for instructions with wrong opcodes (e.g. print.Text()).
  • Code refactored in preparation for supporting other SCUMM versions.
  • v2 r3
  • Fixed missing stringOps instructions.
  • Fixed issue with expression mode that has a single value or embedded instruction.
  • Some code cleanup.
  • v2 r2
  • Forgot to include lgpl.txt, whoops!
  • v2 r1
  • 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.
License: LGPL 3.0
Source: Source (93.3 KB) Requires Python 2.5, PyParsing 1.5.1+
Binaries: Win32 Executable (zip) (1.75 MB) -
Other:

Manual (HTML)

An online copy of the Scummbler manual, which is also distributed with the source code.

Tests (70.2 KB) 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.

 

ScummPacker

Title: ScummPacker

Description:

Pack and unpack resource files for LucasArts games. Currently supports Monkey Island 1 CD, Monkey Island 2, and Indiana Jones and the Fate of Atlantis (i.e. all SCUMM v5 games). Can also pack and unpack monster.sou files.

Screenshots:
Version: v2 r1 (26/12/2008)
  • Now supports Monkey Island 1 CD and Indiana Jones and the Fate of Atlantis
  • Correct room numbering
  • NLSC blocks are now generated when packing, so you can add new local scripts (LSCR blocks)
  • RMHD blocks are partially generated when packing, so you can add new objects (OBIM, OBCD)
  • RNAM block is now generated, names are stored in the LFLF directory name (limit 9 ASCII chars)
  • CHAR, COST, SCRP and SOUN blocks are now numbered correctly (were 1 higher than they should have been)
  • Cleaned up the command line options a bit. You'll mostly want to use "-e" and "-p" to extract and pack, specify the game with "-g"
  • Generated directory files (e.g. "DSOU.gen", "DCOS.gen") are deleted once extraction finishes
  • Workaround for Monkey Island 1 CD SOUN blocks which have no sub-blocks
License: Public Domain
Source: Source (11.4 KB) Requires Python 2.5
Binaries: Win32 Executable (zip) (1.6 MB) -
Other: - -

 

ScummSpeaks

Title: ScummSpeaks
Description:

A tool to assist in adding speech to the old LucasArts game Monkey Island 2; speech will only work when the game is played using ScummVM. Uses text extracted with scummtr, modifies the text to play a sound stored in a "monster.sou" file (or any of the compressed formats supported by ScummVM). This one actually comes with a readme file! No guarantees it'll actually be helpful, though.

Check out this video on YouTube of speech in Monkey Island 2, with your typical puerile humour text modifications. It's pretty rough with a few script errors, but I did the hack before I made ScummSpeaks or Scummbler, so I was manually hex-editing scripts and copy-pasting longs strings of arbitrary numbers to play the speech.

Here's a better hack, demonstrating a text-to-speech proof of concept, which is necessary for a few areas where variables are used instead of hard-coded strings..

Screenshots:
Version: v2 r2 (26/04/2009)
  • v2 r2
  • You can now do a mass import/export of sounds that automatically map to line numbers, including lip-synch tags.
  • v2 r1
  • Improved text searching
  • Explicit choice of monster.sou file type
  • Ability to edit text
  • Export script-formatted text
  • Some bug fixes & internal restructuring
  • Removed the ability to import/export partial projects (old code is still in the source).
License: Public Domain
Source: Source (28.3 KB) Requires Python 2.5, wxPython 2.6+
Binaries: Win32 Executable (zip) (5.2 MB) -
Other: Extra files (107.6 KB) Text dump of Monkey Island 2 (acquired with scummtr), with a comments file for use with ScummSpeaks.

 

SCUMM Image Encoder

Title: SCUMM Image Encoder (mi2img)

Description:

A background graphics compressor/decompressor from SCUMM v5 resources. It only compresses losslessly and without transparency. Also leaves lots of room for the basic EGA palette and any colours used by sprites (an advanced system would reconcile all sprites used in a room and their colours with the background's palette), so backgrounds are limited to 160 colours. Input/output can be PNG, or a combination of RMHD (room header), SMAP (image data) and CLUT (colour lookup table) resources as dumped/accepted by ScummPacker.

Screenshots: -
Version: v1 r2 (9/1/2008)
  • v1 r2
  • Now useable without having to edit the source code.
  • Fixed idiotic bug that prevented encoding from working with 8-bit PNGs.
  • v1 r13
  • Initial Release (sorry about the numbering)
License: Public Domain
Source: Source (7.2 KB) Requires Python 2.5, Python Imaging Library
Binaries: Win32 Executable (zip) (1.8 MB) -
Other: - -

 

Contact me here
jestar jokin 2007-2009