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.Handle) # Handle is the raw data from the 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.3.tar.gz (37.8 kB view details)

Uploaded Source

Built Distribution

libpyinfinite-0.0.3-py3-none-any.whl (45.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: libpyinfinite-0.0.3.tar.gz
  • Upload date:
  • Size: 37.8 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.3.tar.gz
Algorithm Hash digest
SHA256 f78062f06e9ae6041396b218b751dfd3bb2204faf7f956e39fe4acf49fb1bbbf
MD5 8cac2e477d52ab3d978e3499233fe0ff
BLAKE2b-256 64cc0d87e789579ce97207eef2a07d3af113744ba6e2b5a20ca3b4190ff8d65a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libpyinfinite-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 682437badb5d686f5ef14a810daca0a4763f160fcf70eff3f9c3642c2285e4a8
MD5 de9538648b6b101a1b55b35b23d5e415
BLAKE2b-256 d9be28667b7805a361ae06c413dc079b29be7c2e6bf9b95f140a6549ac20a198

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