Skip to content

Repository files navigation

DreamShell

The Dreamshell is the operating system for the Sega Dreamcast based on the KallistiOS kernel. It has a dynamic loadable modular system and interface for creating applications with XML UI and both C/C++ and Lua script on. You can see examples in ready-made applications and modules, drivers for various devices, formats and interfaces. Examples for audio and video decoding, compression, packaging, binding, network, emulation, scripts and more. From hardcore low-level assembler to high-level applications. There are also large subproject is the ISO Loader, which contains emulation of BIOS system calls, CDDA playback and VMU, also it can hooking interrupts for various SDKs and more.

Build

Setup environment

Packages
sudo apt updatesudo apt install -y gawk patch bzip2 tar make cmake pkg-configsudo apt install -y gettext wget bison flex sed meson ninja-buildsudo apt install -y build-essential diffutils curl python3 rakesudo apt install -y genisoimage squashfs-tools texinfo gitsudo apt install -y libgmp-dev libmpfr-dev libmpc-dev libelf-dev libisofs-devsudo apt install -y libpng-dev libjpeg-dev liblzo2-dev liblua5.2-devcd /tmpgit clone https://github.com/LuaDist/tolua.gitcd /tmp/tolua && mkdir build && cd ./buildcmake ../ && make && sudo make install
Code
sudo mkdir -p /usr/local/dc/kossudo chown -R $(id -u):$(id -g) /usr/local/dccd /usr/local/dc/kosgit clone https://github.com/KallistiOS/kos-ports.gitgit clone https://github.com/KallistiOS/KallistiOS.git koscd /usr/local/dc/kos/kosgit clone https://github.com/DC-SWAT/DreamShell.git dsgit checkout `cat ds/sdk/doc/KallistiOS.txt`cp ds/sdk/toolchain/environ.sh environ.shcp ds/sdk/toolchain/patches/*.diff utils/kos-chain/patchescd /usr/local/dc/kos/kos/dsgit submodule update --init --recursive
Toolchain
sudo mkdir -p /opt/toolchains/dcsudo chown -R $(id -u):$(id -g) /opt/toolchains/dccd /usr/local/dc/kos/koscp ./ds/sdk/toolchain/Makefile.cfg ./utils/kos-chain/Makefile.cfgcd utils/kos-chain && make
SDK
cd /usr/local/dc/kos/kossource ./environ.shmake && cd ../kos-ports && ./utils/build-all.shcd ${KOS_BASE}/ds/sdk/bin/src && make && make installcd ${KOS_BASE}/dsln -nsf `which tolua` sdk/bin/tolualn -nsf `which mkisofs` sdk/bin/mkisofsln -nsf `which mksquashfs` sdk/bin/mksquashfs

Use environment

for each new terminal type:
cd /usr/local/dc/kos/kos/ds && source ../environ.sh

Build code

Full build
make build
Full clean
make clean-all
Make release package
make release
Update all code from GitHub
make update
Update all code from GitHub and re-build
make update-build
Update and re-build kos-ports
make build-ports
Re-build toochain (if updated)
make toolchain
Core and libraries only
make
Libraries only
cd ${KOS_BASE}/ds/lib && make
Modules, applications and commands only
cd ${KOS_BASE}/ds/modules && makecd ${KOS_BASE}/ds/commands && makecd ${KOS_BASE}/ds/applications && make
Firmwares only
cd ${KOS_BASE}/ds/firmware/bootloader && make && make releasecd ${KOS_BASE}/ds/firmware/isoldr && make -j8 && make installcd ${KOS_BASE}/ds/firmware/hollysh && make && make install

Running

  • dc-tool-ip: make run
  • dc-tool-serial: make run-serial
  • lxdream emulator: make lxdream
  • nulldc emulator: make nulldc
  • flycast emulator: make flycast
  • make cdi image: make cdi

Links

Licensing

DreamShell core and DreamShell-specific components (including ISO Loader) are licensed under the PolyForm Noncommercial License 1.0.0 in LICENSE.

Required notices are in NOTICE.

This distribution also includes third-party components under their own licenses (for example, lib/, modules/, and parts of sdk/). For those, the license stated in the corresponding file or directory applies.

Contributing

Contributions require acceptance of CONTRIBUTING.md and CLA.md.

Releases

Used by

Contributors

Languages