Simple8
Simple8 — Write once, compile everywhere, play retro

The project

Program retro machines with a modern language

Simple8 is a language and a compiler for classic architectures built around the 6502, HuC6280, Z80 and 68000. Its syntax, inspired by Java and C, is familiar and structured: you write games and demos without having to master all of each machine's assembly language.

The compiler produces native assembly, assembles it, then delivers a ROM, a floppy disk or a program ready to run in an emulator or on the real console.

In development: Simple8 is still evolving. The language, the libraries and this site may change from one version to the next, and some parts of the site, marked “Coming soon”, are not active yet.

// A PC Engine ROM
architecture nec.pce;

addlib vdc.bat;

unit {
    const byte SPEED = 2;
    fast  int  x = 16;

    main() {
        while (1) {
            x = x + SPEED;
        }
    }
}

Write once

Units, addunit, contexts: the same language from one machine to the next. Only the libraries change, as close to the hardware as possible.

Compile everywhere

One code generator per processor, built-in assemblers and optimizations measured on each target.

Play retro

Stay in control: inline assembly with _asm, variables in zero page with fast, the memory bank of your choice.

The machines

One syntax, many targets

Every program starts by declaring its machine: architecture nec.pce;

PC Engine / TurboGrafx-16HuC6280 · nec.pce
PC Engine SuperGrafXHuC6280 · nec.sgx
Commodore 64MOS 6510 · commodore.c64
NES / FamicomRicoh 2A03 · nintendo.nes
Game BoySM83 · nintendo.dmg
Amstrad CPCZ80A · amstrad.cpc6128
MSX, Master System, SpectrumZ80 · zilog.z80
Apple II, Atari 2600MOS 6502 · mos.6502
Mega Drive / Genesis68000 · sega.megadrive · experimental
Amiga 50068000 · commodore.amiga · experimental

The Simple8 suite

From code to graphics, the project's tools

Around the compiler, three applications cover the whole creative pipeline, from writing the program to the backgrounds and sprites.

Simple8 IDE

The development environment

Write, compile and run without leaving the application: the IDE brings together everything a retro toolchain usually needs several tools for.

  • Editor for .s8p and .s8l sources
  • Compilation, and viewing of the ASM, listings and reports
  • Image and hex viewers, project diagram
  • Running the ROM in an emulator, Git integration
Rust · Tauri · Svelte · Monaco

SquareDot

The tile and map editor

You draw compositions (a tree, a house), and the tile set is derived from them. The chosen machine sets the rules: tile size, palettes, colors, memory.

  • Compositions and tile deduplication
  • Multi-layer maps, automatic borders
  • Image import under the machine's constraints
  • Read directly by the compiler: ResourceFactory("SquareDot")
Rust · Tauri · Svelte

3DSpriteMaker

Sprites modeled in voxels

You build the object cube by cube, choose the viewing angle, and the tool turns it into sprites in the machine's colors, with optional lighting.

  • Keyframe animation: object, camera, light
  • Skeleton-animated characters: walk, run, jump
  • Shading with color ramps or dithering
  • Export as a Simple8 unit to add with addunit
Rust · Tauri
A valley map drawn with SquareDot

Tools that talk to the compiler

A SquareDot project or a 3DSpriteMaker animation needs no conversion step: the compiler reads them and stores them in the ROM, in the format of the target machine. Switching machines means changing one line.

Coming soon: ready-to-install versions for macOS, Windows and Linux, and an online version of the Simple8 suite that runs in a browser.

Documentation

Learn Simple8 step by step

The documentation is being built little by little. It starts with the essentials: programming with Simple8.

01

Programming with Simple8

The language, from your first unit to a complete program.

14 chapters, full course
02

The machines

Memory, libraries and contexts for each target.

Coming soon
03

Simple8 IDE

Getting started with the development environment.

Coming soon
04

SquareDot

Drawing a game's backgrounds and maps.

Coming soon
05

3DSpriteMaker

Modeling and animating voxel sprites.

Coming soon