GithubHelp home page GithubHelp logo

joseafribeiro / kallistios Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kallistios/kallistios

0.0 0.0 0.0 26.39 MB

A homebrew SDK/pseudo-operating system for the Sega Dreamcast. This repository is a mirror of the official SourceForge repository for KOS.

Home Page: https://kos-docs.dreamcast.wiki/

Shell 0.42% C++ 1.31% Python 0.31% C 93.98% Assembly 1.18% Awk 0.03% XC 0.41% Makefile 1.91% CMake 0.15% Dockerfile 0.03% Roff 0.27%

kallistios's Introduction


KallistiOS

Independent SDK for the Sega Dreamcast
Explore the docs »

Overview

KOS is an unofficial development kit for the SEGA Dreamcast game console with some support for the NAOMI and NAOMI 2 arcade boards.

KOS was developed from scratch over the internet by a group of free software developers and has no relation to the official Sega Katana or Microsoft Windows CE Dreamcast development kits. This has allowed it to fuel a thriving Dreamcast homebrew scene, powering many commercial releases for the platform over the years. It supports a significant portion of the Dreamcast's hardware capabilities and a wide variety of peripherals, accessories, and add-ons for the console, including custom hardware modifications that have been created by the scene.

Despite the console's age, KOS offers an extremely modern, programmer-friendly development environment. Using the latest GCC toolchain, it supports the entirety of C17 and C++20 including their standard libraries, along with support for portions of C23, C++23, Objective-C, and various POSIX APIs. Additionally, KOS-ports offers a rich set of add-on libraries such as SDL, OpenGL, OpenAL, and Lua for the platform.

Features

Core Functionality

  • Concurrency with Kernel Threads, C11 Threads, C++11 std::thread, POSIX threads
  • Virtual Filesystem Abstraction
  • IPv4/IPv6 Network Stack
  • Dynamically Loaded Libraries and Modules
  • GDB Debugger Support

Dreamcast Hardware Support

  • GD-ROM Optical Drive
  • Low-level 3D PowerVR Graphics
  • SH4 ASM-Optimized Math Routines
  • SH4 SCIF Serial I/O
  • DMA Controller
  • Flashrom Filesystem
  • AICA SPU Sound Processor Driver
  • Cache and Store Queue Management
  • Timer Peripherals, Real-Time Clock, Watchdog Timer
  • Performance Counters
  • MMU Management
  • BIOS Font Rendering

Peripherals and Accessory Support

  • Controller, ASCII Pad
  • Arcade Stick, Twin Stick, Mission Stick
  • Keyboard
  • Mouse
  • Visual Memory Unit
  • Puru Puru Vibration Pack
  • Seaman Microphone
  • Dreameye Webcam
  • Lightgun
  • Racing Wheel
  • Fishing Rod
  • Samba De Amigo Maracas
  • Dance Mat
  • Dial-up Modem
  • Broadband Adapter
  • LAN Adapter
  • VGA Adapter
  • SD Card Reader

Hardware Modification Support

  • IDE Hard Drive
  • 32MB RAM Upgrade
  • Custom BIOS Flashroms

Getting Started

A beginner's guide to development for the Sega Dreamcast along with detailed instructions for installing KOS and the required toolchains can be found on the Dreamcast Wiki. Additional documentation can be found in the docs folder.

Examples

Once you've set up the environment and are ready to begin developing, a good place to start learning is the examples directory, which provides demos for the various KOS APIs and for interacting with the Dreamcast's hardware. Examples include:

  • Hello World
  • Console Input/Output
  • Assertions, stacktraces, threading
  • Drawing directly to the framebuffer
  • Rendering with OpenGL
  • Rendering with KGL
  • Rendering with KOS PVR API
  • Texturing with libPNG
  • Bump maps, modifier volumes, render-to-texture PVR effects
  • Audio playback on the ARM SPU
  • Audio playback using SDL Audio
  • Audio playback using OGG, MP3, and CDDA
  • Querying controller input
  • Querying keyboard input
  • Querying mouse input
  • Querying lightgun input
  • Accessing the VMU filesystem
  • Accessing the SD card filesystem
  • Networking with the modem, broadband adapter, and LAN adapter
  • Taking pictures with the DreamEye webcam
  • Reading and Writing to/from ATA devices
  • Testing 32MB RAM hardware mod
  • Interactive Lua interpreter terminal

Resources

Dreamcast Wiki: Large collection of tutorials and articles for beginners
Simulant Discord Chat: Home to the official Discord channel of KOS
DCEmulation Forums: Goldmine of Dreamcast development information and history
IRC Channel: irc.libera.chat #dreamcastdev

kallistios's People

Contributors

ljsebald avatar gyrovorbis avatar andressbarajas avatar darcagn avatar tchan0 avatar pcercuei avatar cepawiel avatar kazade avatar quzardc avatar bogglez avatar sizious avatar dc-swat avatar groessler avatar onienzeru avatar jpeach avatar losinggeneration avatar einsteinx2 avatar kayateia avatar tsowell avatar mrneo240 avatar gameblabla avatar snickerbockers avatar kilgariff avatar maishuji avatar kouta-kun avatar kapodamy avatar unknownshadow200 avatar ppxxcc avatar dkm avatar has207 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.