Files
mr.zero 266c9ae84c
ci/woodpecker/push/c64 Pipeline was successful
v2.1.0 - order relic options
2026-08-29 11:21:31 +02:00

93 lines
4.1 KiB
Markdown

# Blessing of Ra
**Blessing of Ra** - a two-player pyramid escape for the Commodore 64
(ACME + VICE), in the same spirit as [rabbitc64](../rabbitc64).
The legend: when the great pyramid rose, a worker was sealed in its
peak. He prayed to Ra until the sun god took pity - now Ra bends the
pyramid's labyrinth walls to lead him out.
**Player 1** (joystick 2, or `w a s d`) is the worker, running the
corridors toward the green exit portal. **Player 2** (joystick 1, or
`i j k l`) is Ra: a bracket cursor rides the corners of the walls -
fire (or `return`) spins the four wall pieces around the cursor by
90 degrees, reshaping the maze in real time. A spin is denied while
anyone is standing in one of the four slots (the border blips red);
the spun pieces flash white.
Eight levels, each maze one cell bigger than the last: a square that
starts at 4x4 cells and grows to 11x11 - the tallest square lattice
the screen fits - always centered on screen. One more enemy joins
each level (up to four): the cyan **scarabs** roam the corridors,
and the light-red **scorpions** also spit a venom sting whenever
they line up with the worker - the purple drop flies down the
corridor until a wall swallows it.
The look: a desert palette of sandstone walls and brown pivot posts
from a custom RAM charset, every actor (worker, cursor, bullet,
sting, enemies) a hardware sprite gliding smoothly between the
cells, an animated exit portal, a raster color band behind the
status row, and a fade to black between all screens. The menu floats
over a dark maze backdrop under the big gold-washed title.
The options screen adds three optional twists:
- **worker gun** - player 1 shoots a bullet with fire/`space`; a hit
enemy respawns on a random cell after a pause.
- **spin cooldown** - each spin starts a recharge; further spins are
denied until the bar on the status row drains (pixel by pixel) and
the readout flips back from *wait* to *ready* (the cursor also
turns red while recharging).
- **relic order** - numbered relics lie scattered over the corridors
and the worker has to gather them *in order*, 1 first, then 2, and
so on, before the portal will take him. Until the last one is his
the exit stays sealed (a dull grey, and bumping into it blips the
border red); the relic he is after next pulses white, and the
status row counts them off next to the portal glyph. Every level
adds one more: two on level 1 up to nine on level 8.
Screens: TTG intro (ported from rabbitc64) -> pyramid title card
(the pyramid, the trapped worker and the pulsing sun of Ra) -> main
menu (play / options / story / credits) -> game -> next level, and
after the last one the escape screen (back to the menu); game over
lets fire retry the same level with a fresh maze, `m` backs out to
the menu. The story screen tells the legend and lists who steers
what.
## Build & run
```
make deps # macOS: brew install acme vice
make build # -> blessingofra.prg
make run # build + launch in x64sc
```
Test builds can boot straight into one state:
```
acme -DAUTOPLAY=1 -f cbm -o blessingofra.prg main.asm
# also: AUTOOPTIONS, AUTOSTORY, AUTOPYRAMID, AUTOCREDITS,
# AUTOWIN, AUTOLOSE; add -DFORCEOPTS=1 to start with all
# three options turned on
```
## Files
- `main.asm` - entry point, BASIC stub, per-frame state machine,
the border/status-band raster work
- `defs.asm` - registers, constants, zero page, macros
- `intro.asm` - TTG boot logo with the gold color wash
- `pyramid.asm` - title card: the pyramid, the worker, the sun of Ra
- `menu.asm` - main menu card over a dark maze backdrop
- `options.asm` - the optional extras and their toggle screen
- `story.asm` - the legend of the worker and Ra + the controls
- `credits.asm` - the crew
- `play.asm` - maze geometry + generation (recursive backtracker,
animated) + the game and its eight growing levels
- `win.asm` / `over.asm` - end screens
- `common.asm` - shared routines: printing, big block font, the
title wash, input, RNG
- `sound.asm` - single-voice SID SFX driver
- `gfx.asm` - RAM charset with the custom tiles, the sprite engine,
the portal animation and the fade-to-black transition