Jo Engine

Make Sega Saturn games in plain C.

Jo Engine is an open source 2D and 3D game engine for the Sega Saturn. You write the game; it handles the two SH-2 CPUs, the VDP1 and VDP2, the CD block and the sound processor. Your game runs on emulators and on the original console.

License
MIT
Language
C
Since
2012
Develop on
Windows, Linux, macOS
main.c
#include <jo/jo.h>

void my_draw(void)
{
    jo_sprite_draw3D(0, 0, 0, 500);
}

void jo_main(void)
{
    jo_core_init(JO_COLOR_Black);
    jo_sprite_add_tga("TEX", "A.TGA", JO_COLOR_Transparent);
    jo_core_add_callback(my_draw);
    jo_core_run();
}
A complete program: load a TGA sprite from the CD and draw it every frame.

One API for a famously complex console

The Saturn spreads its work across a dozen chips. Jo Engine gives each of them a simple C interface, and every feature comes with a sample you can build and run.

VDP1 Sprites and polygons

  • TGA, 15-bit and raw images loaded from the CD
  • Sprite animation and storyboards
  • 3D meshes, camera, Gouraud shading
  • Software rendering and voxel terrain

VDP2 Backgrounds

  • Parallax scrolling and line scroll
  • Mode 7 rotation planes
  • Tilesets and maps
  • Text, fonts and palettes

CD CD block

  • File system access
  • CD audio tracks
  • Video playback (Sega FILM / CPK)
  • VCD card support

SCSP Sound

  • PCM sound effects
  • Several channels at once

SMPC Controllers

  • Gamepad, 3D pad, Mission Stick, racing wheel
  • Mouse, keyboard and multitap

RAM Memory and saves

  • Dynamic memory allocation
  • Backup RAM saves
  • Hitboxes, physics and math tools

From download to a running game

The download contains the compiler, the engine, emulators and more than forty samples.

  1. Download Jo Engine

    Get the latest release or clone the repository.

  2. Open a sample

    Copy a folder from Samples into Projects. Start with demo - sprite animation or demo - 3D.

  3. Build and run

    Run compile.bat on Windows or ./compile.sh on Linux and macOS to build a CD image, then a run_with_… script to start it in Yabause, Mednafen, Kronos or another emulator.

  4. Play it on a real Saturn

    Burn the generated image, or load it with an optical drive emulator such as the Satiator, and test on the console.

Made with Jo Engine

Homebrew games and ports built by the community, from weekend experiments to finished, commercially released titles.

  • FPS demo

    Jo Engine FPS demo

    First-person shooter demo, Johannes Fetz, 2026

    A GoldenEye 64-style FPS made for Jo Engine's 15th anniversary release. Textures, models and the level are generated procedurally, and the full source code ships with the engine's samples.

  • Bridget Bishop

    Bridget Bishop

    3D adventure, Fran Matsusaka (EGS Studio Games), 2022

    A survival-horror adventure inspired by Alone in the Dark, finished and playable from start to end.

    Read the article
  • Vigilant Paradise

    Vigilant Paradise

    First-person shooter, Riccardo Campione (Playnautic)

    A commercial FPS that uses both CPUs and both VDPs, with voice-acted cutscenes. Red Moon: Lost Days, another Jo Engine game, has been sold on disc since 2023.

    Read the article
  • Dragon Ball

    Dragon Ball

    Beat 'em up tech demo, NaiSan, 2025

    A side-scrolling brawler with smoothly scaled sprites, meant to become an original game.

  • X-Men Arcade

    X-Men Arcade

    Arcade recreation, hotrodx, 2024

    A fan recreation of Konami's 1992 beat 'em up. The first demo has the opening stage and two playable characters, and runs on real hardware.

    Read the article
  • Celeste Classic

    Celeste Classic

    Port, En83, 2026

    The PICO-8 platformer ported to the Saturn from its C source.

    Read the article
  • ZYGO

    ZYGO

    2D platformer, JBeretta, 2021

    An original platformer with transformations, entered in the SegaXtreme game competition. A 3D version is in progress.

    Read the article
  • Puff Pastry Panic

    Puff Pastry Panic

    3D game, Tails of Saturn

    Its author released Enceladus, the model converter and stage builder he wrote for it, for other Jo Engine developers.

    See it on SegaXtreme
  • Circuit Breaker

    Circuit Breaker

    3D racing, alfanhui

    An open source game with a development video series, a good read if you want to see a project grow.

    Source code

Made something with Jo Engine? Tell us on GitHub and it can be listed here.

Tools built on Jo Engine

Editors and converters made by the community to make Saturn development faster and easier.

  • Jo Map Editor next to the SSF emulator running the map demo

    Jo Map Editor

    Asset and map editor, Johannes Fetz

    A companion tool for preparing assets: convert images to TGA, PNG or 15-bit binary, build tilesets and maps, and export images as C source. It ships with the engine.

  • Saturn Workshop editor

    Saturn Workshop

    3D game editor, Hinges, in development

    A user-friendly front end for Jo Engine, in the spirit of Pyrite64 on the N64: a level editor whose quad brushes merge automatically, texture painting, animated textures, VDP2 effects and export to a build that runs on the Saturn.

  • Enceladus stage builder

    Enceladus

    Model converter and stage builder, Tails of Saturn

    Converts .obj models for the Saturn and lays out stages, with a loader for Jo Engine. Written for Puff Pastry Panic and shared with everyone.

  • Save Game Copier main menu

    Save Game Copier

    Save manager, Slinga

    Copies saves between internal memory, cartridges, the floppy drive, Action Replay, Satiator and MODE, and can build a CD image preloaded with your own saves. Open source under GPL-3.0.

Jo Engine in print and in the press

Books, interviews and articles that cover the engine.

Books

Homebrew Game Development and The Extra Lives of Consoles

Robin Wilde

Pages 61–62 and 78, ISBN 978-1-399-07265-6

Programación de Videojuegos Para SEGA Saturn

Rolando Fernández Benavidez

In Spanish, ISBN 980-1509-68-7

Ask, share, contribute

Most Saturn homebrew talk happens on SegaXtreme. Bugs and pull requests go to GitHub.

About

I'm Johannes Fetz and I live near Montpellier, in France. I'm the CEO of Eureka Technology, where I've worked for more than 17 years, and a Group Leader at Volaris Group.

The Saturn is full of memories of middle school with my friends, and it is still my favourite console. Games like Panzer Dragoon Saga stayed with me. The console has a reputation as one of the hardest platforms ever to program, which is why so few homebrew games existed. So I wrote an engine simple enough for anyone to make one. Everyone at work calls me Jo, hence the name.

Thanks to The Rockin'-B for his work and tutorials, to Emerald Nova, to Nai Adventure (X), and to everyone who supports the project on SegaXtreme, SEGASaturno, Sega-16, Gamopat, Sega Saturn Shiro and Segasaturnshine.