Tachibana

Projet Tachibana · Jeu Oric-1

Astéroric

Asteroids — Oric-1 48 Ko

Un clone d'étude fidèle d'Asteroids (Atari, 1979) pour l'Oric-1 48 Ko : la logique de l'arcade, le tracé vectoriel, le son — sur un 6502 à 1 MHz.

Écrit en C et assembleur 6502 (cc65). Rendu XOR en HIRES 240×200, boucle de jeu à 25 Hz constants, astéroïdes et soucoupes issus du désassemblage de la ROM arcade rev 4, son AY-3-8912 sur 3 canaux, joystick IJK et touches configurables. Testé sur Oric-1 réel. Licence EUPL 1.2.

Fonctionnalités

Ce que fait Astéroric

Tracé vectoriel XOR

Segments Bresenham en XOR sur l'écran HIRES monochrome : dessiner puis redessiner efface sans rien mémoriser. Routine en assembleur auto-modifiant, batch par octet sur l'axe horizontal, sprites pré-rendus pour les formes fixes.

Fidèle à l'arcade

Logique transposée du désassemblage de la ROM arcade rev 4 : formes d'astéroïdes à 11-13 sommets, vagues progressives, fragmentation en 3 morceaux, IA des soucoupes indexée sur le score, hyperespace, vaisseau 5 segments.

Son AY-3-8912 sur 3 canaux

Player sous interruption Timer 1 à 50 Hz : canal A pour les effets, B pour le battement thump-thump, C pour la soucoupe. Enveloppes matérielles, huit effets recréés, jingle de titre d'après Grieg (deux voix).

Écran titre vectoriel

Police vectorielle A-Z complète tracée en XOR, démo passive façon borne d'arcade, « PRESS SPACE » clignotant, score à 7 segments, « WAVE n », tableau des cinq meilleurs scores.

Clavier et joystick IJK

Scan direct de la matrice clavier par le VIA (pas de dépendance à la ROM), touches remappables depuis l'écran titre (touche K), interface joystick IJK lue sur le port imprimante — protocole validé sur matériel réel.

Libre (EUPL 1.2)

Code original publié sous EUPL 1.2 sur GitHub, binaire .tap autorun en release. Tourne sur l'émulateur Phosphoric (outil de développement du projet) et sur un vrai Oric-1.

Voir toutes les fonctionnalités en détail → · Lire le manuel →

Jouer

Trois façons d'y jouer

Télécharger le .tap

Le fichier asteroric.tap (~23 Ko) est dans les Assets de la dernière release GitHub. Il est autorun : aucun CLOAD à taper, le mode HIRES et le jeu démarrent au chargement.

Recommandé

Sous Phosphoric

L'émulateur Phosphoric en machine Oric-1 (ROM BASIC 1.0) charge le .tap directement ; make run depuis les sources fait la même chose, make run-joy avec le joystick IJK émulé.

Émulateur

Sur un Oric-1 réel

Chargement par cassette ou par une interface moderne. Signal vidéo HIRES 50 Hz (PAL) validé par un testeur externe avec un RGB2HDMI ; interface IJK physique prise en charge.

Matériel réel

Télécharger & compiler

Récupérer et construire

Code source

Le dépôt est public sous licence EUPL 1.2 (code original). Clonez-le, ouvrez une issue, proposez un correctif.

github.com/benedictemarty/oric-asteroids

Compiler

Avec cc65 (≥ 2.19), Python 3 pour les tables et Phosphoric pour lancer et tester :

make # produit build/asteroric.tap
make run # lance sous Phosphoric
make check # capture = référence bit à bit
make host-test # tests hôte (rng, table clavier)

Exécuter

Sous Phosphoric en Oric-1, ou sur un vrai Oric-1 48 Ko. Le manuel détaille les touches, l'écran de configuration et le joystick.

Lire le manuel

Feuille de route

Où en est le développement

Astéroric est en 1.0.0-beta (phase 40, release GitHub du 9 août 2026) : jeu complet et jouable, validé sur Oric-1 réel par un testeur externe. Quarante phases livrées, deux revues de code « senior » appliquées. État indicatif ci-dessous — le dépôt fait foi.

Jeu complet

Vaisseau 32 angles, tirs, astéroïdes 4 formes × 3 tailles, collisions, score, vies, vagues, soucoupes, hyperespace, game over et cinq meilleurs scores.

Fait

Fidélité arcade rev 4

Formes, spawn, fragmentation, IA des soucoupes, pression de fin de vague, explosions du vaisseau et des astéroïdes transposées du désassemblage.

Fait

Son AY 3 canaux

Player sous IRQ, enveloppes, huit effets, jingle de titre (Grieg, domaine public) en deux voix.

Fait

25 Hz constants

Ordonnanceur à pas fixe avec rattrapage, fin des à-coups ; temps CPU libre passé de 17,9 % à 39,8 % sur trois phases d'optimisation.

Fait

Matériel réel

Signal vidéo 50 Hz corrigé (attribut ULA $1E), torpilles 2×2 px, protocole IJK réel — trois retours d'un testeur sur Oric-1 physique.

Fait

Touches configurables

Écran CONTROLS (touche K sur le titre) : cinq actions remappables, doublons refusés, ESC restaure.

Fait

Oric Atmos

Le .tap ne fonctionne pas avec la ROM Atmos (BASIC 1.1) : cible nominale Oric-1, compatibilité Atmos à traiter dans un sprint dédié.

À faire

Persistance & disquette

Sauvegarde des meilleurs scores sur cassette ou disquette, image .dsk Microdisc, déroulage des boucles de tracé, bande HUD en couleur.

Feuille de route

Articles

Notes techniques