Skip to content

Releases: vezel-dev/novadrop

v2.2.14

15 Jul 15:57
v2.2.14
21c6c8d
Compare
Choose a tag to compare
  • Vezel.Novadrop.Formats
    • Fixed data center serialization sometimes writing random padding values.
      • This could lead to packed data center files with unexpected hashes and could massively undermine compression.

v2.2.7

12 Feb 22:10
v2.2.7
99603d8
Compare
Choose a tag to compare
  • Vezel.Novadrop.Interop
    • Applied [Experimental] to this assembly to indicate that its API surface is inherently unstable.
      • Users can suppress the ND0001 diagnostic to get rid of the resulting compiler errors.

v2.1.28

09 Jan 21:08
v2.1.28
5955e39
Compare
Choose a tag to compare
  • Vezel.Novadrop.Formats
    • Fixed DataCenterExtensions.SiblingsAndSelf() returning an empty enumerable for the root node.
    • Optimized DataCenterExtensions.DescendantsAt() to avoid an enumerator allocation on every node.

v2.1.25

09 Jan 20:47
v2.1.25
1ba5142
Compare
Choose a tag to compare
  • Vezel.Novadrop.Formats
    • Fixed DataCenterExtensions.DescendantsAt() evaluating the given path incorrectly.

v2.1.24

06 Jan 20:38
v2.1.24
6c7bd6e
Compare
Choose a tag to compare
  • Vezel.Novadrop.Formats
    • Added support for loading older data center format versions.
      • A DataCenterArchitecture (X86, X64) value can be specified in DataCenterLoadOptions.
      • A DataCenterFormat (V3, V6X86, V6X64) value can be specified in DataCenterSaveOptions.
    • Changed some region sanity checks to not require DataCenterLoadOptions.Strict.
    • Optimized data center saving to be ~30% faster.
    • Changed FakePaddingCryptoTransform to handle arrays of any size.
  • Vezel.Novadrop.Client
    • Eliminated some unnecessary allocations in the GameMessageServer window procedure.
  • novadrop-dc
    • Added --architecture and --format options to relevant commands.
    • Reduced the excessive number of tasks spawned in PackCommand.
      • This slightly improves the time it takes to load data sheets, and cuts down a bit on memory usage.

v2.0.280

13 Dec 17:25
v2.0.280
f13cd07
Compare
Choose a tag to compare
  • Updated to .NET 8.0.0.
  • Updated library dependencies.
    • Updated protobuf-net to 3.2.26.
  • Applied [SkipLocalsInit] to all libraries.
  • Applied [DisableRuntimeMarshalling] to all libraries.
  • Vezel.Novadrop.Formats
    • Added a TrimExcess method to DataCenterNode.
    • Removed the SetAttribute method from DataCenterNode (it was never meant to be public).
    • Changed the Name property on DataCenterNode to be mutable (if the node is actually mutable).
    • Added a collection of navigation extension methods for DataCenterNode.
    • Rearranged fields on DataCenterValue to reduce memory usage.
    • Fixed some memory safety issues due to incorrect usage of Unsafe and MemoryMarshal classes.
  • Vezel.Novadrop.Client
    • Overhauled client and launcher interaction APIs.
      • The message server types now encapsulate just a window, rather than both a child process and a window. It is now the responsibility of callers to actually start the child process.
      • Renamed GameProcess to GameMessageServer, ClientProcess to ClientMessageServer, and LauncherProcess to LauncherMessageServer.
      • Renamed ClientProcessOptions to ClientMessageServerOptions and LauncherProcessOptions to LauncherMessageServerOptions.
      • Removed the FileName and Language properties from ClientMessageServerOptions.
      • Removed the FileName property from LauncherMessageServerOptions.
      • Removed the Id (process ID) property from GameMessageServer.
      • Replaced the RunAsync() method on GameMessageServer with Start factory methods on ClientMessageServer and LauncherMessageServer.
      • Implemented IDisposable on GameMessageServer.
      • Added OpenWebsiteRequested and OpenSupportWebsiteRequested events to ClientMessageServer.
    • Removed all Vezel.Novadrop.Memory and Vezel.Novadrop.Patches APIs.
  • Vezel.Novadrop.Interop
    • Introduced a low-level library for in-memory interoperation with the game client (e.g. after assembly injection with Ruptura).
    • The interop bindings target the unpacked r387486 client by default, but the API allows overriding address resolution if needed.
    • This library should be considered experimental; the API shape will evolve over time without the usual major version bumps required by Semantic Versioning.
  • novadrop-dc
    • Fixed validation errors during pack not having line and column information.
    • Changed validation diagnostics to be printed in a more machine-friendly way (<file>(<line>,<column>): <severity>: <message>).
  • novadrop-run
    • This tool has been removed as it did not appear to have any users; it mostly served as a tech demo for the Vezel.Novadrop.Client APIs.
  • novadrop-scan
    • This tool has been removed as it became obsolete when the game stopped being updated.

v1.1.20

30 Mar 17:39
v1.1.20
baf07ee
Compare
Choose a tag to compare
  • Applied ValueTask pooling optimizations throughout the project.
  • Fixed some argument validation exceptions being incorrectly thrown asynchronously.
  • Fixed warning message from novadrop-dc schema not being marked up.

v1.1.14

13 Mar 19:18
v1.1.14
f1f2031
Compare
Choose a tag to compare
  • Fixed log messages from tools sometimes being misinterpreted as containing markup.

v1.1.13

09 Mar 19:40
v1.1.13
2bff46d
Compare
Choose a tag to compare
  • Implemented deduplication of nodes and attributes when serializing data center files.
  • Added novadrop-dc schema command which can generate schemas from a data center file.
    • Note that these schemas still require a human touch as e.g. recursive structures cannot be determined accurately.
  • Fixed some incorrect minOccurs/maxOccurs attributes in the set of embedded schemas.
  • Fixed DataCenterExtensions.Descendants() returning nodes in the wrong order.

v1.0.16

23 Nov 15:30
v1.0.16
Compare
Choose a tag to compare
  • Fixed tools still emitting escape sequences when output is redirected.
  • Fixed novadrop-rc verify not printing hashes in lower case.
  • Fixed DataSheetValidationHandler using an incorrect color for the "more problems" message.
  • Fixed tools executing their post-execute step even if the main execute step failed.
  • Fixed Servers properties on LauncherProcessOptions and ClientProcessOptions not being cloned correctly.
  • Fixed some issues in the Modules property on NativeProcess.