This command line program allows modification of required game version string and expansion number stored in MOD V1.0 files (*.mod, *.sav). It may be used to prevent the NWN engine from refusing to load a module or a save made by an updated version of the game. This allows, for example, to play an Enhanced Edition module on 1.69 (Diamond XP3) or to perform debug / compatibility tests. This DOES NOT guarantee however that such module or save will be playable or that the game won't hang up or crash while trying to run them. Use at your own risk and always make backups.
Source code is provided.
DESCRIPTION
This program accesses module.ifo V3.28 GFF file stored in MOD V.1.0 ERF file, which can be either a module (*.mod) or a saved game (*.sav), and changes two entries to values passed by user through -V and -E options:
When loading a module (i.e. new game), NWN engine checks values of above entries against its own values stored in nwmain executable. If data from the module is higher than data from the binary, loading is aborted with a "This module was created with updated version of Neverwinter Nights." error message. The same happens while opening the module in the toolset.
This program allows changing (i.e. lowering) of values of above entries in a module / save to whatever valid is passed with -V or -E options. Thanks to this, the game will proceed with loading of such file and will try to play it. For example, it provides a way to run Enhanced Edition modules in 1.69. However this DOES NOT mean that they will be playable.
While there is a possibility that modules made (or at least saved) with updated version of the toolset will work with older version of the game, there is no guarantee the game won't crash, saves won't become corrupted or that some functionality of the module won't be lost (such as halted progress due to calls to unavailable NWscript subroutines). Therefore:
AUTHOR OF THIS PROGRAM DOES NOT TAKE RESPONSIBILITY FOR ANY DAMAGE THIS PROGRAM OR ITS OUTPUT MAY CAUSE TO YOUR MODULES, YOUR GAME INSTALLATION, YOUR COMPUTER SYSTEM, ETC. USE AT YOUR OWN RISK AND ALWAYS MAKE BACKUPS.
Syntax: nwndemodulator(.exe) options input.mod [output.mod]
Options:
-h show this screen and exit
-i display module/save file ID as hexadecimal string
-b display module/save file build date in YYYY/MM/DD format
-v display current game version value stored in module/save file
-e display current game expansion value stored in module/save file
-V ARG set game version value stored in module/save file to ARG
-E ARG set game expansion value stored in module/save file to ARG
-y assume YES answer to output file overwrite confirmation
-n assume NO answer to output file overwrite confirmation
Data is read from input.mod and written to output.mod. Output.mod is not required when -V and -E options are not used. If the module has already been tampered with by this program an extra notification will be shown.
You can observe example usage on graphical abstract of this project (note: it's from older version, but the messages have the same meaning).
CHANGELOG
1.1 (2019-01-03)
1.0 (2018-10-31)
INSTALLATION
For Windows: extract executable to any location on local drive. Installation of NWN is not required. This is a command line utility - run it from cmd shell.
For POSIX: no binary provided - compile from source. You probably know what to do. Only standard C library is required.
Attachment | Size |
---|---|
nwn_demodulator_1.1_win32_binary.7z (240) | 34.42 KB |
nwn_demodulator_1.1_posix_source.7z (180) | 17.55 KB |
nwn_demodulator_1.1.txt | 7.88 KB |
Name of this program doesn't make a lot of sense. I just wanted something that sounded like "demote" and "module", and was catchy.
Also please remember there is no magic involved here. It won't provide any compatibility layer. It just makes the game not bail out straight away. It all depends how much "future" features were introduced in a given module.
I discourage from publishing modules hacked with this tool, of course unless you know what you are doing.
A very good idea for lazy builders (yes, i am a lazy Gnome). I can manage editing nwn files but having a "straight from the box" utility is a great thing. Keep up the good work!
CG
Thanks. Technically one could do a dirty hex edit, but this is safer.
Please report here any bugs you encounter.
I actually found a bug myself: v. 1.0 doesn't work with saved games. Ttheir Mod_ID has 32 bytes instead of 16 and their module.ifo starts with capital "M". It was trivial to fix and so new version will be posted after Christmas.
As promised, version 1.1 is released. Here's the changelog:
Note that I also changed how original game version is stored in the module, so expect weird notifications when working with files modified with version 1.0.
An excellent and easy to use tool for getting your module to work in an earlier version of NWN. My anti-virus software did complain when I tried to use the tool, but it was a false positive and par for the course for tools like this one.
The tool's author also rendered invaluable assistance in removing the EE functions from the scripts I used in my module.