Why?
After spending a bunch of time getting Dreamcast development environments set up on macOS and finding some great PS2 and PS3 homebrew development Docker images, I decided to make similar ones for Dreamcast homebrew development. Since Docker is cross-platform, you can use these on Linux, macOS, or Windows as long as you have Docker installed (note that I don't use Windows and have not tested these there, so the instructions below may not work exactly as-is, but the images should work fine).
What?
I've created 2 separate images. The first is a standard KOS development environment, while the second is based on the first and applies the Dreamshell KOS source code patch to allow compilation of Dreamshell. Everything should be working fine, I've successfully built and ran a Dreamshell CDI image based on the latest source code in the Dreamshell repository as well as compiled some standard KOS homebrew. I'll try and keep these more or less updated as new KOS and Dreamshell updates come out, but for now they already work as-is.
If you're not familiar with Docker, first get it installed, then just pull the image you want from the Docker Hub (the
How?
Due to the extensive use of environment variables required to be loaded in Bash, unlike the PS2 and PS3 docker images you must first enter an interactive Bash shell to run make, but it's very simple.
Stock KallistOS
To use the KOS image to build any KallistOS homebrew, first
Dreamshell
To build Dreamshell, first clone the Dreamshell repository and
There are also extra tools included in the images in the
Links
Docker Hub pages
https://hub.docker.com/r/einsteinx2/dcdev-kos
https://hub.docker.com/r/einsteinx2/dcdev-dreamshell
Github repositories for the Dockerfiles (feel free to improve or add more tools and submit PRs!)
github.com
github.com
____________________________________________________________
Hopefully these images will help you to get started in Dreamcast homebrew development or modifying existing homebrew without going through the (potentially complicated) toolchain setup process.
Happy hacking!
After spending a bunch of time getting Dreamcast development environments set up on macOS and finding some great PS2 and PS3 homebrew development Docker images, I decided to make similar ones for Dreamcast homebrew development. Since Docker is cross-platform, you can use these on Linux, macOS, or Windows as long as you have Docker installed (note that I don't use Windows and have not tested these there, so the instructions below may not work exactly as-is, but the images should work fine).
What?
I've created 2 separate images. The first is a standard KOS development environment, while the second is based on the first and applies the Dreamshell KOS source code patch to allow compilation of Dreamshell. Everything should be working fine, I've successfully built and ran a Dreamshell CDI image based on the latest source code in the Dreamshell repository as well as compiled some standard KOS homebrew. I'll try and keep these more or less updated as new KOS and Dreamshell updates come out, but for now they already work as-is.
If you're not familiar with Docker, first get it installed, then just pull the image you want from the Docker Hub (the
docker run
command below will do that automatically the first time). I also have the Dockerfiles hosted in Github repos so you can easily modify them to your liking (for example to add extra libraries, or update the Dreamshell KOS patch if it changes with new versions).How?
Due to the extensive use of environment variables required to be loaded in Bash, unlike the PS2 and PS3 docker images you must first enter an interactive Bash shell to run make, but it's very simple.
Stock KallistOS
To use the KOS image to build any KallistOS homebrew, first
cd
into the source code directory of your homebrew project, then run the docker image to enter the interactive bash shell by running docker run -it --rm -v "$PWD:/src" einsteinx2/dcdev-kos
, then build it by running make
. You can now exit the Docker shell and the compiled program will be in the source code directory on your host machine. The Docker container will automatically be destroyed and recreated each time using this command, but the image will only be pulled once. If you'd like to keep the container alive to re-use, just remove the --rm
flag and relaunch the container directly later to use it again (you'll have to look up the correct Docker command for that).Dreamshell
To build Dreamshell, first clone the Dreamshell repository and
cd
into that directory, then run docker run -it --rm -v "$PWD:/src" einsteinx2/dcdev-dreamshell
to enter the interactive bash shell, then run prep_build
if this is the first build, then run make && make cdi
. You can now exit the Docker shell and the cdi image and other build products will be in the Dreamshell directory on your host machine and can be run on your Dreamcast. The Docker container will automatically be destroyed and recreated each time using this command, but the image will only be pulled once. If you'd like to keep the container alive to re-use, just remove the --rm
flag and relaunch the container directly later to use it again (you'll have to look up the correct Docker command for that).There are also extra tools included in the images in the
/opt/toolchains/dc/bin
directory inside the images (which is in the PATH
, so can be called without entering that directory), and I'll be adding more as I get around to it.Links
Docker Hub pages
https://hub.docker.com/r/einsteinx2/dcdev-kos
https://hub.docker.com/r/einsteinx2/dcdev-dreamshell
Github repositories for the Dockerfiles (feel free to improve or add more tools and submit PRs!)
einsteinx2/docker-dcdev-kos
Docker image with a completely self-contained Dreamcast KOS development environment - einsteinx2/docker-dcdev-kos

einsteinx2/docker-dcdev-dreamshell
Docker image to compile the Dreamcast Dreamshell homebrew project using a custom build of Kallistios based on the patch from Dreamshell. - einsteinx2/docker-dcdev-dreamshell

Hopefully these images will help you to get started in Dreamcast homebrew development or modifying existing homebrew without going through the (potentially complicated) toolchain setup process.
Happy hacking!
Last edited: