Skip to main content

Python library for parsing binary files from Halo Infinite.

Project description

libpyinfinite

latest

LibPyInfinite is a typed python library for parsing Halo Infinite binary files. It implements a module and tag reader that can be used indepently or in conjunction, with a loader utility for ease of use.

Installation

Libpyinfinite is available on pypi.

pip install libpyinfinite

Example Usage

Reading a module:

from libpyinfinite.module.moduleLoader import ModuleLoader

loader = ModuleLoader()

# replace game_folder with Halo Infinite installation directory.
loader.loadModule("{game_folder}/deploy/any/globals/globals-rtx-new.module")

Creating a Oodle Decompressor:

Oodle is a decompression library used to pack module files, requiring DLL calls to oo2core_8_win64.dll. This is achieved by either directly specifying the DLL or in Linux systems, using linoodle.

loader.createDecompressor("./oo2core_8_win64.dll") # Windows 64-Bit
loader.createDecompressor("./linoodle.so") # Linux/Linux-like. (Requires DLL to be in the same directory.)

Reading a tag from loaded modules:

loaded_tag = loader.loadTag(0x5631) # load tag ID 0x5631
if loaded_tag: # check if it has loaded
    print(loaded_tag.Header.assetChecksum)
    
>>> 7056930766363866713

Using defined tag structures

# Reading "RUCY" tag
from libpyinfinite.tag.definitions.rucy import RuntimeCoatingStyleTag

if loaded_tag.ModuleEntry.classId == b"rucy": # check if tag is of type "rucy"
    rucy = RuntimeCoatingStyleTag()
    rucy.read(loaded_tag)
    print(rucy.info.emissiveIntensity)

>>> 0.00

Credits

  • MontagueM for OodleDecompressor
  • Gamergotten for TagFramework
  • Coreforge for libinfinite
  • Z-15 for HITE
  • Urium86 for pyhirtlib and LibHIRT
  • Shockfire for Ausardocs

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

libpyinfinite-0.0.5.tar.gz (41.2 kB view details)

Uploaded Source

Built Distribution

libpyinfinite-0.0.5-py3-none-any.whl (49.1 kB view details)

Uploaded Python 3

File details

Details for the file libpyinfinite-0.0.5.tar.gz.

File metadata

  • Download URL: libpyinfinite-0.0.5.tar.gz
  • Upload date:
  • Size: 41.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for libpyinfinite-0.0.5.tar.gz
Algorithm Hash digest
SHA256 eec9b8a3cd77ef1e6448bdce95ee33bbfe0f92e324e1beafc20f5077930a23b6
MD5 582a63a4b7daffabace36f205de6f575
BLAKE2b-256 1274c7bb17d1ede8307bc4f493fe3c5598e607ae2d0bc3ec6efcccfa81630101

See more details on using hashes here.

File details

Details for the file libpyinfinite-0.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for libpyinfinite-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 7ebf2df0e6108e49f94c5f4ee71ef880d29ac1fd47e6e43e44b6d570f771f8b1
MD5 b0fb7b8f104b3af00ef6609f80906021
BLAKE2b-256 24869d03d7226e1c81be195b24bb25977a1147989b2f2435ba26be125e8a1f87

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page