Provide a cross-platform starting point with everything set up and ready to use out of the box.
To build the Docker image:
docker build -t saturn-docker . --file ./Dockerfile
To run the container interactively:
docker run -it --rm -v $(pwd):/saturn saturn-docker /bin/bash
For IDE integration, refer to:
The default GCC version is 14.2.0. To change it, use the --build-arg GCC_VERSION_ARG
parameter during the build process.
- 14.2.0 (default)
14.1.0(deprecated)- 13.3.0
13.2.0(deprecated)- 12.4.0
12.3.0(deprecated)12.2.0(deprecated)- 11.5.0
11.3.0(deprecated)- 10.4.0
- 9.5.0
- 8.4.0
docker build --build-arg GCC_VERSION_ARG=11.3.0 -t saturn-docker . --file ./Dockerfile
docker build \
--build-arg GCC_VERSION_ARG=11.3.0 \
--build-arg INSTALL_SATURNSDK_SAMPLES=0 \
--build-arg INSTALL_JO_ENGINE_LIB=0 \
--build-arg INSTALL_JO_ENGINE_SAMPLES=0 \
--build-arg INSTALL_YAUL_LIB_ARG=0 \
--build-arg INSTALL_YAUL_SAMPLES=0 \
--build-arg INSTALL_SBL_LIB=1 \
--build-arg INSTALL_SBL_SAMPLES=0 \
--build-arg INSTALL_SBL_EXAMPLES=0 \
--build-arg INSTALL_SGL_LIB=0 \
--build-arg INSTALL_SGL_SAMPLES=0 \
-t saturn-docker . --file ./Dockerfile
docker build --build-arg GCC_VERSION_ARG=12.3.0 \
--build-arg INSTALL_SATURNSDK_SAMPLES=1 \
--build-arg INSTALL_JO_ENGINE_LIB=1 \
--build-arg INSTALL_JO_ENGINE_SAMPLES=1 \
--build-arg INSTALL_YAUL_LIB_ARG=1 \
--build-arg INSTALL_YAUL_SAMPLES=1 \
--build-arg INSTALL_SBL_LIB=1 \
--build-arg INSTALL_SBL_SAMPLES=1 \
--build-arg INSTALL_SBL_EXAMPLES=1 \
--build-arg INSTALL_SGL_LIB=1 \
--build-arg INSTALL_SGL_SAMPLES=1 \
--build-arg MAKEFLAGS_ARG="-j 8" \
-t saturn-docker . --file ./Dockerfile
Explore the images on Docker Hub: Saturn Docker Tags.
To mount the container with SSHFS:
sudo sshfs -o allow_other root@192.168.1.161:/saturn /home/will/tmp/sshfs/ -p 2222
docker build --build-arg ssh_pub_key="$(cat ~/.ssh/host_ca.pub)" --squash -t saturn-docker . --file ./Dockerfile
Variable | Default Value | Description |
---|---|---|
ssh_pub_key |
(empty) | SSH public key content |
Variable | Default Value | Description |
---|---|---|
INSTALL_BOOST_LIB |
1 | 0 to disable Boost installation |
Variable | Default Value | Description |
---|---|---|
MAKEFLAGS_ARG |
"-j 1" | Extra parameters for make |
GCC_VERSION_ARG |
13.2.0 | GCC version |
NCPU |
1 | Number of CPUs for GCC build |
BUILD_TYPE_ARG |
Release | Build type (Release/Debug) |
Variable | Default Value | Description |
---|---|---|
INSTALL_SGL_LIB |
1 | 0 to disable SGL library |
INSTALL_SGL_SAMPLES |
1 | 0 to disable SGL samples |
Variable | Default Value | Description |
---|---|---|
INSTALL_SBL_LIB |
1 | 0 to disable |
INSTALL_SBL_SAMPLES |
1 | 0 to disable |
INSTALL_SBL_EXAMPLES |
1 | 0 to disable |
Variable | Default Value | Description |
---|---|---|
INSTALL_SATURNSDK_SAMPLES |
1 | 0 to disable |
Variable | Default Value | Description |
---|---|---|
INSTALL_JO_ENGINE_LIB |
1 | 0 to disable |
INSTALL_JO_ENGINE_SAMPLES |
1 | 0 to disable |
JO_ENGINE_TAG |
v2024.2 | Specify the version/tag |
Variable | Default Value | Description |
---|---|---|
INSTALL_YAUL_LIB_ARG |
1 | 0 to disable |
INSTALL_YAUL_SAMPLES |
0 | 0 to disable |
YAUL_TAG |
0.3.1 | Tag to retrieve from Yaul's GitHub |
YAUL_EXAMPLES_COMMIT_SHA |
21fd76d83dffd49afc4926d6a8408eecfec474f5 | Commit matching YAUL_TAG in Yaul examples GitHub |
Variable | Default Value | Description |
---|---|---|
INSTALL_SRL_LIB |
1 | 0 to disable |
SRL_LIB_TAG |
0.9 | Specify the version/tag |
Variable | Default Value | Description |
---|---|---|
INSTALL_IAPETUS_LIB |
0 | 1 to enable |
INSTALL_IAPETUS_SAMPLES |
0 | 1 to enable |
IAPETUS_COMMIT_SHA |
955d7c50f634cdd18722657c920987200d9ba3a5 | Specify commit SHA |
Variable | Default Value | Description |
---|---|---|
INSTALL_CYBERWARRIORX_CDC_LIB |
0 | 1 to enable |
- GCC 8.4.0 for SH2 : https://github.com/willll/Saturn-SDK-GCC-SH2/tree/gcc_8.4.0
- GCC 9.5.0 for SH2 : https://github.com/willll/Saturn-SDK-GCC-SH2/tree/gcc_9.5.0
- GCC 10.4.0 for SH2 : https://github.com/willll/Saturn-SDK-GCC-SH2/tree/gcc_10.4.0
- GCC 11.5.0 for SH2 : https://github.com/willll/Saturn-SDK-GCC-SH2/tree/gcc_11.5.0
- GCC 12.4.0 for SH2 : https://github.com/willll/Saturn-SDK-GCC-SH2/tree/gcc_12.4.0
- GCC 13.3.0 for SH2 : https://github.com/willll/Saturn-SDK-GCC-SH2/tree/gcc_13.3.0
- GCC 14.2.0 for SH2 (Default) : https://github.com/willll/Saturn-SDK-GCC-SH2/tree/gcc_14.2.0
- GDB for SH2 (Not tested yet)
- GCC 14.2.0 for M68K : https://github.com/willll/Saturn-SDK-GCC-M68K
- CMake profile
- schily-tools : ISO generation tools
- Saturn-SDK-Tool-IPMaker : IP.BIN generation tool : https://github.com/willll/Saturn-SDK-Tool-IPMaker
- satcon : Sega Saturn image convertor https://git.sr.ht/~ndiddy/satconv/
-
SGL
(patched) -
SGL Samples
-
akira
-
akira3
-
demo_a
-
demo_b
-
demo_c
-
demo_d
-
demogun
-
design1
-
design2
-
design3
-
driving
-
driving2
-
fighting
-
s_2_2
-
s_3_2
-
s_4_2
-
s_4_3_1
-
s_4_3_2
-
s_4_3_3
-
s_4_3_4
-
s_4_5
-
s_5_2
-
s_6_3
-
s_7_2
-
s_7_4
-
s_7_6
-
s_8_8_1
-
s_8_8_2
-
s_8_8_3
-
s_8_9_1
-
s_8_9_2
-
s_8_10_1
-
s_8_10_2
-
s_8_11
-
s_8_12
-
s_9_1
-
s_10
-
s_cd1
-
s_cd2
-
s_cd3
-
s_cd4
-
sampsnd1
-
sampsnd2
-
sbklib
-
sega2d_1
-
sega3d_1
-
sega3d_2
-
sega3d_3
-
shooting
-
torus2
-
torus3
-
-
SGL Samples from SGL 3.20
-
bitmap
-
cdda
(Missing tracks ?) -
coloff
-
expccalc
-
grad
-
linecol
-
linscl
-
pcm
-
seamless
-
all
(Error : Stream System open) -
basic
(Error : Stream System open) -
ff
(Error : Stream System open) -
pause
(Error : Stream System open)
-
-
simple
-
all
(Error : Stream System open) -
gfs
(Error : Stream System open) -
mem
(Error : Stream System open) -
stm
(Error : Stream System open)
-
-
-
rotatebg
-
coef
-
linecol
-
-
shadow
-
msb
-
sprite
-
-
sound
-
mapchg
(Black screen) -
sndtest
(no sounds ?)
-
-
spccalc
-
cel
-
dot
-
-
spprio
-
cel
-
dot
-
-
sprcc2bg
-
apply
-
basic
-
-
window
-
sprwin
-
-
-
SGL Demos
-
biplane
(Missing files in scroll folder) -
cdda_sgl
(Missing files in src folder) -
chrome
-
flying
-
-
SGL
-
SGL Samples
-
SBL Libs
-
blp
-
cdc
(copied from https://github.com/shicky256/sbl/tree/master/segalib/cdc) -
cmp
-
csh
-
dbg
-
dma
-
dsp
TO BE VALIDATED -
gfs
-
fld
Converted from COFF -
int
-
mem
-
mpg
-
mth
(copied from https://github.com/shicky256/sbl/tree/master/segalib/mth) -
pcm
TO BE VALIDATED -
per
(copied from https://github.com/shicky256/sbl/tree/master/segalib/per) -
scl
(copied from https://github.com/shicky256/sbl/tree/master/segalib/scl) -
snd
TO BE VALIDATED -
spr
(copied from https://github.com/shicky256/sbl/tree/master/segalib/spr) -
stm
-
-
SBL Samples
-
bup
-
csh
-
dbg
-
smpdbg1
-
-
dma
-
dma0
-
dma1
-
dma2
-
dma10
-
dma12
-
-
dual
(required or just sample code ?) -
fld
-
smpfld01
(Crash at runtime)
-
-
game
(black screen at runtime) -
game_cd
(black screen at runtime) -
gfs
-
smpgfs1a
(Crash at runtime) -
smpgfs1b
(Crash at runtime) -
smpgfs2
(Crash at runtime)
-
-
mem
-
smpmem0
(Crash at runtime) - [?]
smpmem1
(black screen at runtime)
-
-
mpg
-
smpmpg1
-
-
pcm
-
pcm2
(Crash at runtime) -
pcm3
(black screen at runtime) -
pcm4
(black screen at runtime) -
pcm5
(Crash at runtime) -
pcm13
(black screen at runtime)
-
-
per
-
smpper0
(no output) -
smpper1
(no output) -
smpper7
(controls ?) -
smpper8
-
smpper12
-
-
sblsgl
-
sblsgl00
(Link errors) -
sblsgl01
(Link errors) -
sblsgl02
(Link errors) -
sblsgl03
(Link errors) -
sblsgl04
(Link errors)
-
-
scl
-
smpscl1
-
smpscl3
-
smpscl5
-
-
sgl
-
demo_a
-
demo_b
-
demo_c
-
s_2_2
-
s_3_2
-
s_4_2
-
s_4_3_1
-
s_4_3_2
-
s_4_3_3
-
s_4_3_4
-
s_4_5
(black screen at runtime) -
s_5_2
(black screen at runtime) -
s_6_3
(black screen at runtime) -
s_7_2
-
s_7_4
-
s_7_6
(black screen at runtime)
-
-
snd
-
smpsnd1
(Runtime ???) -
smpsnd4
(Runtime ???) -
smpsnd5
(Runtime ???) -
smpsnd6
(Runtime ???)
-
-
spr
-
spr2
-
spr7
-
spr8
-
-
stm
-
smpstm1
(Crash at runtime) -
smpstm2
(Crash at runtime)
-
-
sys
(Not tested) -
tim
-
smp0
(Crash at runtime) -
smp1
(Crash at runtime)
-
-
-
SDK Samples
-
Basic
-
Sprite
-
Textured Sprite
-
CDBrowser
-
-
Jo Engine
-
Jo Engine Samples
-
demo1
-
demo - homing laser
-
demo - 2D storyboard
-
demo - line scroll
-
demo - 3D
-
demo - map
-
demo - 3D map
-
demo - mode7
-
demo - 3D - programmatically
-
demo - mouse
-
demo - multitap
-
demo - 8bits tga
-
demo - nbg2 font
-
demo - advanced 3D
-
demo - paint
-
demo - audio
-
demo - analog
-
demo - printf
-
demo - render to image
-
demo - background
-
demo - shooter
-
demo - backup
-
demo - simple water effect
-
demo - bullet
-
demo - software rendering
-
demo - debug console
-
demo - sonic
-
demo - everydaycute
-
demo - sprite animation
-
demo - filesystem
-
demo - tileset
-
demo - gamepad
-
demo - vdp2 plane
-
demo - gouraud shading
-
demo - video
-
demo - hardcoded image
-
demo - visual novel
-
demo - voxel
-
-
Yaul
-
Yaul Library
-
Yaul Examples
(https://github.com/yaul-org/libyaul-examples)-
arp-comm
<< This example is disabled -
bcl
-
c++
-
cd-block
-
cpu-divu
-
cpu-dmac
-
cpu-dual
-
cpu-frt
-
cpu-wdt
-
dbgio-font
-
dbgio-menu
-
dbgio-usb-cart
-
dma-queue
-
dram-cart
-
fibers
-
fileserver
-
gdb
-
mm-stats
-
netlink-template
-
scu-dsp
-
scu-timers
<< This example is disabled -
smpc-rtc
-
usb-cart
-
vdp1-balls
-
vdp1-drawing
-
vdp1-interlace
-
vdp1-mesh
-
vdp1-mic3d
-
vdp1-normal-sprite
-
vdp1-software-blending
-
vdp1-st-niccc
-
vdp1-uv-coords
-
vdp1-zoom-sprite
-
vdp2-24bpp-bitmap
-
vdp2-all-nbgs
-
vdp2-back-screen
-
vdp2-effect-tunnel
-
dp2-line-scroll
-
vdp2-nbg0
-
vdp2-normal-bitmap
-
vdp2-rbg0-bitmap
-
vdp2-rbg0
-
vdp2-reduction-bitmap
-
vdp2-special-function
-
vdp2-zooming
-
-
-
SRL
-
SRL Library
(Headers only, no static library) -
SRL Samples
(https://github.com/ReyeMe/SaturnRingLib/tree/main/Samples)-
CD - File reading
-
Input - Analog
-
Input - Gamepad
-
Input - Gun
-
Logs
-
Makefile - pre and post build
-
Math - Random
-
Math - Random image
-
SH2 - Slave
-
SMPC - Clock
-
Sound - CDDA
-
Sound - PCM
-
SRL - Event
-
STL
-
VDP1 - 3D - Animation
-
VDP1 - 3D - Flat teapot
-
VDP1 - 3D - Smooth teapot
-
VDP1 - Clipping
-
VDP1 - Distorted sprite
-
VDP1 - Gouraud
-
VDP1 - Interactive polygon
-
VDP1 - Lines
-
VDP1 - Sprite effects
-
VDP1 - Sprites
-
VDP2 - Bmp2Tile
-
VDP2 - Layers
-
VDP2 - RBG0 Rotation
-
-