GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - DC-SWAT/DreamShell: Operating system for the Sega Dreamcast, NAOMI and NAOMI 2

BranchesTags
Open more actions menu

Latest commit

 

History

1,344 Commits
1,344 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
.vscode
.vscode
 
 
applications
applications
 
 
commands
commands
 
 
firmware
firmware
 
 
include
include
 
 
lib
lib
 
 
modules
modules
 
 
resources
resources
 
 
romdisk
romdisk
 
 
sdk
sdk
 
 
src
src
 
 
utils
utils
 
 
.gitignore
.gitignore
 
 
.gitmodules
.gitmodules
 
 
CLA.md
CLA.md
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
LICENSE
LICENSE
 
 
Makefile
Makefile
 
 
Makefile.gcc_stubs
Makefile.gcc_stubs
 
 
Makefile.stubs
Makefile.stubs
 
 
NOTICE
NOTICE
 
 
README.md
README.md
 
 
exports.txt
exports.txt
 
 
exports_gcc.txt
exports_gcc.txt
 
 

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 update
sudo apt install -y gawk patch bzip2 tar make cmake pkg-config
sudo apt install -y gettext wget bison flex sed meson ninja-build
sudo apt install -y build-essential diffutils curl python3 rake
sudo apt install -y genisoimage squashfs-tools texinfo git
sudo apt install -y libgmp-dev libmpfr-dev libmpc-dev libelf-dev libisofs-dev
sudo apt install -y libpng-dev libjpeg-dev liblzo2-dev liblua5.2-dev
cd /tmp
git clone https://github.com/LuaDist/tolua.git
cd /tmp/tolua && mkdir build && cd ./build
cmake ../ && make && sudo make install
Code
sudo mkdir -p /usr/local/dc/kos
sudo chown -R $(id -u):$(id -g) /usr/local/dc
cd /usr/local/dc/kos
git clone https://github.com/KallistiOS/kos-ports.git
git clone https://github.com/DC-SWAT/KallistiOS.git kos
cd /usr/local/dc/kos/kos
git clone https://github.com/DC-SWAT/DreamShell.git ds
git checkout `cat ds/sdk/doc/KallistiOS.txt`
cp ds/sdk/toolchain/environ.sh environ.sh
cp ds/sdk/toolchain/patches/*.diff utils/kos-chain/patches
cd /usr/local/dc/kos/kos/ds
git submodule update --init --recursive
Toolchain
sudo mkdir -p /opt/toolchains/dc
sudo chown -R $(id -u):$(id -g) /opt/toolchains/dc
cd /usr/local/dc/kos/kos
cp ./ds/sdk/toolchain/Makefile.cfg ./utils/kos-chain/Makefile.cfg
cd utils/kos-chain && make
SDK
cd /usr/local/dc/kos/kos
source ./environ.sh
make && cd ../kos-ports && ./utils/build-all.sh
cd ${KOS_BASE}/ds/sdk/bin/src && make && make install
cd ${KOS_BASE}/ds
ln -nsf `which tolua` sdk/bin/tolua
ln -nsf `which mkisofs` sdk/bin/mkisofs
ln -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 && make
cd ${KOS_BASE}/ds/commands && make
cd ${KOS_BASE}/ds/applications && make
Firmwares only
cd ${KOS_BASE}/ds/firmware/bootloader && make && make release
cd ${KOS_BASE}/ds/firmware/isoldr && make -j8 && make install
cd ${KOS_BASE}/ds/firmware/hollysh && make && make install
MIE firmware

mie_z80.bin ships as-is. Rebuild only after changing the firmware; this needs SDCC.

cd ${KOS_BASE}/ds/firmware/mie && 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
  • make IDE/SD FAT32 image: make ide

Links

  • Website: http://www.dc-swat.ru/
  • Forum: http://www.dc-swat.ru/forum/
  • Donate: http://www.dc-swat.ru/page/donate/

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.

About

Operating system for the Sega Dreamcast, NAOMI and NAOMI 2

www.dc-swat.ru

Topics

biosbootloaderccppdreamcastdriverembeddedfilesystemfirmwarehomebrewisoloaderluanaomioperating-systemsegasega-dreamcastsh4shellxml

Resources

Readme
License

Contributing

Contributing
Activity

Stars

568 stars

Watchers

47 watching

Forks

64 forks
Report repository

Releases

Sponsor this project

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.