Skip to content

willll/saturn-docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Goal

Get a cross platform starting point, with everything up and running out of the box

Usage

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

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

Use it in an IDE : TODO

Change GCC version (default 13.2.0) :

  • 8.4.0 : docker build --build-arg GCC_VERSION_ARG=8.4.0 -t saturn-docker . --file ./Dockerfile
  • 9.5.0 : docker build --build-arg GCC_VERSION_ARG=9.5.0 -t saturn-docker . --file ./Dockerfile
  • 10.4.0 : docker build --build-arg GCC_VERSION_ARG=10.4.0 -t saturn-docker . --file ./Dockerfile
  • 11.3.0 : docker build --build-arg GCC_VERSION_ARG=11.3.0 -t saturn-docker . --file ./Dockerfile
  • 12.2.0 : docker build --build-arg GCC_VERSION_ARG=12.2.0 -t saturn-docker . --file ./Dockerfile
  • 12.3.0 : docker build --build-arg GCC_VERSION_ARG=12.3.0 -t saturn-docker . --file ./Dockerfile
  • 13.2.0 : docker build --build-arg GCC_VERSION_ARG=13.2.0 -t saturn-docker . --file ./Dockerfile
  • 13.3.0 : docker build --build-arg GCC_VERSION_ARG=13.3.0 -t saturn-docker . --file ./Dockerfile
  • 14.1.0 : docker build --build-arg GCC_VERSION_ARG=14.1.0 -t saturn-docker . --file ./Dockerfile
  • 14.2.0 : docker build --build-arg GCC_VERSION_ARG=14.2.0 -t saturn-docker . --file ./Dockerfile

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 : https://hub.docker.com/r/willll/saturn-docker/tags

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

Content

List of variables

GCC build variables

GCC build variables Default Value Description
MAKEFLAGS_ARG "-j 1" Extra parameters for make
GCC_VERSION_ARG 13.2.0 Version of GCC, possible values : [ 8.4.0, 9.5.0, 10.4.0, 11.3.0, 12.2.0, 12.3.0, 13.2.0, 13.3.0, 14.1.0, 14.2.0 ]
NCPU 1 Number of CPUs available to build GCC
CREATEINSTALLER "NO" To be removed ?
BUILD_TYPE_ARG Release Release vs Debug, use CMAKE_BUILD_TYPE [ Release, Debug, RelWithDebInfo,MinSizeRel ]

SGL variables

SGL variables Default Value Description
INSTALL_SGL_LIB 1 0 to disable
INSTALL_SGL_SAMPLES 1 0 to disable

SBL variables

SBL 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

SATURN SDK Variables Default Value Description
INSTALL_SATURNSDK_SAMPLES 1 0 to disable

JO ENGINE variables

JO ENGINE variables Default Value Description
INSTALL_JO_ENGINE_LIB 1 0 to disable
INSTALL_JO_ENGINE_SAMPLES 1 0 to disable
JO_ENGINE_TAG v2024.2 ...

Yaul variables

Yaul variables Default Value Description
INSTALL_YAUL_LIB_ARG 1 0 to disable
INSTALL_YAUL_SAMPLES 1 0 to disable
YAUL_TAG 0.3.1 Tag to retrieve from Yaul's github
YAUL_EXAMPLES_COMMIT_SHA 21fd76d83dffd49afc4926d6a8408eecfec474f5 Commit that match YAUL_TAG in yaul-examples github

IAPETUS variables

IAPETUS variables Default Value Description
INSTALL_IAPETUS_LIB 0 1 to enable
INSTALL_IAPETUS_SAMPLES 0 1 to enable
IAPETUS_COMMIT_SHA 955d7c50f634cdd18722657c920987200d9ba3a5 ...

CyberwarriorX CDC

CyberwarriorX CDC reimplementation variables Default Value Description
INSTALL_CYBERWARRIORX_CDC_LIB 0 1 to enable

Build status

Tools

  • 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

  • SGL
  • SGL Samples

SBL 6.01

  • 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

  • SDK Samples
    • Basic
    • Sprite
    • Textured Sprite
    • CDBrowser

Jo Engine 2024.2 (https://www.jo-engine.org/)

  • 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
      • vdp2-line-scroll
      • vdp2-nbg0
      • vdp2-normal-bitmap
      • vdp2-rbg0-bitmap
      • vdp2-rbg0
      • vdp2-reduction-bitmap
      • vdp2-special-function
      • vdp2-zooming

Misc notes :

https://github.com/RetroReversing/retroReversing/tree/master/pages/sega/saturn

Boost preprocessor introduction : https://www.boost.org/doc/libs/1_76_0/libs/preprocessor/doc/AppendixA-AnIntroductiontoPreprocessorMetaprogramming.html