Releases: Nenkai/XenoTools
Releases · Nenkai/XenoTools
0.2.0
⚠️ This is still a very early build. Most of this has only been tested with XC1:DE.
⚠️ Requires .NET 8.0 Runtime.
XenoTools
- Bdat -> SQLite converter
- Event script compiler (.s/.si -> .sb)
Changes since 0.1.0
Many compilation accuracies which now allow 1401f.sb
(first big game cutscene) to be recompiled successfully. The compiler produces matching logic code.
- Added
--release
toscript-compile
to strip debugging information from compiled files (currently only locals & statics are emitted) - Added
--compare-mode
toscript-disassemble
to output dissasembled code to be compared with others more easily through WinMerge
Compiler State
Can compile valid code, two decompiled scripts from XC1:DE which should be matching are provided - 0000f.s
and 1401f.s
(for a starting point)
Notes:
- Specify the base include path for headers using the
-b
(for scripts that uses headers) - All statements written at the top level are executed first (wrapped into an entrypoint function named
_main_
, matching original). - There is no short-circuiting with logical comparisons (language limitation)
- Static declarations must be made at the top level
- Local declarations should be made at the top of each function (kinda like ANSI C)
- Within conditional statements, prefer to compare directly against
true
when the type is unclear - This should only work with XC1:DE for the time being (mainly because the list of OCs/built-in object constructors depends on the game therefore is hardcoded)
- There is also a disassembler (mainly for logic matching,).
- Preprocessor is implemented. Some of the XC1:DE game flags are provided as default here (original flag names).
F
means flag, the number after denotes the integer size that can be stored there.
0.1.0
⚠️ This is still a very early build. Most of this has only been tested with XC1:DE.
⚠️ Requires .NET 8.0 Runtime.
XenoTools
- Bdat -> SQLite converter
- Event script compiler (.s/.si -> .sb)
Compiler State
Can compile valid code, two decompiled scripts from XC1:DE which should be matching are provided - 0000f.s
and 1401f.s
(for a starting point)
The latter doesn't completely boot yet, be aware.
Notes:
- Specify the base include path for headers using the
-b
(for scripts that uses headers) - All statements written at the top level are executed first (wrapped into an entrypoint function named
_main_
, matching original). - There is no short-circuiting with logical comparisons (language limitation)
- Static declarations must be made at the top level
- Local declarations should be made at the top of each function (kinda like ANSI C)
- Within conditional statements, prefer to compare directly against
true
when the type is unclear - This should only work with XC1:DE for the time being (mainly because the list of OCs/built-in object constructors depends on the game therefore is hardcoded)
- There is also a disassembler (mainly for logic matching,).
- Preprocessor is implemented. Some of the XC1:DE game flags are provided as default here (original flag names).
F
means flag, the number after denotes the integer size that can be stored there.