rink.nu / projects / MAD Project


The MAD project was an effort to create a script language plus interpreter, intended for the creation of adventure games. It is heavily influenced by Sierra's Creative Interpreter (SCI), which was the driving force of the famous King's Quest and Quest for Glory series of games.


There are two versions of MAD available: MADv2, which was used for the Hero6 dialogue demo and the initial Query for Glory 1 remake to showcase the technology, and MADv4 which was used for the pool demo. The latter version supports 32 bit color images and has a far more advanced script engine.


This is my longest-running project of all time, having actively developed it for more than 4 years. The project has been taken over by Nunzio Hayslip and Javier Gonzales, who have rewritten most of the code and switched to the Lua programming language. My involvement in this effort has been very limited, but the complete project is available at SourceForge.


MAD has also been used in the Hero6 project, where it was used for the first two demos. After I left the project, Hero6 has switched to a different system (I am unaware of any specifics)


MAD itself and all assorted tools and utilites are licensed under the GNU Public License Version 2 or higher. The demo projects have different licenses are outlined in the readme.txt file in the archive, which also contains background information and usage instructions.

MADv2 screenshots

Quest for Glory 1 remake in MAD

qfg1 remake

Integrated debugger


Example script

Example script

MADv4 screenshots

Hero6 pool demo

Hero6 pool demo

Integrated debugger

Hero6 demo debugger

Hero6 pool demo script

Pool demo script

Unreleased Hero6 content

Unreleased Hero6 content

Showcasing the animation debugging

Animation debugging


The release presented here consists of the old versions of MAD, which contain a homebrew programming language and VM instead of Lua. All utilities are included, as well as demo projects. There is also a patch included which fixes the MADv4 utilities so that they work on recent systems (there were some double frees, reliance on nonstandard strcpy() behaviour and off-by-one's in the old codebase)

Powered by Linux and Python
© 2001 - 2019 Rink Springer