Pseudo operating system and indie SDK for the Sega Dreamcast. I’m an open-source contributor, responsible for many bugfixes and features, including being the one to maintain and fix C and C++ standard library issues with our SH-GCC toolchain. Additionally, I contribute to many of its drivers and open-source libraries such as GLdc (OpenGL), SDL2, and others.
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
Real-Time Visual Memory Unit Profiler for KallistiOS-Based Sega Dreamcast Applications
The VMU Profiler was created as a profiling tool for the Grand Theft Auto 3 port to the Sega Dreamcast as a way to gather real-time scene and resource statistics on actual hardware, rather than relying on emulators. Modified with extensibility for the Doom 64 port to the Sega Dreamcast.
Runs in a background thread, no blocking on Maple
Configurable polling interval, sleeps in between updates
Configurable background thread priority
Configurable VMU port to display on
Configurable frames to average for smooth FPS counting
User-defined/configurable statistics
Sh4zam is a hand-optimized, general-purpose math and linear algebra library for harnessing the floating-point power of the SH4 processor in the Sega Dreamcast. It originally began as a collection of inline assembly routines developed specifically to accelerate the math in the Grand Theft Auto 3 and Vice City DC ports. These routines, along with many others from various contributors, have been separated and combined into a single standalone library, which can be leveraged to bring gainz to the Dreamcast community at large.
Dual modern C and modern C++ APIs for everything
Scalar Math and Trigonometry
Vectors: 2D, 3D, 4D
Matrices: 2x2, 3x3, 3x4, and 4x4
Quaternions
XMTRX: FP register back-bank manipulation
Memory: optimized specialized memcpy() and memset() variants
libElysianVMU (libEVMU) is a standalone emulator core of the Sega Dreamcast's 8-bit Visual Memory Unit (VMU), written in C17. It is the core powering the ElysianVMU emulator for Windows, MacOS, and Linux, which has been separated from any platform-specific back-end or UI front-end. Several years of meticulous research and reverse engineering have gone into the creation of this core, which has now been open-sourced in hopes of benefitting the Dreamcast community at-large.
The primary goal of libEVMU is to provide a one-stop, all-encompassing framework exposing everything the VMU has to offer in a standard C codebase that can be ported to any platform or wrapped to any language, allowing for everyone to use it in their projects and to benefit from a common codebase. At a high-level, this goal encompasses:
Fully and accurately emulating the VMU as a standalone gaming device
Providing tooling and APIs around its filesystem and all relevant file formats
Meticulously documenting every aspect of the codebase to expose everything that was previously undiscovered
Being performant enough to be ported to a Sega Saturn, N64, or toaster oven
Offering a high-level entity/component-based API that is intuitive and easy to work with
Allowing for modeling exotic, customized, nonstandard VMUs with extended volumes or capabilities
Providing low-level hooks for supporting debuggers and high-level tooling
Rigorously unit testing all aspects of the codebase to ensure correctness
8BITMODS created a VMUPro that utilizes the libEVMU core.
My final project presentation for a graduate-level VLSI class implementing libEVMU on FPGA
Cross-language extended standard library providing common data structures, variants, algorithms, allocators, logging, concurrency, event handling, parsing, specialized string types, macro meta programming primitives, general utilities, and an object-oriented meta-type system for language interop between any languages supporting the C ABI. The type system brings classes, virtual functions, interfaces, inheritance, encapsulation, properties, signals, and more modern language concepts to low-level C code as well. Framework includes a cross-platform unit test API which uses the type system and can run anywhere. Library core is pure C17 with a (WIP) C++20 convenience layer. Over 800 unit tests in CI, all executing on Windows, Mac, Linux, Android, iOS, WebAssembly, Sony PSVita, and even a physical Sega Dreamcast.
libGimbal is split into a series of APIs, featuring:
Containers and Data Structures
Generic Algorithms
Custom Allocators
Specialized Strings
Standard Library Utilities
Preprocessor Programming
Dynamic Type System
Threading and Concurrency
Unit Test Framework
ElysianLua is a Lua binding API for interoping between the C++ and the Lua languages. It is the core Lua framework powering the Elysian Shadows game scripting engine within its tech stack. The API is written in C++20, making heavy usage of variadic and metatemplates as well as leveraging the new concepts and constraints additions to the language. Furthermore, it is specifically targeting the latest Lua version 5.4.
As this library is being used in a game engine running on the Sega Dreamcast, it attepts to be extremely performance-minded by going to great lengths to exploit fast paths for table lookups, avoiding using registry storage except for persistent data, primarily operating on the stack, favoring compile-time polymorphism, and providing mechanisms for resource management and validation, despite still providing a higher-level C++-based API.