Kyra/Opcodes
This page is a work-in-progress document listing VM opcodes of the Kyrandia games. Unless otherwise noted, these opcodes are based on Kyrandia 1. Cyx created the list of Cmd functions, clem and Lordhoto will try to fill in parameters and usage notes. If you have any additions, contact the ScummVM team on IRC.
It is assumed that the opcodes stay the same during all revisions of Kyrandia. A quick comparison between English 1.0 and English 1.3 seems to support this. Generally the list is created by analysis of 1.0 script.
Hint: To disable an opcode/command pair in the compiled scripts, overwrite it with 4C 00 (add sp,00).
Unimplemented functions:
cmd_runNPCScript stub 07 - not used cmd_loadSoundFile stub 3E - not used cmd_specificItemInInventory stub 4B - not used cmd_specificItemInInventory stub 4B - not used cmd_mobileCharacterInScene stub 4D - not used cmd_hideMobileCharacter stub 4E - not used? (many false positives, but since unhide isn't implemented I don't think that exists) cmd_unhideMobileCharacter stub 4F - not used cmd_pageFlip stub 65 - not used cmd_addItemToInventory stub 69 - not used cmd_intPrint stub 6A - not used cmd_fadeEntirePalettes stub 7E - 2 times used (BONKBG.EMC, POTION.EMC) cmd_setPaletteRange stub 84 - not used cmd_setPlayingLoop stub 92 - 2 times used (GRAVE.EMC, CAVEB.EMC - only used on failing copy protection, exit do DOS ) cmd_resetMaskRegion stub 97 - not used