"""TI-99/4A TMS9918A Video Display Processor palette (15 colours + transparent).""" from __future__ import annotations import numpy as np from ..palette import srgb_to_lab # TMS9918A colours, index 0 = transparent (we never use it for pixels). # Common measured RGB values. TMS9918 = np.array([ (0x00, 0x00, 0x00), # 0 transparent (treated as black for matching) (0x00, 0x00, 0x00), # 1 black (0x21, 0xc8, 0x42), # 2 medium green (0x5e, 0xdc, 0x78), # 3 light green (0x54, 0x55, 0xed), # 4 dark blue (0x7d, 0x76, 0xfc), # 5 light blue (0xd4, 0x52, 0x4d), # 6 dark red (0x42, 0xeb, 0xf5), # 7 cyan (0xfc, 0x55, 0x54), # 8 medium red (0xff, 0x79, 0x78), # 9 light red (0xd4, 0xc1, 0x54), # 10 dark yellow (0xe6, 0xce, 0x80), # 11 light yellow (0x21, 0xb0, 0x3b), # 12 dark green (0xc9, 0x5b, 0xba), # 13 magenta (0xcc, 0xcc, 0xcc), # 14 grey (0xff, 0xff, 0xff), # 15 white ], dtype=np.float64) # Palette indices usable as pixel colours (1..15). USABLE = list(range(1, 16)) def get_palette() -> np.ndarray: return TMS9918 def palette_lab() -> np.ndarray: return srgb_to_lab(TMS9918)