unvivtool is a VIV/BIG decoder/encoder for uncompressed BIGF, BIGH, and BIG4 archives. unvivtool is available as command-line interface, and as Python extension module. It is based on a header-only library written in C89. Python bindings are written in CPython. Supported on Windows and Linux. Tested on macOS.
Purported VIV/BIG archives can contain faulty or manipulated header information. unvivtool is designed to validate and recover data as much as possible.
- decode and encode archive
- validate archive
- decode entire archive at once
- drag-and-drop mode for command-line interface
- encode files in specified order
- full UTF8 support
- auto-rename duplicated filenames
- option: retrieve a single file from archive (by index or filename)
- option: list archive contents without writing to disk (dry run)
- option: support non-printable filenames in archive (Base16 representation)
- option: decode/encode with set fixed directory entry length
- compatible with Windows 98 and later
- typical memory usage ~50-100 kB; worst case ~25 MB
The formats are called BIGF
, BIGH
, and BIG4
(equals first 4 bytes).
Typical file extensions are .VIV
and .BIG
.
Command-line interface: /cli/README.md
Python extension module: /python/README.md
The canonical BIGF format description was taken from [1].
[1] D. Auroux et al. The unofficial Need For Speed III file format specifications - Version 1.0 [1998]
unvivtool License: GNU General Public License v3.0+
Website: https://github.com/bfut/unvivtool
Third party licenses
sclpython.h: zlib License
UTF-8 Decoder dfa.h: MIT License