Tachibana

Tachibana-project · Oric-1-spel

Astéroric

Asteroids — Oric-1 48K

Een getrouwe studiekloon van Asteroids (Atari, 1979) voor de Oric-1 48K: de arcadelogica, de vectortekening, het geluid — op een 6502 van 1 MHz.

Geschreven in C en 6502-assembler (cc65). XOR-weergave in HIRES 240×200, spellus op een constante 25 Hz, asteroïden en schotels uit de disassemblage van de arcade-ROM rev 4, AY-3-8912-geluid op 3 kanalen, IJK-joystick en instelbare toetsen. Getest op een echte Oric-1. EUPL 1.2-licentie.

Functies

Wat Astéroric doet

XOR-vectortekening

Bresenham-segmenten in XOR op het monochrome HIRES-scherm: tekenen en opnieuw tekenen wist, zonder iets te bewaren. Zelfmodificerende assemblerroutine, per byte gebundeld op de horizontale as, voorgerenderde sprites voor vaste vormen.

Trouw aan de arcade

Logica overgezet uit de disassemblage van de arcade-ROM rev 4: asteroïdevormen met 11-13 hoekpunten, oplopende golven, fragmentatie in 3 stukken, schotel-AI afhankelijk van de score, hyperspace, schip met 5 segmenten.

AY-3-8912-geluid op 3 kanalen

Speler onder de Timer 1-interrupt op 50 Hz: kanaal A voor effecten, B voor de thump-thump-hartslag, C voor de schotel. Hardware-envelopes, acht nagemaakte effecten, titeljingle naar Grieg (twee stemmen).

Vectortitelscherm

Volledig A-Z-vectorlettertype in XOR, passieve demo zoals op de kast, knipperend “PRESS SPACE”, 7-segmentscore, “WAVE n”, tabel met de vijf beste scores.

Toetsenbord en IJK-joystick

Directe scan van de toetsenbordmatrix via de VIA (geen ROM-afhankelijkheid), toetsen herindeelbaar vanaf het titelscherm (toets K), IJK-joystickinterface gelezen op de printerpoort — protocol gevalideerd op echte hardware.

Vrij (EUPL 1.2)

Oorspronkelijke code uitgebracht onder EUPL 1.2 op GitHub, autorun-.tap in de release. Draait op de emulator Phosphoric (ontwikkeltool van het project) en op een echte Oric-1.

Alle functies in detail → · Handleiding lezen →

Spelen

Drie manieren om te spelen

.tap downloaden

Het bestand asteroric.tap (~23 KB) staat bij de Assets van de laatste GitHub-release. Het is autorun: geen CLOAD intypen, de HIRES-modus en het spel starten bij het laden.

Aanbevolen

Onder Phosphoric

De emulator Phosphoric als Oric-1 (BASIC 1.0-ROM) laadt de .tap rechtstreeks; make run vanuit de bronnen doet hetzelfde, make run-joy met de geëmuleerde IJK-joystick.

Emulator

Op een echte Oric-1

Laden via cassette of een moderne interface. HIRES-videosignaal op 50 Hz (PAL) gevalideerd door een externe tester met een RGB2HDMI; fysieke IJK-interface ondersteund.

Echte hardware

Downloaden & bouwen

Ophalen en bouwen

Broncode

De repository is openbaar onder de EUPL 1.2-licentie (oorspronkelijke code). Kloon ze, open een issue, stel een fix voor.

github.com/benedictemarty/oric-asteroids

Bouwen

Met cc65 (≥ 2.19), Python 3 voor de tabellen en Phosphoric om te draaien en te testen:

make # maakt build/asteroric.tap
make run # start onder Phosphoric
make check # opname = bit-exacte referentie
make host-test # hosttests (rng, toetstabel)

Uitvoeren

Onder Phosphoric als Oric-1, of op een echte Oric-1 48K. De handleiding beschrijft de toetsen, het instelscherm en de joystick.

Handleiding lezen

Roadmap

Waar de ontwikkeling staat

Astéroric is op 1.0.0-beta (fase 40, GitHub-release van 9 augustus 2026): een compleet, speelbaar spel, gevalideerd op een echte Oric-1 door een externe tester. Veertig fasen opgeleverd, twee “senior” codereviews toegepast. Indicatieve stand hieronder — de repository is leidend.

Compleet spel

Schip met 32 hoeken, schoten, asteroïden in 4 vormen × 3 groottes, botsingen, score, levens, golven, schotels, hyperspace, game over en vijf beste scores.

Klaar

Arcade rev 4-getrouwheid

Vormen, spawn, fragmentatie, schotel-AI, druk aan het einde van de golf, explosies van schip en asteroïden overgezet uit de disassemblage.

Klaar

AY-geluid op 3 kanalen

IRQ-speler, envelopes, acht effecten, titeljingle (Grieg, publiek domein) in twee stemmen.

Klaar

Constante 25 Hz

Planner met vaste stap en inhaalslag, geen haperingen meer; vrije CPU-tijd van 17,9 % naar 39,8 % in drie optimalisatiefasen.

Klaar

Echte hardware

50 Hz-videosignaal gecorrigeerd (ULA-attribuut $1E), torpedo's van 2×2 px, echt IJK-protocol — drie feedbackrondes van een tester op een fysieke Oric-1.

Klaar

Instelbare toetsen

CONTROLS-scherm (toets K op het titelscherm): vijf herindeelbare acties, duplicaten geweigerd, ESC herstelt.

Klaar

Oric Atmos

De .tap werkt niet met de Atmos-ROM (BASIC 1.1): nominaal doel is de Oric-1, Atmos-compatibiliteit wordt een aparte sprint.

Te doen

Opslag & diskette

Beste scores opslaan op cassette of diskette, Microdisc-.dsk-image, uitgerolde tekenlussen, HUD-band in kleur.

Roadmap

Artikelen

Technische notities