Simple8
Simple8 — Write once, compile everywhere, play retro

Le projet

Programmer les machines rétro avec un langage moderne

Simple8 est un langage et un compilateur pour les architectures classiques à base de 6502, HuC6280, Z80 et 68000. Sa syntaxe, inspirée de Java et du C, est familière et structurée : on écrit des jeux et des démos sans devoir maîtriser tout l'assembleur de chaque machine.

Le compilateur produit de l'assembleur natif, l'assemble, puis livre une ROM, une disquette ou un programme prêt à lancer dans un émulateur ou sur la vraie console.

En développement : Simple8 évolue encore. Le langage, les bibliothèques et ce site peuvent changer d'une version à l'autre, et certaines parties du site, marquées « À venir », ne sont pas encore actives.

// Une ROM PC Engine
architecture nec.pce;

addlib vdc.bat;

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

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

Écrire une fois

Units, addunit, contextes : le même langage d'une machine à l'autre. Seules les bibliothèques changent, au plus près du matériel.

Compiler partout

Un générateur de code par processeur, des assembleurs intégrés et des optimisations mesurées sur chaque cible.

Jouer rétro

Garder la main : l'assembleur en ligne avec _asm, les variables en page zéro avec fast, la banque mémoire choisie.

Les machines

Une syntaxe, de nombreuses cibles

Chaque programme commence par la déclaration de sa 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 · expérimental
Amiga 50068000 · commodore.amiga · expérimental

La suite Simple8

Du code aux graphismes, les outils du projet

Autour du compilateur, trois applications couvrent toute la chaîne de création, de l'écriture du programme jusqu'aux décors et aux sprites.

Simple8 IDE

L'environnement de développement

Écrire, compiler et lancer sans quitter l'application : l'IDE réunit tout ce qu'une chaîne de compilation rétro demande d'habitude de plusieurs outils.

  • Éditeur des sources .s8p et .s8l
  • Compilation et lecture de l'ASM, des listings et des rapports
  • Visionneuses d'images et hexadécimale, diagramme du projet
  • Lancement de la ROM dans un émulateur, intégration Git
Rust · Tauri · Svelte · Monaco

SquareDot

L'éditeur de tuiles et de cartes

On dessine des compositions (un arbre, une maison), le jeu de tuiles s'en déduit. La machine choisie fixe les règles : taille des tuiles, palettes, couleurs, mémoire.

  • Compositions et dédoublonnage des tuiles
  • Cartes à plusieurs couches, bordures automatiques
  • Import d'images aux contraintes de la machine
  • Lu directement par le compilateur : ResourceFactory("SquareDot")
Rust · Tauri · Svelte

3DSpriteMaker

Des sprites modélisés en voxels

On construit l'objet cube par cube, on choisit l'angle de vue, et l'outil en tire les sprites dans les couleurs de la machine, avec une lumière facultative.

  • Animation par keyframes : objet, caméra, lumière
  • Personnages animés par squelette : marche, course, saut
  • Ombrage par rampes de couleurs ou par trame
  • Export en unit Simple8 à ajouter par addunit
Rust · Tauri
Une carte de vallée dessinée avec SquareDot

Des outils qui parlent au compilateur

Un projet SquareDot ou une animation de 3DSpriteMaker n'a pas besoin d'étape de conversion : le compilateur les lit et les range dans la ROM, au format de la machine ciblée. Changer de machine, c'est changer une ligne.

À venir : des versions prêtes à installer pour macOS, Windows et Linux, et une version en ligne de la suite Simple8, utilisable depuis un navigateur.

Documentation

Apprendre Simple8 pas à pas

La documentation se construit progressivement. Elle commence par l'essentiel : programmer avec Simple8.

01

Programmer avec Simple8

Le langage, de la première unit à un programme complet.

14 chapitres, cours complet
02

Les machines

Mémoire, bibliothèques et contextes de chaque cible.

À venir
03

Simple8 IDE

Prendre en main l'environnement de développement.

À venir
04

SquareDot

Dessiner les décors et les cartes d'un jeu.

À venir
05

3DSpriteMaker

Modéliser et animer des sprites en voxels.

À venir