/nifskope

Fork of NifSkope 2.0.dev9 with many fixes and improvements.

Primary LanguageC++OtherNOASSERTION

NifSkope 2.0.dev9

NifSkope is a tool for opening and editing the NetImmerse file format (NIF). NIF is used by video games such as Morrowind, Oblivion, Skyrim, Fallout 3/NV/4/76, Starfield, Civilization IV, and more.

This is an experimental fork of 2.0.dev9 with many improvements to Starfield support, and a number of fixes to issues related to older games. See CHANGELOG.md for details.

Download

Binary packages for Windows and Linux can be downloaded from Releases. The most up to date builds are automatically generated on any change to the source code, and are available as artifacts from GitHub workflows under Actions. Note that downloading artifacts requires signing in to GitHub. Binaries have been built for CPUs with support for AVX2, or AVX and F16C (NifSkope_noavx2.exe).

You can also download the latest official release from niftools/nifskope, or development builds from hexabits/nifskope.

Notes:

Running NifSkope under Wayland on Linux may require setting the QT_QPA_PLATFORM environment variable to "xcb":

QT_QPA_PLATFORM=xcb ./NifSkope

The resource manager in this version of NifSkope is optimized for PCs with solid-state drives. While hard disk drives generally also work, if the number of loose resources is large, load times can be significantly shorter on an SSD when the data is not cached yet by the operating system.

Building from source code

Compiling NifSkope requires Qt 6.2 or newer. On Windows, MSYS2 can be used for building. After running the MSYS2 installer, use the following commands in the MSYS2-UCRT64 shell to install required packages:

pacman -S base-devel mingw-w64-ucrt-x86_64-gcc
pacman -S mingw-w64-ucrt-x86_64-qt6-base mingw-w64-ucrt-x86_64-qt6-3d mingw-w64-ucrt-x86_64-qt6-5compat
pacman -S mingw-w64-ucrt-x86_64-qt6-imageformats mingw-w64-ucrt-x86_64-qt6-tools
pacman -S git

Using the MSYS2-CLANG64 environment instead of UCRT64 is also supported, in this case, the ucrt in the package names needs to be replaced with clang.

All installed MSYS2 packages can be updated anytime later by running the command 'pacman -Syu'. To download the complete NifSkope source code, use 'git clone' as follows:

git clone --recurse-submodules https://github.com/fo76utils/nifskope.git

Finally, run 'qmake6' and then 'make' in MSYS2-UCRT64 to build the source code (the -j 8 option sets the number of processes to run in parallel). The resulting binaries and required DLL files and resources are placed under 'release'.

cd nifskope
qmake6 NifSkope.pro
make -j 8

By default, code is generated for Intel Haswell or compatible CPUs, including the AMD Zen series or newer. Running qmake with the noavx2=1 option reduces the requirement to Intel Ivy Bridge or AMD FX CPUs, and nof16c=1 to Sandy Bridge. To build for even older hardware, use noavx=1 or edit the compiler flags in NifSkope.pro.

Adding the debug=1 option to the qmake command enables compiling a debug build of NifSkope.

Issues

Anyone can report issues specific to this fork at GitHub.

Contribute

You can fork the latest source from GitHub. See Fork A Repo on how to send your contributions upstream. To grab all submodules, make sure to use --recursive like so:

git clone --recursive git://github.com/<YOUR_USERNAME>/nifskope.git

For information about development:

  • Refer to our GitHub wiki for information on compilation.

Miscellaneous

Refer to these other documents in your installation folder or at the links provided: