Library / SDK
KallistiOS/KallistiOS avatar
KallistiOS/KallistiOS

KallistiOS is a full Dreamcast SDK built by homebrew developers

A homebrew SDK/pseudo-operating system for the Sega Dreamcast. This repository is a mirror of the official SourceForge repository for KOS.

647 stars135 forksCLicense varies

At a glance

What is it?
KallistiOS gives a Dreamcast developer a kernel, a toolchain, a virtual filesystem, a network stack and a package manager, all written independently of Sega. The price of entry is a cross-compiling environment you have to source before anything builds.
Who is it for?
KallistiOS is the right choice for anyone writing software for a Dreamcast today, whether a homebrew release or a commercial indie title, because the hardware support and the permissive licensing cover the platform end to end. It is the wrong choice for a team without a Sega development background or without appetite for a custom toolchain, since the build refuses to run unless the environment is sourced first.
Can I use it commercially?
Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
Is it still maintained?
Yes. The repository last received commits 3 days ago.
What is it written in?
Mainly C, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

Editorial analysis

An operating system for a console Sega never opened

KallistiOS is a development library and operating system for the Sega Dreamcast, developed entirely by free software developers independently of Sega. The README is direct about what that independence means and how it turned out: the licence is described as flexible and permissive, allowing both homebrew and commercial use with little restriction besides proper attribution, and the project states that it powers most homebrew and commercial indie releases for the platform. That claim about being the de facto standard is the single most useful fact for a newcomer, because it tells you the driver layer you will build on is the one other Dreamcast developers already debug against. The repository is a mirror of the official SourceForge repository, so the GitHub tree and the canonical history are the same project in two places.

The toolchain is the first thing you have to build

There is no binary SDK to download and no package to install from a registry. The distribution includes scripts for building and installing a cross-compiling toolchain using the latest GCC, Binutils and Newlib, and on top of that it provides full support for C17 and C++20 standards and libraries along with various POSIX APIs, with preliminary support for C23, C++23 and Objective-C. That language support is the practical payoff of rebuilding the toolchain rather than shipping a frozen binary, since a Dreamcast developer is compiling for an SH4 CPU with its own quirks. The build itself refuses to start without the right environment. The root Makefile checks for a KOS_BASE variable and stops with an error if it is missing, telling you to source environ.sh and to look in doc/README for more information.

Kernel threads, virtual filesystem, network stack, debuggable code

The build system is plain make, and the first line of the root Makefile is a guard that stops everything if the environment has not been sourced:

bash
$(if ${KOS_BASE},,$(error KallistiOS environment not found. Did you source environ.sh? Please take a look at doc/README for more info.))

The core functionality list reads like the feature set of a small operating system rather than a library. Concurrency is offered through kernel threads, C11 threads, C++11 std::thread and POSIX threads, so you can pick the model that matches the code you already have. There is a virtual filesystem abstraction, so storage is not tied to one device, an IPv4 and IPv6 network stack, dynamically loaded libraries and modules, and GDB debugger support, which matters because debugging across a cross-compiled SH4 target without a remote debugger is miserable. On the hardware side the driver list is extensive: the optical disc drive, low-level 3D PowerVR graphics, SH4 assembly optimised math routines, SCI and SCIF serial I/O, the DMA controller, a FlashROM filesystem, the AICA SPU sound processor driver, cache and store queue management, timer peripherals, a real-time clock, a watchdog timer, performance counters and MMU management.

Peripherals, hobbyist modifications and the Sega NAomi connection

The peripheral support is where an independent SDK earns its keep, because Dreamcast hardware had many optional parts and the documentation for them was never unified. Controllers are covered from standard pads to expanded variants with extra buttons and dual analog sticks, and the list continues through arcade sticks and twin sticks, lightguns, racing wheels, fishing rods, Samba Maracas and a dance mat. Storage and timing accessories include the Visual Memory Unit, memory cards, the Puru Puru and Jump vibration pack, a microphone and the Dreameye webcam, plus serial based SD card readers. Network hardware spans 33.6K and 56K dial-up modems, a 100/10Mbps broadband adapter and a 10Mbps LAN adapter, with RCA, S-video, RGB and VGA output options. Hardware modification support covers an IDE hard drive, a 32MB RAM upgrade and custom BIOS flashROMs, and the repository topics include Sega NAomi alongside Dreamcast, which points at the arcade lineage.

kos-ports turns add-on libraries into a package manager

The project ships a package manager called kos-ports, and it is what keeps the SDK from becoming a reimplementation burden for every developer. It lets you build and include a set of add-on libraries covering common audiovisual formats such as jpg, png, mp3, ogg and mpeg, compression formats like libbz2 and zlib, scripting languages including Lua, Tcl and MicroPython, and gaming APIs including OpenGL, OpenAL and SDL, among many others. The root Makefile wires this into the build with kos-ports_all, kos-ports_clean and kos-ports_distclean targets that call the build-all, clean-all and uninstall-all scripts under the kos-ports utils directory. Because kos-ports lives in its own repository, the SDK core stays small while the library surface grows independently, and a project can decide its own dependency set instead of inheriting a fixed one.

Reading the source: the examples directory is the tutorial

The examples directory is the recommended place to start once the environment is up, and it is organized by the API being demonstrated rather than by application. The list runs from Hello World and console input and output through assertions, stacktraces and threading, then into graphics with direct framebuffer drawing, OpenGL rendering, KGL rendering and the KOS PVR API, plus texturing with libPNG and bump maps, modifier volumes and render-to-texture PVR effects. Audio is covered three ways, on the ARM SPU, through SDL Audio, and through OGG, MP3 and CDDA. Input examples query controllers, keyboards, mice and lightguns, storage examples reach the VMU filesystem and SD card filesystem, networking examples cover the modem, broadband adapter and LAN adapter, and there are examples for the Dreameye webcam, ATA read and write, the 32MB RAM hardware mod and an interactive Lua interpreter terminal. Community resources sit outside the repository, with dreamcast.wiki carrying beginner tutorials and articles and the Simulant Discord and the dreamcastdev IRC channel as community venues.

Licensing, releases and what the tree actually contains

The licensing story has two layers, and the second one is easy to miss. KallistiOS itself is under the BSD-like KOS License, and the README stresses that attribution is not optional. Separately, the distribution contains code licensed under various free software licenses, with the specifics in doc/LICENSE.md and the actual KOS License text in doc/license/LICENSE.KOS. So a commercial release has to carry the attribution the KOS License requires and also respect whatever each bundled third party component asks for. On versions, recent tags include v2.2.0 on 2025-07-11, v2.2.1 on 2025-09-20 and v2.2.2 on 2026-04-18, and the last push was on 2026-10-19. The tree itself is organised into kernel/, lib/, addons/, include/, loadable/ and utils/, with examples/, doc/, addons/ and a separate Makefile.prefab and Makefile.rules driving the build.

Editorial conclusion

KallistiOS is the right choice for anyone writing software for a Dreamcast today, whether a homebrew release or a commercial indie title, because the hardware support and the permissive licensing cover the platform end to end. It is the wrong choice for a team without a Sega development background or without appetite for a custom toolchain, since the build refuses to run unless the environment is sourced first. Verify first that you can follow the Dreamcast getting started guide and install the GCC, Binutils and Newlib cross toolchain, that the licences of the bundled third party code fit your distribution, and that the kos-ports add-on libraries you need exist for your target.

Frequently asked questions

What is KallistiOS and who develops it?

KallistiOS is a development library and operating system for the Sega Dreamcast, developed independently from Sega entirely by free software developers. The README states that its permissive licence allows both homebrew and commercial use with little restriction besides proper attribution.

How do I start building for the Dreamcast with KallistiOS?

A beginner guide with instructions for installing KallistiOS and the required toolchains is on dreamcast.wiki under Getting Started with Dreamcast development, with more documentation in the docs folder of the repository. The build also needs the environment sourced, since the root Makefile errors out when the KOS_BASE variable is missing.

Which languages and standards does KallistiOS support?

The cross-compiling toolchain is built with the latest GCC, Binutils and Newlib, giving full support for C17 and C++20 plus various POSIX APIs. There is preliminary support for C23, C++23 and Objective-C.

What is kos-ports and what does it add?

kos-ports is the package manager that lets you build and include add-on libraries such as jpg, png, mp3, ogg and mpeg formats, libbz2 and zlib compression, Lua, Tcl and MicroPython scripting, and the OpenGL, OpenAL and SDL APIs. It lives in its own repository and is driven from the root Makefile through the kos-ports_all, kos-ports_clean and kos-ports_distclean targets.

Official sources

  1. Issues
  2. KallistiOS/KallistiOS on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/kallistios-kallistios.svg)](https://hysenlabs.com/projects/kallistios-kallistios)

Was this useful?