pico9918-core 1.3.0
TMS9918A / F18A video display processor emulation in C99
Loading...
Searching...
No Matches
pico9918_scanline_params_t Struct Reference

the host's per-call display parameters, as the scanline sees them More...

#include <pico9918_frame.h>

Data Fields

uint16_t hVirtualPixels
 full scanline width, guard pixels excluded
 
uint16_t vVirtualPixels
 virtual lines per field
 
bool interlaced
 the host's mode is interlaced
 
uint8_t interlacedFieldOrder
 0 or 1: XOR'd with the field number
 

Detailed Description

the host's per-call display parameters, as the scanline sees them

Per-call rather than stored, because that is the shape the host already had: the VGA layer hands its parameter block to every scanline callback, so the values are in registers at the call. A setter would add a store per mode change and a load per scanline to buy nothing.

WIDTHS MIRROR THE HOST'S OWN DECLARATIONS - see the same note on pico9918_frame_display_t. hVirtualPixels feeds the border-fill count and the half-border offset; vVirtualPixels reaches the splash geometry; the interlace pair selects the field mapping.

GEOMETRY THE SCANLINE PATH REQUIRES. Not checked per line - this is the video-rate path and a host's geometry is fixed at a mode change, so the cost belongs where the mode is chosen. Break one and the failure is silent:

hVirtualPixels >= TMS9918_PIXELS_X * 2 the two half-borders are (hVirtualPixels - 512) / 4 words each, computed unsigned, so a narrower line underflows into a fill of ~1G words hVirtualPixels a multiple of 4 the halves have to tile the line exactly; a remainder leaves the right edge unwritten and disagrees with the border path's own hVirtualPixels / 2 count pixels 4-byte aligned the fills and the palette expansion both address the buffer as uint32_t

Definition at line 213 of file pico9918_frame.h.

Field Documentation

◆ hVirtualPixels

uint16_t pico9918_scanline_params_t::hVirtualPixels

full scanline width, guard pixels excluded

Definition at line 215 of file pico9918_frame.h.

Referenced by pico9918_frame_output_line().

◆ vVirtualPixels

uint16_t pico9918_scanline_params_t::vVirtualPixels

virtual lines per field

Definition at line 216 of file pico9918_frame.h.

Referenced by pico9918_frame_output_line().

◆ interlaced

bool pico9918_scanline_params_t::interlaced

the host's mode is interlaced

Definition at line 217 of file pico9918_frame.h.

◆ interlacedFieldOrder

uint8_t pico9918_scanline_params_t::interlacedFieldOrder

0 or 1: XOR'd with the field number

Definition at line 218 of file pico9918_frame.h.


The documentation for this struct was generated from the following file: