Opcodes List (SCM.INI)
SCM.INIis the file containing information about opcodes used during disassembling and compiling script files. Sanny Builder ships a list of opcodes for each edit mode.
Liberty City Stories
Vice City Stories
Lines starting with
Special INI parameters provide metadata information about the opcodes list.
VERSION– defines the version of this file. See the $VERSION directive
PUBLISHER– who authored this version
DATE– the update date. The disassembler prints the metadata in the first line of the output file.
Each line has the following syntax:
XXXX– the opcode number
N– the number of parameters
yyyy– the opcode description.
The opcode number and the number of parameters are final and can't be changed. The description is open to modifications.
If the INI file contains multiple definitions for the same opcode, the latter controls.
By convention a description for a conditional opcode starts with two spaces.
A parameter is a dynamic part of the opcode. They start and end with
0001=1,wait %1d% ms
This line is the definition of the opcode
0001. When the disassembler finds
0001in a script it prints the words
mswith the parameter value in-between to the output file.
A parameter consists of two parts: a
The number in parameter
%1d%is its index. The idea is that some opcodes have their parameters rearranged to make source code more readable.
0053=5,%5d% = create_player %1o% at %2d% %3d% %4d%
The disassembler writes the 5th opcode parameter before any others.
0053: $PLAYER_CHAR = сreate_player #NULL at 2488.562 -1666.865 12.8757
If the parameters will follow their original order, the opcode
0053would look like:
0053: сreate_player #NULL at 2488.562 -1666.865 12.8757 $PLAYER_CHAR
Changing parameters order in the INI file should be avoided by any means as it makes the source code incompatible with the default opcode definitions or earlier scripts.
Parameters order may vary from mode to mode. See the comparison table in Edit modes to find out which mode uses which type.
A letter following the index number indicates the parameter type.
You can freely change parameters types, if needed.