Astéroric › Manual
Astéroric — manual
A study clone of Asteroids for the Oric-1 48K · EUPL 1.2 licence. This manual goes from download to play, then to building from source. Features and technology are described on the Features page.
Contents
1. Download and run
- Open the latest GitHub release and take
asteroric.tapfrom the Assets. The same file is versioned indist/asteroric.tap— from the GitHub interface, use the Raw / Download button, not the HTML page link (you would get HTML). - Load it on an Oric-1 48K (BASIC 1.0 ROM), real or emulated. The
.tapcarries the autorun flag: HIRES mode and the game start on load, noCLOADorCALLto type. - The jingle plays, the title screen appears with its demo. SPACE starts a game, K opens the key configuration.
If you see ILLEGAL QUANTITY ERROR after a CALL 1280, the command was typed after the auto-execution: the program has already run. Simply reload the .tap.
Under Phosphoric
In the Phosphoric emulator, as an Oric-1 with the basic10.rom ROM, load asteroric.tap with fast loading. From the sources, make run does it all; make run-joy routes the arrows and RCTRL/RALT to the emulated IJK joystick.
2. The keys
Default mapping (arrows + SPACE). All keys are read directly from the keyboard matrix, bypassing the ROM.
| Key | Action |
|---|---|
| ← | rotate left |
| → | rotate right |
| ↑ | thrust |
| ↓ | hyperspace — random teleport, 25% chance of dying |
| SPACE | fire (rapid fire when held); on the title screen: start; at game over: play again |
| K | on the title screen: key configuration |
| ESC | at game over: quit to BASIC; in CONTROLS: cancel |
3. The CONTROLS screen
Remap the five actions
On the title screen, press K. The actions LEFT, RIGHT, THRUST, FIRE, HYPER are underlined in turn: press the key you want to assign it. A key already taken or an undocumented matrix position is refused (the game does not invent key names). A firing sound confirms each assignment.
Cancel
ESC abandons the entry and restores the previous mapping. The mapping lives in RAM: on reload, the default keys are back. ESC and the joystick cannot be remapped.
4. IJK joystick
Supported interface
The IJK joystick interface — the most common on the Oric — plugs into the printer port. Astéroric reads it directly (VIA port A, PB4 strobe) and detects its presence: without an interface, nothing is read. Left/right rotate, up thrusts, down goes to hyperspace, the button fires. Keyboard and joystick are active at the same time.
Validation
The protocol was rewritten after tester feedback on a physical interface (the first version reproduced an inaccurate emulator model) and validated against Oricutron; Phosphoric was fixed alongside.
5. The game
Goal
Destroy the asteroids without being hit. A large asteroid splits into three, each fragment again into two smaller sizes. The next, larger wave begins when the screen is empty.
Saucers
The large saucer fires at random; the small one aims at the ship, with accuracy rising with the score, and becomes the only one above 35,000 points. It returns faster at the end of a wave.
Score and lives
7-segment digits at the top of the screen, life icons (four shown at most), “WAVE n”. Extra life every 10,000 points, up to 60,000. After dying, the ship reappears briefly invincible.
Game over
Explosion, “GAME OVER”, then the session's top-five table. After 5 s, SPACE plays again and ESC returns to BASIC (clean return through the RESET vector).
6. Building from source
git clone https://github.com/benedictemarty/oric-asteroids.git
cd oric-asteroids
make # build/asteroric.tap
make run # runs under Phosphoric
make check # capture == bit-exact reference
make host-test # x86 host tests
Prerequisites: cc65 ≥ 2.19, Python 3, Phosphoric installed (path in the Makefile). make gen_ship and make gen_shapes regenerate the vertex tables; make bench profiles 25 million cycles; make clean cleans up.
7. Compatibility
| Machine | Status |
|---|---|
| Real Oric-1 48K (BASIC 1.0) | works — 50 Hz video validated with an RGB2HDMI, IJK validated |
| Oric-1 under Phosphoric | nominal (the project's development emulator) |
| Oric-1 under Oricutron | functional |
| Oric Atmos (BASIC 1.1), real or emulated | does not work — compatibility to be addressed |
8. Licence and rights
Original code: EUPL 1.2
The rendering engine, input, sound engine and recreated effects, the Oric adaptation of the game loop, HUD, title screen, build, tests and documentation are released under the European Union Public Licence v1.2.
Atari-derived elements: not covered
The game logic (state machine, physics, fragmentation, saucer AI, pseudo-random generator, scoring) is adapted from the disassembly of the arcade ROM rev 4 and the vector shapes derive from ROM data. No rights are claimed over these elements (Asteroids, © 1979 Atari, Inc.; trademark of Atari Interactive, Inc.). A non-commercial study and preservation project, neither affiliated with nor endorsed by Atari — hence the title Astéroric. Details: NOTICE.md in the repository.