Palix video system
Palix is the virtual chip that manages the Hybrix video display. Its behavior is entirely controlled through memory-mapped input/output (MMIO). The name "Palix" is a shortening of palette graphics, as the limited color palette is a distinctive design aspect of the system. The word is therefore pronounced PAL-icks.
Technical specifications
- 320 × 224 video resolution
- 30 frames per second
- Optional double-buffered rendering
- Fixed color palette with 44 colors
- 32 programmable palette mappings called themes
- 3 independently scrolling tilemaps, whose grid can be up to 256 × 256 tiles
- 3 tilesets defining up to 1,024 tiles each, with tile sizes of either 8 × 8 pixels or 16 × 16 pixels
- 64 sprites with sizes up to 48 × 48 pixels and adjustable display priority
For video timing specifications, see CPU/GPU timing.
CRT effect
The video system simulates the appearance of a cathode-ray tube (CRT) display, where phosphor characteristics cause subtle color bleeding and glow around pixels. Besides providing a more "retro" feel, this effect enables artists to blend colors in richer ways.
The CRT effect is only enabled on the Hybrix ROM Player web page. The development environment disables this effect to make it more easy to inspect individual pixels when debugging.

👍 Pixels with the CRT effect (in the ROM Player)
👎 Regular pixels (in the development environment)
I/O definitions
MODULE IO
. . .
# PALIX VIDEO SYSTEM
VAR BACKGROUND_COLOR: BYTE LOCATED AT $D0_0300
VAR MATTE_COLOR: BYTE LOCATED AT $D0_0301
# INCREMENTS FOR EACH VIDEO FRAME, EVEN IF PAINTING IS SKIPPED.
# THE REFRESH RATE IS 30 FRAMES/SEC = 33.333 MS/FRAME
VAR FRAME_COUNTER: PAIR LOCATED AT $D0_0302
# 0 = UNBUFFERED
# 1 = BUFFERED
# 3 = BUFFERED, PAINT REQUESTED; AFTERWARDS THE VALUE REVERTS TO 1
VAR PAINT_MODE: BYTE LOCATED AT $D0_0304
. . .
END MODULE