Skip to content

GrzybDev/NorthlightTools

Repository files navigation

Northlight Tools

Collection of various tools for Northlight Engine used for Polish fan translation of Quantum Break!

Table of Contents

Features

Northlight Tools provides the following utilities:

  • Remedy Package Tools (rmdp):
    Allows you to extract, pack, and inspect Remedy package files (.bin/.rmdp).

    • Export: Extract all files from a package to a directory.
    • Import: Pack a directory of files into a new Remedy package.
    • Info: Print metadata and structure of a package.
    • List-files: List all files contained in a package.
  • String Table Tools (string-table):
    Enables conversion between string_table.bin and editable formats (XML, JSON, CSV, PO), and re-importing translations.

    • Export: Convert string_table.bin to XML, JSON, CSV, or PO for translation.
    • Import: Generate a new string_table.bin from a translated file.
    • Flexible handling of missing translations with the --missing-strings option.
  • Binary Font Tools (binfnt):
    Supports decompiling and compiling Northlight binary font files (.binfnt).

    • Decompile: Convert .binfnt to editable xml metadata and png bitmap(s), optionally extracting each character to seperate bitmap file.
    • Compile: Build a .binfnt from xml metadata and bitmap(s).

Requirements

  • Python 3.11+

Installing

Either use compiled portable build for Windows or Linux from Releases page or use your python package management system (like pipx or uv)

Example: pipx install git+https://github.com/GrzybDev/NorthlightTools.git

Usage

After installing the package, you can use the tools via the northlighttools command (or python -m northlighttools for local installs).

General

northlighttools --help

String Table Tools

Export a string_table.bin to XML, JSON, CSV, or PO:

northlighttools string-table export path/to/string_table.bin --output-type xml
northlighttools string-table export path/to/string_table.bin --output-type json
northlighttools string-table export path/to/string_table.bin --output-type csv
northlighttools string-table export path/to/string_table.bin --output-type po

Import a translation file (XML, JSON, CSV, PO) and generate a new string_table.bin:

northlighttools string-table import path/to/translated_file.xml
northlighttools string-table import path/to/translated_file.csv --missing-strings key

Options for --missing-strings:

  • key+original (default): Use both the key and the original string as the fallback, e.g. (KEY) Original text.
  • key: Use only the key as the fallback for missing translations.
  • original: Use only the original (source) string as the fallback.
  • empty: Use an empty string for missing translations.
  • remove: Remove entries with missing translations from the output file.
  • error: Raise an error if any translation is missing (import will fail).

Remedy Package Tools (rmdp)

Show info about a package:

northlighttools rmdp info path/to/archive.rmdp

List files in a package:

northlighttools rmdp list path/to/archive.rmdp

Extract all files from a package:

northlighttools rmdp extract path/to/archive.rmdp path/to/output_dir

Pack a directory into a Remedy package:

northlighttools rmdp pack path/to/input_dir path/to/output_archive.rmdp

You can customize the package creation with these options:

  • --endianness: Set the byte order for the package files. Use little (default) for most cases, or big if required by your target game/version.
  • --version: Specify the package format version. Supported values:
    • 2 for Alan Wake
    • 7 for Alan Wake: American Nightmare
    • 8 for Quantum Break (default)
    • 9 for Control

Binary Font Tools (binfnt)

Decompile a .binfnt file to editable XML and bitmap(s):

northlighttools binfnt decompile path/to/font.binfnt path/to/output_dir

To save each character as a separate image:

northlighttools binfnt decompile path/to/font.binfnt path/to/output_dir --separate-chars

Compile metadata and bitmap(s) back to .binfnt:

northlighttools binfnt compile path/to/modified.xml path/to/output.binfnt

Each command has its own help, e.g.:

northlighttools binfnt --help
northlighttools rmdp extract --help

Credits

Thanks to:

Special thanks to:

  • Remedy Entertainment (for making Northlight Engine)

Sponsor this project

 

Packages

No packages published

Contributors 2

  •  
  •  

Languages