Skip to content

0.1.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@Nenkai Nenkai released this 30 Jan 00:42
· 4 commits to master since this 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.