Skip to content

bfut/unvivtool

Repository files navigation

unvivtool

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.

Features

  • 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

File format

The formats are called BIGF, BIGH, and BIG4 (equals first 4 bytes).
Typical file extensions are .VIV and .BIG.

Installation / Documentation / Examples

Command-line interface: /cli/README.md
Python extension module: /python/README.md

References

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]

Information

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

About

VIV/BIG decoder/encoder - CLI and Python module in C. Supports BIGF BIGH BIG4

Resources

License

Stars

Watchers

Forks

Packages

No packages published