Python library for parsing binary files from Halo Infinite.
Project description
libpyinfinite
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)
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | eec9b8a3cd77ef1e6448bdce95ee33bbfe0f92e324e1beafc20f5077930a23b6 |
|
MD5 | 582a63a4b7daffabace36f205de6f575 |
|
BLAKE2b-256 | 1274c7bb17d1ede8307bc4f493fe3c5598e607ae2d0bc3ec6efcccfa81630101 |
File details
Details for the file libpyinfinite-0.0.5-py3-none-any.whl
.
File metadata
- Download URL: libpyinfinite-0.0.5-py3-none-any.whl
- Upload date:
- Size: 49.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7ebf2df0e6108e49f94c5f4ee71ef880d29ac1fd47e6e43e44b6d570f771f8b1 |
|
MD5 | b0fb7b8f104b3af00ef6609f80906021 |
|
BLAKE2b-256 | 24869d03d7226e1c81be195b24bb25977a1147989b2f2435ba26be125e8a1f87 |