Skip to content

Releases: Nenkai/XenoTools

0.2.0

01 Feb 02:39
Compare
Choose a tag to compare
0.2.0 Pre-release
Pre-release

⚠️ 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 to script-compile to strip debugging information from compiled files (currently only locals & statics are emitted)
  • Added --compare-mode to script-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

30 Jan 00:42
Compare
Choose a tag to compare
0.1.0 Pre-release
Pre-release

⚠️ 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.