Releases: onepiecefreak3/XtractQuery
3.0.8: Fix references
This release fixes a bug that doesn't populate the hash cache from the reference scripts and makes resolving hashes more prone to unknowns.
Bug:
- Fixed: Reference scripts didn't provide hashes
3.0.7: Compilation optimization
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
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
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
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
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
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
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
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
Added automatic script format detection when extracting a given .xq