summaryrefslogtreecommitdiff
path: root/tools/assets/n64.py
blob: e3ebf705280f3014f613f51d9eda4c75d812da28 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# SPDX-FileCopyrightText: © 2025 ZeldaRET
# SPDX-License-Identifier: CC0-1.0

import enum


class G_IM_FMT(enum.Enum):
    RGBA = 0
    YUV = 1
    CI = 2
    IA = 3
    I = 4

    def __init__(self, i: int):
        self.i = i

    by_i: dict[int, "G_IM_FMT"]


G_IM_FMT.by_i = {fmt.i: fmt for fmt in G_IM_FMT}


class G_IM_SIZ(enum.Enum):
    _4b = (0, 4)
    _8b = (1, 8)
    _16b = (2, 16)
    _32b = (3, 32)

    def __init__(self, i: int, bpp: int):
        self.i = i
        self.bpp = bpp

    by_i: dict[int, "G_IM_SIZ"]


G_IM_SIZ.by_i = {siz.i: siz for siz in G_IM_SIZ}


G_MDSFT_TEXTLUT = 14


class G_TT(enum.Enum):
    NONE = 0b00 << G_MDSFT_TEXTLUT
    RGBA16 = 0b10 << G_MDSFT_TEXTLUT
    IA16 = 0b11 << G_MDSFT_TEXTLUT

    def __init__(self, i: int):
        self.i = i

    by_i: dict[int, "G_TT"]


G_TT.by_i = {tt.i: tt for tt in G_TT}