4.1 KiB
Blessing of Ra
Blessing of Ra - a two-player pyramid escape for the Commodore 64 (ACME + VICE), in the same spirit as 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 workdefs.asm- registers, constants, zero page, macrosintro.asm- TTG boot logo with the gold color washpyramid.asm- title card: the pyramid, the worker, the sun of Ramenu.asm- main menu card over a dark maze backdropoptions.asm- the optional extras and their toggle screenstory.asm- the legend of the worker and Ra + the controlscredits.asm- the crewplay.asm- maze geometry + generation (recursive backtracker, animated) + the game and its eight growing levelswin.asm/over.asm- end screenscommon.asm- shared routines: printing, big block font, the title wash, input, RNGsound.asm- single-voice SID SFX drivergfx.asm- RAM charset with the custom tiles, the sprite engine, the portal animation and the fade-to-black transition