# SDL (Simple DirectMedia Layer)

[SDL](https://libsdl.org) is the long-running cross-platform library most C/C++ games and emulators use to talk to the screen, the speakers, the keyboard, the mouse, the joystick, and the OS thread primitives. It abstracts platform differences so the same game binary, more or less, can ship on Windows, macOS, Linux, BSDs, mobile, consoles, and now — again — DOS.

SDL3 is the current major version, maintained by libsdl-org with Ryan Gordon (icculus) at the center. The codebase is at [github.com/libsdl-org/SDL](https://github.com/libsdl-org/SDL).

## Platform support

SDL3 targets a broad list of platforms — desktop (Windows, macOS, Linux, BSDs, Haiku), mobile (iOS, Android), web (Emscripten), and consoles (PS4/PS5/Xbox/Switch via private platform code, and the open-source-targetable PS2/PSP/Vita/3DS/Wii/N64). As of [[sdl3-dos-port]] (April 2026, [PR #15377](https://github.com/libsdl-org/SDL/pull/15377)), **DOS is back as a first-class target** via DJGPP, with native VGA/VESA video, Sound Blaster audio, INT-driven input, and a cooperative threading scheduler.

## Notable people

- **Ryan Gordon (icculus)** — long-time SDL maintainer, behind many of SDL's commercial-game ports
- **Anders Jenbo (AJenbo)** — completed and merged the SDL3 DOS port in 2026, also a DevilutionX contributor

## Related pages

- [[sdl3-dos-port]] — the 2026 native DOS port via DJGPP
- [[dosbox-detection-callback-opcode]] — useful adjacent retro-computing topic; the DOS port was tested inside DOSBox
