# Requirements

## Runtime libraries

kat5200 depends on the following at run time:

- **SDL3** — windowing, input, audio, and rendering. The desktop renderer uses
  SDL's GPU API (Vulkan / Metal / Direct3D 12) with precompiled shader bundles;
  there is no longer an OpenGL dependency on the desktop. (Only the Android build
  links GLES.)
- **SDL3_image** — image loading (screenshots, UI assets).
- **zlib** — compressed (zip) ROM support.
- **libm** — math library.
- **ROM-set download backend** *(optional)* — used by the in-app 5200 ROM-set
  downloader. The backend is per-platform: **libcurl** on Linux/macOS (only if
  found at configure time), **WinHTTP** on Windows (a system component), and a
  JNI backend on Android. If the backend is unavailable the emulator still builds
  and runs; only the download feature is affected.

## Build tools

To build from source you will additionally need:

- A C compiler (GCC or Clang).
- **CMake** 3.16 or newer (the Android Gradle build pins CMake 3.22.1).
- SDL3 and SDL3_image, found via CMake's CONFIG mode.
- Development headers (`-dev` / `-devel` packages) for the libraries above.

See [Installation](installation.md) for per-platform build instructions.

## ROM and BIOS images

kat5200 does **not** ship with copyrighted BIOS or game ROMs. To run software you will
need:

- A **5200 BIOS** image (for Atari 5200 emulation).
- **OS / BASIC** ROM images for the 8-bit computers (an OS ROM is required; BASIC is
  optional and per-title).
- Cartridge, floppy, cassette, or executable images for the software you want to run.

The [Setup](options/misc.md#setup) window can scan your system for BIOS and ROM files
and assign the best matches automatically.

## Recommended

- Any reasonably modern PC will run kat5200 at full speed.
- A USB gamepad or joystick is recommended for the 5200, whose analog controllers are
  central to many games.

## Android devices

The Android APK supports phones, tablets, Android TV / Google TV, and Fire TV
devices with OpenGL ES 2.0 or newer. Native libraries are packaged for
`arm64-v8a`, `armeabi-v7a`, and `x86_64`; `x86_64` is primarily for Android
emulator images.
