First public commit.
This commit is contained in:
parent
2a48f52979
commit
4bac9d83ed
288 changed files with 18417 additions and 1076 deletions
45
lenser/intv/palette.py
Normal file
45
lenser/intv/palette.py
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
"""Mattel Intellivision STIC 16-colour palette (MAME `intv` values).
|
||||
|
||||
Verified against MAME pixel reads (white=7 #FFFCFF, brown/olive=11 #546E00,
|
||||
magenta=15 #B51A58). In Color-Stack mode the per-card FOREGROUND is limited to
|
||||
the first 8 colours (3 bits); the BACKGROUND (colour-stack entry) may be any of
|
||||
the 16.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import numpy as np
|
||||
|
||||
from ..palette import srgb_to_lab
|
||||
|
||||
STIC = np.array([
|
||||
(0x00, 0x00, 0x00), # 0 black
|
||||
(0x00, 0x2D, 0xFF), # 1 blue
|
||||
(0xFF, 0x3D, 0x10), # 2 red
|
||||
(0xC9, 0xCF, 0xAB), # 3 tan
|
||||
(0x38, 0x6B, 0x3F), # 4 dark green
|
||||
(0x00, 0xA7, 0x56), # 5 green
|
||||
(0xFA, 0xEA, 0x50), # 6 yellow
|
||||
(0xFF, 0xFC, 0xFF), # 7 white
|
||||
(0xBD, 0xAC, 0xC8), # 8 grey
|
||||
(0x24, 0xB8, 0xFF), # 9 cyan
|
||||
(0xFF, 0xB4, 0x1F), # 10 orange
|
||||
(0x54, 0x6E, 0x00), # 11 brown / olive
|
||||
(0xFF, 0x4E, 0x57), # 12 pink
|
||||
(0xA4, 0x96, 0xFF), # 13 light blue
|
||||
(0x75, 0xCC, 0x80), # 14 yellow-green
|
||||
(0xB5, 0x1A, 0x58), # 15 magenta
|
||||
], dtype=np.float64)
|
||||
|
||||
# Foreground colours usable per card in Color-Stack mode (3-bit field).
|
||||
FG_USABLE = list(range(8))
|
||||
# Background (colour-stack) may be any of the 16.
|
||||
BG_USABLE = list(range(16))
|
||||
|
||||
|
||||
def get_palette() -> np.ndarray:
|
||||
return STIC
|
||||
|
||||
|
||||
def palette_lab() -> np.ndarray:
|
||||
return srgb_to_lab(STIC)
|
||||
Loading…
Add table
Add a link
Reference in a new issue