# Graphics (Video)

The **Graphics** tab configures the display. Use **Save** for your global
defaults or **Save for ROM only [*]** to apply settings to the selected ROM.

## Display

| Setting | Description |
|---------|-------------|
| **Renderer Backend [restart]** | Which SDL GPU backend to render with (e.g. Vulkan / Metal / Direct3D 12, depending on platform). Changing it takes effect after a restart. |
| **Fullscreen** | Toggle between fullscreen and windowed display. |
| **Enable VSYNC** | Synchronize presentation to the display refresh to reduce tearing. |
| **Fixed Window** | When off, the window is freely resizable. When on, it stays a fixed size — useful with tiling window managers to keep kat5200 floating. |
| **Window Width** / **Window Height** | The window's pixel size (used when not fullscreen / not freely resized). |
| **Window Scaling** | How the emulated image is fit into the window — modes include **Letterbox**, **Stretch**, and **Fit Window** for aspect-ratio handling. |
| **Texture Scaling** | **Smooth** (filtered) or **Pixelated** (nearest-neighbor) scaling of the emulated framebuffer. |
| **Wide Playfield** | Show the extra pixels at the left and right edges of the screen (wider visible area). |
| **Auto GUI Scale** | Use SDL's display scale for the kat5200 menus. |
| **GUI Scale** | Manual menu scale (roughly 0.25x–3.00x) when Auto GUI Scale is off. Large values can clip narrow or portrait layouts. |

**Renderer Backend [restart]**, **Auto GUI Scale**, and **GUI Scale** are
host/UI settings. Save them globally with **Save**; they are saved globally only,
not as per-ROM overrides.

## Palette

The **Palette** control selects the active color palette from the palettes
kat5200 knows about. Pick one to match a particular look or hardware reference;
the [preview](#preview) updates live so you can compare.

## NTSC artifacts filter

kat5200 includes an NTSC television filter that reproduces analog TV color and
artifacting effects.

- **Enable NTSC Artifacts** — turn the filter on or off.
- **NTSC Artifact Setup** — appears when the filter is on; opens the detailed
  adjustment sub-window below.

### Presets

Quick starting points:

- **RF Preset**
- **Composite Preset**
- **S-Video Preset**
- **RGB Preset**

### Fine adjustments

| Control | Effect |
|---------|--------|
| **Hue** | Overall color hue. |
| **Saturation** | Color intensity. |
| **Contrast** | Difference between light and dark. |
| **Brightness** | Overall luminance. |
| **Sharpness** | Edge definition. |
| **Burst Phase** | Colorburst phase — strongly affects artifact colors. |
| **Hue Warping** | Non-linear hue adjustment for fine color tuning. |

Choose one of the presets again if you want to return to a known baseline.

## Shader Setup

**Shader Setup** opens the GPU shader sub-window. kat5200 ships precompiled
shader **bundles** (SPIR-V / Metal / Direct3D) and can also load an external
bundle directory. From it you can:

- Choose a bundle (or **None**), or **Load Bundle Directory** to add an external
  preset.
- Edit the bundle's exposed **parameters**, or **Reset Parameters** to defaults.
- Use **Save** for the global shader selection/parameters, or **Save for ROM only
  [*]** for the current ROM.

The shader files themselves are read from disk; only the reference and parameters
are stored in the configuration. Some shader changes apply only after a restart —
the window tells you when a restart is required.

When setting a shader for the first time, kat5200 may tell you that the
application must be restarted. Save the shader selection first, then restart.
kat5200 will start with the GPU renderer and use the shader. If the shader works
correctly, set **Renderer Backend [restart]** to **gpu** in the Graphics menu and
press **Save**. Future launches can then use the GPU renderer with or without a
shader without requiring another restart just to switch shaders.

If a shader or GPU renderer causes problems, start kat5200 with
[`--safe`](../command-line.md#video-options). This
starts without the GPU renderer and with shaders disabled. Then open
**Graphics**, set **Renderer Backend [restart]** to **Default**, set the shader
to **None** in **Shader Setup**, press **Save**, and restart normally.

## Preview

The window shows a live **video preview** of the current emulation (or a
placeholder when nothing is running), making it easy to judge palette, NTSC-filter,
and shader changes as you make them.
