Skip to content

willll/saturn-docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

419 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Table of Contents

  1. Goal
  2. Usage
  3. Content
  4. Miscellaneous Notes

Goal

Provide a cross-platform starting point with everything set up and ready to use out of the box.


Usage

Build it

To build the Docker image:

docker build -t saturn-docker . --file ./Dockerfile

Run it

To run the container interactively:

docker run -it --rm -v $(pwd):/saturn saturn-docker /bin/bash

To run the container with SSH support and current user:

docker run -it -p 2222:22 --rm --user $(id -u):$(id -g) -v $(pwd):/saturn saturn-docker:latest /bin/bash

Use it in an IDE

For IDE integration, refer to:

Change GCC Version for SH2

The default GCC version is 14.3.0. To change it, use the --build-arg GCC_VERSION_ARG parameter during the build process.

Available GCC Versions:

  • 14.3.0 (default)
  • 14.2.0
  • 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

Example:

docker build --build-arg GCC_VERSION_ARG=11.3.0 -t saturn-docker . --file ./Dockerfile

Advanced Build Examples:

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

Docker Hub

Explore the images on Docker Hub: Saturn Docker Tags.

Mount with SSHFS

To mount the container with SSHFS:

sudo sshfs -o allow_other root@192.168.1.161:/saturn /home/will/tmp/sshfs/ -p 2222

Copy Your SSH Key into the Container

docker build --build-arg ssh_pub_key="$(cat ~/.ssh/host_ca.pub)" --squash -t saturn-docker . --file ./Dockerfile

Content

List of variables

SSHD variables

Variable Default Value Description
ssh_pub_key (empty) SSH public key content

Boost variables

Variable Default Value Description
INSTALL_BOOST_LIB 1 0 to disable Boost installation

GCC(SH2) build variables

Variable Default Value Description
MAKEFLAGS_ARG "-j 1" Extra parameters for make
GCC_VERSION_ARG 14.3.0 GCC version
NCPU 1 Number of CPUs for GCC build
BUILD_TYPE_ARG Release Build type (Release/Debug)

SGL variables

Variable Default Value Description
INSTALL_SGL_LIB 1 0 to disable SGL library
INSTALL_SGL_SAMPLES 1 0 to disable SGL samples

SBL variables

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

SATURN SDK variables

Variable Default Value Description
INSTALL_SATURNSDK_SAMPLES 1 0 to disable

JO ENGINE variables

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

Yaul variables

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

SRL variables

Variable Default Value Description
INSTALL_SRL_LIB 1 0 to disable
SRL_LIB_TAG 0.9.1 Specify the version/tag

IAPETUS variables

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

CyberwarriorX CDC

Variable Default Value Description
INSTALL_CYBERWARRIORX_CDC_LIB 0 1 to enable

Build status

Tools

Details
  • 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 3.20

Details
  • SGL
  • SGL Samples

SBL 6.01

Details
  • SBL Libs
  • 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

Details
  • SDK Samples
    • Basic
    • Sprite
    • Textured Sprite
    • CDBrowser
Details
  • 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
Details
  • 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
Details
  • 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

Misc notes: