unvivtool is a VIV/BIG decoder/encoder for BIGF, BIGH, and BIG4 archives. Available as command-line interface and Python extension module. Based on a dependency-free 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 information. unvivtool is designed to validate and recover data wherever possible. The decoder performs a single pass buffered read of the archive header only; content extraction is optional.
C/C++ developers can drop in the encoder/decoder or use data analysis functions directly from libnfsviv.h.
- memory usage typically peaks below 20 kB even for large archives; worst case ~25 MB
- archive decode/encode and validation
- encode files in specified order
- support UTF8 filenames in archive
- drag-and-drop CLI mode
- option: auto-rename duplicated filenames on decode
- option: extracts single file from archive (by index or filename)
- option: dry‑run archive contents listing (no disk write)
- option: encode to align file offsets to power-of-two boundary
- option: support non-printable filenames in archive (Base16 representation)
- option: decode/encode with set fixed directory entry length
- Win98 compatible
The supported archive formats are called BIGF, BIGH, BIG4, 0x8000FBC0, and wwww (equals first 4 bytes).
The first four are variants of the same, the last is a precursor.
All are derived from EA IFF 85 (see [2]).
Archives can be arbitrarily large and may contain an unlimited number of entries.
Common 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].
Unofficial descriptions of fixed directory entry length, format deviations and 0x8000FBC0 (see [3]), own work.
[1] D. Auroux et al. (1998) The unofficial Need For Speed III file format specifications - Version 1.0
[2] J. Morrison (1985) "EA IFF 85" Standard for Interchange Format Files
[3] B. F. (2024) Unofficial 0xFBC0 File Format Specification (.viv)
unvivtool License: GNU General Public License v3.0+
Website: https://github.com/bfut/unvivtool
Portions copyright, see each source file for more information.