Skip to content

Releases: niv/neverwinter.nim

1.6.1

19 Jul 07:55
Compare
Choose a tag to compare

[1.6.1] - 2023-07-19

Script Compiler

With 1.6.0, the official nwscript compiler source code has been added to the repository, licenced as GPL-3.0. This release builds on this:

  • Parser now understands floating point values such as 0f, .0 and .42f.
  • For loops can now take non-integer expressions in the first and third part of a loop statement. (e.g. floating point values now work).
  • Constant folding: const declarations can now contain any constant expression (such as arithmetics), including previously defined consts.
  • Instruction melding: A second pass over the generated bytecode will now meld some redundant instructions together.
  • Where possible, expressions are now evaluated at compile time (instead of runtime).
  • The CLI utility can now utilise all CPU cores to compile scripts in parallel.
  • The script compiler will ensure no outdated .ndb remains when re/compiling scripts without debugging support enabled.
  • Fixed structures passed using the ?: operator causing a bad compiler state.
  • The script compiler has gained support for enabling optimisations. Currently available:
    • -O0 Turn off all optimisations
    • -O2: Turn on all optimisations:
      • Constant folding
      • Instruction melding
      • Removing all dead/unused code

Bytecode Disassembler

  • nwn_asm can now decode DE_STRUCT instructions.
  • nwn_asm can now disable loading .ndb with a cli flag, if no per-function disassembly is desired.
  • nwn_asm now prints global offsets in addition to per-function offsets when .ndb is enabled.
  • nwn_asm can now optionally weave the originating source code into the disassembly, if both source code and .ndb is available.

Other utilities

  • Fixed regression introduced with 1.6.0 that resulted in GFF files failing to compile with a integer out of range error.
  • All cli utilities now support the flag --silent to hide all output, even errors. Errors can be detected by checking the process exit code.
  • Performance improvements on internal data structures to make utilities start up faster.
  • Added some legacy (currently unused) restypes: .res, .wfx

Note: [Windows only!] Still unsure about amd64 windows binaries. Mingw fseek bug probably persists and I have no time to look into it. To be safe, or if you run into stream exceptions on known-good data, pick the i386 variant.

1.6.0

07 Jul 08:54
Compare
Choose a tag to compare
1.6.0 Pre-release
Pre-release

[1.6.0] - 2023-07-06

Added

  • First public release of the game script compiler source code.
  • New CLI utility: nwn_script_comp.

Fixed

  • Builtin resman will no longer warn about missing _loc keytable on startup (they're optional for some languages).

Note: [Windows only!] Still unsure about amd64 windows binaries. Mingw fseek bug probably persists and I have no time to look into it. To be safe, or if you run into stream exceptions on known-good data, pick the i386 variant.

1.5.9

01 Mar 20:08
Compare
Choose a tag to compare

[1.5.9] - 2023-03-01

Changed

  • TwoDA library now considers "" cells empty and transforms them into ****.
  • CLI utils: compressedbuf, gff, ssf, tlk, twoda now read input stream fully before writing to it, allowing write back to same file.

Fixed

  • ExoLocStr legacy codepath reader now correctly reads in id field.

1.5.8

03 Nov 11:07
Compare
Choose a tag to compare
  • Fixed a regression with regards to adding erf/dirs to resman utilities introduced in 1.5.7
  • Removed all support for loading 1.69 keybif layouts, as they were bitrotting anyways. If you want to use these utilities with NWN Diamond Edition, use earlier versions of these utilities.
  • Fix divining user root folder on linux and windows @mtijanic

Note: [Windows only!] Still unsure about amd64 windows binaries. Mingw fseek bug probably persists and I have no time to look into it. To be safe, or if you run into stream exceptions on known-good data, pick the i386 variant.

1.5.7

22 Oct 12:06
Compare
Choose a tag to compare
1.5.7 Pre-release
Pre-release
  • NWN_HOME env var is now the primary variant for userdir detection
  • added helper to quickly stand up a ResMan instance that should behave identical to game variant (moved out of shared.nim)
  • copied over manifest reader/writer code from nwsync.nim and made it available in neverwinter/nwsync.
  • Added a simple ncs disasm (not functional yet)
  • gffjson: retcon the strref "id" field of cexolocstr to behave as the game does (where I messed up the nesting, so the lib now needs to follow both data formats)
  • gff: be more verbose about duplicate field errors
  • Cleaned up some stray debug printing
  • Removed all traces of progressbar support - all it managed to do was break terminals

I think mingw amd64 build is still broken. Use with care/use 32bit variant if you run into file/stream issues.

1.5.6

17 Apr 08:03
Compare
Choose a tag to compare
1.5.6 Pre-release
Pre-release
  • Added --minify to nwn_2da via #45

1.5.5

11 Feb 09:27
Compare
Choose a tag to compare
  • Fixed an issue where a 32bit windows build was was erroring out on needless type conversions in gffjson: #44
  • depend on and build with nim 1.6.4

1.5.4

15 Dec 21:42
Compare
Choose a tag to compare
  • Fixed #42: JSON output of nwn_gff erroneously ending in clrf instead of lf.
  • Some internal API changes, made game/user root finder helpers available to library consumers.

1.5.3

05 Dec 11:53
Compare
Choose a tag to compare
  • Added RESTYPE_JUI.
  • nwn_erf will now error out when the resulting file would exceed 2GB.
  • Attempted fix for windows DLLs.
  • Nim 1.6.0.

1.4.5

10 Sep 18:13
Compare
Choose a tag to compare

Added the missing restypes from the previous game builds.