Violet Logo Violet Blue I

A low-level, binary stream-based virtual multimedia terminal architecture.


Violet Blue I acts like a virtual multimedia card that communicates with native host applications using standard I/O streams (`stdout`/`stdin`). It provides direct execution of video and audio binary commands without requiring applications to link against external native libraries.
Designed for rapid game prototyping, graphical tools, and low-level system exploration, Violet Blue I is totally language-agnostic. Any program written in any language capable of emitting binary bytes to `stdout` can render 32-bit xRGB graphics and synthesize PSG chiptune audio.
System Highlights:
  • Asynchronous Guest/Host Pipeline: Native application runs as a guest process driving the 60 FPS host interface via binary streams.
  • Register-Driven Coprocessor: Stateful drawing model featuring 32-bit ARGB rasterization, vector primitives, custom bitmap caching, and zero-copy blitting.
  • 4-Channel PSG Synthesizer: Real-time square, triangle, sawtooth, and white noise generator with per-channel volume and master pitch modulation.
Download the official Violet Blue I SDK here for Windows.
Check out sample programs and documentation on the Demos page.
Violet Blue I Terminal Window Screenshot
Figure 1.1: The official Violet Blue I runtime executing on the demo programs.

Minimal C Application Blueprint
#include <stdio.h>
#include <fcntl.h>
#include <io.h>
#include <windows.h>
#include <bluei.h>

int main(void) {
    // Set stdout to binary mode to prevent Windows CRLF conversions
    _setmode(_fileno(stdout), _O_BINARY);
    unsigned char buf[256];
    unsigned char* p = buf;

    pCMD_ENV(p);
    pCMD_SETWIN(p, 320, 240);
    fwrite(buf, p - buf, 1, stdout);
    fflush(stdout);

    while (!(GetAsyncKeyState('Q') & 0x8000)) {
        p = buf;
        pCMD_SETCOLOR(p, 0x20, 0x20, 0x40, 0xFF);
        pCMD_CLEAR(p);
        
        fwrite(buf, p - buf, 1, stdout);
        fflush(stdout);
        Sleep(16);
    }
    return 0;
}

Resources: Changelog History
If you encounter any bugs, feel free to report them at contact@mdaleba.com

This page was last modified on September 2nd, 2026.