Skip to content

Releases: onepiecefreak3/XtractQuery

3.0.7: Compilation optimization

28 Sep 10:08
Compare
Choose a tag to compare

This release focuses on optimizing the human-reasdable script and compilation a bit.

The compiler now compiles into instructions 140 and 141.
Previously those were compiled into instructions 150 and 151, which use more arguments/space but were functionally equal.

Additionally, for older XQ's, method invocations now get metadata appended, when the argument type for the invoked method name is 25.
It's important to keep that metadata as is for recompilation, as older versions of the XQ engine specifically require this argument type for method invocations. However, this cannot be inferred automatically.
It will look like this: CallThisMethod<25>();

Features:

  • Added: Support for compiling into instruction 140 and 141
  • Added: Metadata for method invocations for older XQ's

3.0.6: XSEQ bug fixes and hash collisions

25 Sep 23:26
Compare
Choose a tag to compare

This release addresses several bugs in the de-/compilation of XSEQ's. First and foremost, the improvements made on XQ32 were mirrored over to XSEQ and the compression layer is also applied correctly at compilation.

Additionally some measures were taken to reduce the possibility of hash collisions.

Features:

  • Improved: Less hash collisions

Bugs:

  • Fixed: Compression not properly applied at compilation for XSEQ
  • Fixed: Calculation of variable counts, like in XQ32, mirrored to XSEQ

3.0.5: Add support for 64bit scripts

25 May 08:16
Compare
Choose a tag to compare

This release introduces support for 64-bit versions of scripts.

Those are variations of scripts that use 8-byte pointers for name references.
They also got rid of the compression layer altogether.

Features:

  • Added: De-/Compilation of 64-bit scripts
  • Added: Commandline parameter -l to set the pointer length at compilation
  • Added: Commandline parameter -n to remove the compression layer at compilation (necessary for 64-bit scripts)

Bugs:

  • Fixed: Decompressing multiple scripts used the wrong file path to write to

3.0.4: Bug fixes and variable naming

12 May 15:46
Compare
Choose a tag to compare

This releases fixes two bugs with complex syntax and complex number notations.

Additionally I added the possibility for variable to contain a legible name for better source code editing.
An example of such a variable name would be: "$local1_isSaved"
The previous variable naming syntax has to be kept intact and is only to be expanded upon.

Features:

  • Added: Post naming of variable names
  • Improved: Script files now get compressed (compilation may take longer due to compression)

Bugs:

  • Fixed: Exponential floating point number notations (4E-07f) now lex correctly
  • Fixed: Array indexers can now properly be postfixed ($global98[$object3]++)
  • Fixed: Compressing empty sections with Huffman compression doesn't throw exceptions anymore

3.0.3: Return bugfix

10 Dec 14:32
a7824ce
Compare
Choose a tag to compare

This release fixes a bug, where return statements were not allowed without a value being returned, despite this being explicitly possible as per script specification and engine.

The script specification also mixed up instructions 10 and 11.
10 is meant to be yield and 11 is meant to be return.
This mixup only occured in the specification and not in XtractQuery itself, so no faulty scripts were created.

3.0.2: Add multi-line comments

28 Nov 19:46
45fcfcc
Compare
Choose a tag to compare

This release adds multi-line comments to the human readable code.

Use them like this:

/* this is a
multi-line comment */

3.0.1: Bug fixes

26 Nov 23:16
Compare
Choose a tag to compare

This release fixes a stackoverflow when parsing certain expressions when compiling a script from .txt to .xq.
It also introduces proper error messages, that also print the line and column at which the error occurred, if a .txt is being compiled to a .xq.

Fixes:

  • Fixed: Stackoverflow when parsing cedrtain expressions
  • Fixed: When compiling .txt's, line and column information, at which the error occurred, are not provided

Release 3.0.0

16 Nov 20:31
723cc28
Compare
Choose a tag to compare

This release completely rewrote the tool from scratch with a new software architecture, better code analysis practices, a proper compiler, and many new features.

Main features:

  • All 3DS games are supported
  • Multi-file extraction and creation
  • Performance increases
  • Removal of metadata tags (like the numbers at the start of a script or after a function name)
  • Lua-like expressions and operations
  • Full documentation of the format and script, along with some details of how the script engine works

Automatic script detection

21 Jul 22:34
Compare
Choose a tag to compare

Added automatic script format detection when extracting a given .xq

Minor bug fixes

17 Apr 19:22
Compare
Choose a tag to compare

A bug was fixed, where string arguments, that contains Commas, got incorrectly split and passed to the parsers.
A bug was fixed, where string re-referencing did not start at the correct position in the string table.