First public commit.
This commit is contained in:
parent
2a48f52979
commit
4bac9d83ed
288 changed files with 18417 additions and 1076 deletions
30
lenser/a7800/convert/__init__.py
Normal file
30
lenser/a7800/convert/__init__.py
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
"""Atari 7800 conversion dispatch.
|
||||
|
||||
The 7800's MARIA chip has its own architecture (display lists + zones + objects),
|
||||
nothing like ANTIC/GTIA -- but its 160A graphics mode is 2 bits/pixel, 4 px/byte,
|
||||
exactly the packing of ANTIC mode E (Atari GR.15). So the per-mode encoders pack
|
||||
160x192 2bpp bitmaps the same way GR.15 does and reuse the Atari 256-colour NTSC
|
||||
palette + dither-aware selection; the MARIA-specific display lists are built by
|
||||
the cartridge packer (viewer/assemble.py).
|
||||
|
||||
Modes: ``c160`` = 25-colour 160A (8 MARIA palettes, per-segment palette choice);
|
||||
``mono`` = luminance two-tone / tinted.
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
from ... import imageprep
|
||||
from . import c160, mono
|
||||
|
||||
_MODULES = {"c160": c160, "mono": mono}
|
||||
MODES = list(_MODULES.keys())
|
||||
|
||||
|
||||
def convert_image(path_or_img, mode="c160", palette_name="ntsc",
|
||||
dither_mode="floyd", intensive=False, prep_opt=None,
|
||||
base_color=None):
|
||||
prep_opt = prep_opt or imageprep.PrepOptions()
|
||||
module = _MODULES.get(mode, c160)
|
||||
img_rgb = imageprep.prepare(path_or_img, module.WIDTH, module.HEIGHT,
|
||||
module.PIXEL_ASPECT, prep_opt, border_rgb=(0, 0, 0))
|
||||
return module.convert(img_rgb, palette_name, dither_mode, intensive,
|
||||
base_color=base_color)
|
||||
Loading…
Add table
Add a link
Reference in a new issue