| 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]]-VThese 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 |