Skip to main content

R65

A Rust-inspired language for the 65816 processor

Hardware-transparent programming for the SNES and 65816, with Rust-inspired syntax and compile-time type safety.

Hardware-First

CPU registers, bank boundaries, and processor modes are first-class language concepts. Write code that maps directly to 65816 instructions with full control over the hardware.

Type Safe

Catch bank overflow, mode mismatches, and size errors at compile time. Explicit type conversions and register-aware type checking prevent entire classes of 65816 bugs.

Zero Abstraction Cost

Every high-level construct compiles to efficient assembly matching hand-written code. No runtime overhead, no hidden allocations, no surprises in the generated output.

Write for the hardware

R65 gives you direct access to CPU registers, memory banks, and processor modes — with the safety of a modern type system. No runtime overhead, no hidden abstractions.

Compiles to clean WLA-DX assembly that reads like hand-written code.

#[interrupt(nmi)]
fn vblank_handler() {
    dma_transfer(VRAM_BUFFER, 0x0000, 256);
    FRAME_COUNTER++;
}

fn update_sprite(id @ A: u8, x @ X: u16) {
    let offset = (id as u16) * 4;
    OAM_BUFFER[offset] = x as u8;
}