retro-data-structures

Construct file definitions for the Retro Studios game engine files


License
MIT
Install
pip install retro-data-structures==0.21.0

Documentation

Retro-data-structures

Construct type definitions for Retro Studios game

Format Prime 1 (Read) Prime 1 (Write) Prime 2 (Read) Prime 2 (Write) Prime 3 (Read) Prime 3 (Write)
PAK ✓ ✓ ✓ ✓ ✗ ✗
MLVL ✓ ✗ ✓ ✗ ✓ ✗
MREA ✗ ✗ ✓ ✗ [2] ✗ ✗
MAPA ✓ ✗ ✓ ✗ ✗ ✗
CMDL ✓ ✓ ✓ ✓ ✗ ✗
ANCS ✓ ✓ ✓ ✓ ✗ ✗
ANIM ✓ ✓ ✓ ✓ ✗ ✗
CSKR ✓ ✓ ✓ ✓ ✗ ✗
CINF ✓ ✓ ✓ ✓ ✗ ✗
PART ✓ ✓ ✓ ✓ ✓ [1] ✓ [1]
HIER - - ✓ ✓ - -
STRG ✓ ✓ ✓ ✓ ✓ ✓
SAVW ✓ ✓ ✗ ✗ ✗ ✗
  • [1] All existing files parse, but not checked if exhaustive for what the game supports.
  • [2] Missing re-calculation of how sections are split between blocks.

Example Usage

from retro_data_structures.formats.pak_gc import PAK_GC


def read_file(path):
    with open(path, "rb") as f:
        return f.read()


PAK_GC.build_file({
    'named_resources': [
        {"asset": {"type": 'TXTR', "id": 201335801}, "name": 'TXTR_ElevatorIcon_1'},
        {"asset": {"type": 'TXTR', "id": 239414538}, "name": 'TXTR_ElevatorIcon'},
        {"asset": {"type": 'TXTR', "id": 564256465}, "name": 'TXTR_QuaterCurve'},
        {"asset": {"type": 'TXTR', "id": 568030977}, "name": 'TXTR_SaveStationIcon_1'},
    ],
    'resources': [
        {
            "asset": {"type": 'TXTR', "id": 201335801},
            "compressed": 1,
            "contents": {"value": read_file("ElevatorIcon_1.TXTR")},
        },
        {
            "asset": {"type": 'TXTR', "id": 201335801},
            "compressed": 1,
            "contents": {"value": read_file("ElevatorIcon.TXTR")},
        },
        {
            "asset": {"type": 'TXTR', "id": 201335801},
            "compressed": 1,
            "contents": {"value": read_file("QuaterCurve.TXTR")},
        },
        {
            "asset": {"type": 'TXTR', "id": 201335801},
            "compressed": 1,
            "contents": {"value": read_file("SaveStationIcon_1.TXTR")},
        },
    ]
}, "Game.pak")