Tachibana

Proyecto Tachibana · Juego Oric-1

Astéroric

Asteroids — Oric-1 48K

Un clon de estudio fiel de Asteroids (Atari, 1979) para el Oric-1 48K: la lógica del arcade, el trazado vectorial, el sonido — en un 6502 a 1 MHz.

Escrito en C y ensamblador 6502 (cc65). Renderizado XOR en HIRES 240×200, bucle de juego a 25 Hz constantes, asteroides y platillos tomados del desensamblado de la ROM arcade rev 4, sonido AY-3-8912 en 3 canales, joystick IJK y teclas configurables. Probado en un Oric-1 real. Licencia EUPL 1.2.

Funciones

Qué hace Astéroric

Trazado vectorial XOR

Segmentos Bresenham en XOR sobre la pantalla HIRES monocroma: dibujar y volver a dibujar borra sin guardar nada. Rutina en ensamblador automodificable, procesamiento por byte en el eje horizontal, sprites prerrenderizados para las formas fijas.

Fiel al arcade

Lógica transpuesta del desensamblado de la ROM arcade rev 4: formas de asteroides de 11-13 vértices, oleadas progresivas, fragmentación en 3 trozos, IA de los platillos indexada por la puntuación, hiperespacio, nave de 5 segmentos.

Sonido AY-3-8912 en 3 canales

Reproductor bajo la interrupción Timer 1 a 50 Hz: canal A para los efectos, B para el latido thump-thump, C para el platillo. Envolventes por hardware, ocho efectos recreados, sintonía de título según Grieg (dos voces).

Pantalla de título vectorial

Fuente vectorial A-Z completa trazada en XOR, demo pasiva al estilo de la recreativa, «PRESS SPACE» parpadeante, puntuación de 7 segmentos, «WAVE n», tabla de las cinco mejores puntuaciones.

Teclado y joystick IJK

Lectura directa de la matriz del teclado por el VIA (sin depender de la ROM), teclas reasignables desde la pantalla de título (tecla K), interfaz de joystick IJK leída en el puerto de impresora — protocolo validado en hardware real.

Libre (EUPL 1.2)

Código original publicado bajo EUPL 1.2 en GitHub, binario .tap autoarrancable en la release. Funciona en el emulador Phosphoric (herramienta de desarrollo del proyecto) y en un Oric-1 real.

Ver todas las funciones en detalle → · Leer el manual →

Jugar

Tres formas de jugar

Descargar el .tap

El archivo asteroric.tap (~23 KB) está en los Assets de la última release de GitHub. Es autoarrancable: no hay que teclear CLOAD, el modo HIRES y el juego arrancan al cargar.

Recomendado

Con Phosphoric

El emulador Phosphoric como Oric-1 (ROM BASIC 1.0) carga el .tap directamente; make run desde las fuentes hace lo mismo, make run-joy con el joystick IJK emulado.

Emulador

En un Oric-1 real

Carga por casete o mediante una interfaz moderna. Señal de vídeo HIRES a 50 Hz (PAL) validada por un probador externo con un RGB2HDMI; interfaz IJK física compatible.

Hardware real

Descargar y compilar

Obtener y construir

Código fuente

El repositorio es público bajo licencia EUPL 1.2 (código original). Clónalo, abre una issue, propón una corrección.

github.com/benedictemarty/oric-asteroids

Compilar

Con cc65 (≥ 2.19), Python 3 para las tablas y Phosphoric para ejecutar y probar:

make # produce build/asteroric.tap
make run # ejecuta en Phosphoric
make check # captura = referencia bit a bit
make host-test # tests en el host (rng, tabla de teclas)

Ejecutar

En Phosphoric como Oric-1, o en un Oric-1 48K real. El manual detalla las teclas, la pantalla de configuración y el joystick.

Leer el manual

Hoja de ruta

Estado del desarrollo

Astéroric está en 1.0.0-beta (fase 40, release de GitHub del 9 de agosto de 2026): juego completo y jugable, validado en un Oric-1 real por un probador externo. Cuarenta fases entregadas, dos revisiones de código «senior» aplicadas. Estado orientativo; el repositorio es la referencia.

Juego completo

Nave de 32 ángulos, disparos, asteroides de 4 formas × 3 tamaños, colisiones, puntuación, vidas, oleadas, platillos, hiperespacio, game over y cinco mejores puntuaciones.

Hecho

Fidelidad arcade rev 4

Formas, aparición, fragmentación, IA de los platillos, presión de fin de oleada, explosiones de la nave y de los asteroides transpuestas del desensamblado.

Hecho

Sonido AY 3 canales

Reproductor bajo IRQ, envolventes, ocho efectos, sintonía de título (Grieg, dominio público) a dos voces.

Hecho

25 Hz constantes

Planificador de paso fijo con recuperación, fin de los tirones; tiempo de CPU libre subido del 17,9 % al 39,8 % en tres fases de optimización.

Hecho

Hardware real

Señal de vídeo a 50 Hz corregida (atributo ULA $1E), torpedos de 2×2 px, protocolo IJK real — tres rondas de comentarios de un probador con un Oric-1 físico.

Hecho

Teclas configurables

Pantalla CONTROLS (tecla K en el título): cinco acciones reasignables, duplicados rechazados, ESC restaura.

Hecho

Oric Atmos

El .tap no funciona con la ROM Atmos (BASIC 1.1): el objetivo nominal es el Oric-1, la compatibilidad Atmos será un sprint aparte.

Pendiente

Persistencia y disquete

Guardado de las mejores puntuaciones en casete o disquete, imagen .dsk Microdisc, desenrollado de los bucles de trazado, banda HUD en color.

Hoja de ruta

Artículos

Notas técnicas