THECL(1) | General Commands Manual | THECL(1) |
thecl
— Touhou
enemy control language script tool
thecl |
[-Vrsxj ] [[-c |
-h | -d ]
version] [-m
eclmap]...
[input [output]] |
The thecl
utility (de)compiles ecl
scripts. The following commands are available:
thecl
-c
version [-sj
]
[-m
eclmap]...
[input [output]]thecl
-h
version [-m
eclmap]...
[input [output]]thecl
-d
version [-rxj
]
[-m
eclmap]...
[input [output]]-V
These options are accepted:
-m
eclmap-m
option can be used to map ins_* to human
readable names.-r
-r
option suppresses code transformations like
parameter detection, or expression decompilation.-s
-s
option enables simple creation mode, which
doesn't add any instructions automatically.-x
-x
option outputs address information when
dumping instructions. Shows both the file offset and the offset relative
to the start of the sub.-j
-j
option enables string conversion between
Shift-JIS and UTF-8. Source files are treated as UTF-8, ECL files as
Shift-JIS.Replace the version option by the enemy script format version requested. Running the program without a command will list the supported formats.
The thecl
utility exits with 0 on success,
1 on error.
Eclmap files, which are added with the -m
option, consist of two kinds of lines: control lines (which start with
‘!
’), and mapping lines.
The file starts with
‘!eclmap
’ control line. The rest of
the control lines select the mapping that is being modified:
!ins_names
’!ins_signatures
’!gvar_names
’!gvar_types
’$
’ for integer,
‘%
’ for float)!timeline_ins_names
’!timeline_ins_signatures
’Mapping lines are always of form
When multiple mappings are specified for the same key or value, the most recent one has priority. For example:
123 foo 123 bar
will map ‘123
’ to
‘bar
’,
‘bar
’ to
‘123
’, and
‘foo
’ to
‘123
’. Note how the first reverse
mapping doesn't get removed.
Invalid data may not be properly handled. Do not operate on untrusted files.
May 25, 2023 | thtk |