Note: The public repo is 30 days behind the private development repo in order to provide a perk for patrons. This repo has active ongoing work, it just won't appear here for 30 days. If you would like to support development and get access to the latest code, please consider becoming a patron.
StarJay is a 16-bit era fantasy console with a focus on understandability. The goal is to provide the resources and interfaces required to fully understand the system and how it works, including detailed manuals, circuit schematics and a debug GUI.
Install customasm from here: https://github.com/hlorenzi/customasm
If you have rust installed, this can be as simple as:
cargo install customasmYou also need zig installed. See https://ziglang.org/download/, 0.15.x is required until all dependecies support 0.16.x.
zig buildmake all
zig build testmake examples
zig build run -- --rom starjette/examples/sieve.bin --debuggerYou can build a rom for assembly with:
customasm -f binary -o <rom.bin> starjette/customasm/cpudef.asm starjette/customasm/test_kernel.asm <rom.asm>zig build run -- --rom <rom.bin> --debuggerThere is a RISC-V emulator included, activated with the --riscv flag:
zig build run -- --riscv --rom <riscv_rom.bin> You can run the VDP demo using the included RISC-V support:
cd riscv/examples/vdp_demo && zig build && cd ../../../
zig build run --release=safe -- --riscv --vdp --rom riscv/examples/vdp_demo/zig-out/bin/vdp_demo.bin
You can run a minimal Linux system using the included RISC-V support:
make dllinux
zig build run --release=safe -- --riscv --rom LinuxImageCopyright (c) 2026 Ryan "rj45" Sanche
This project is licensed under the MIT License - see the LICENSE file for details.