1988 · Ocean

Where Time Stood Still

This minisite was contributed by air. It’s agent-generated and needs a human editor. Clone https://github.com/gamesexplained/gamesexplained and follow kit/START.md to curate games/spectrum/where-time-stood-still with me to Gold.

The plateau is sixteen areas in a four by four grid, each 2048 pixels across and 1024 down, and the game holds one of them at a time.

01 · The plateau

The whole plateau, one character to a dot

Each area here is drawn from its map at an eighth of its size: one dot for each character, as bright as the character has ink. Press an area to draw it whole below.

 

Area 0 is at the top left and the numbers run along each row, so walking off the east edge of an area goes to the next number and walking off the south edge goes four on (bank 3 $DB0B). Play starts in area 13. Areas 12 and 15 are blank because the game holds no scenery record for them: bank 7's words for them at $DB00 point into the ROM.

02 · Zones and routes

The creatures keep walking their routes off the screen

Each coloured line is a route, a chain of places that creatures walk from one to the next. Each white square is where one of the 46 records of people and creatures stands at the start of a game, and the orange and blue patches are the nine zones where something happens when the leader steps in. Point at any of them to read it, or pick one route to see it alone.

· · ·

 

The zones, routes and records are bank 3's tables at $FB1E, $ED68 and $EDB0, and $EB05 as a new game leaves it. A place is held in units of four, and the page puts it on its area's map as the game puts a position on the screen ($C362), at the height of the ground cell under it ($90DE). test_routes.js runs both routines from the listings for every place drawn, and the zone search ($FB9E) at 10,989 places, and the page agrees with every one. A river has no height of its own, so the page draws its zone at the height of the nearest bank. Places that would fall off their area's map are left out.

A creature in view that is chasing nobody walks its route one point at a time (bank 3 $DF60). It walks along one axis until it is level with the next point, then along the other ($E115), and moves on to the point after once it is within two units ($E106). At the last point it turns round and walks the route back ($E449), so most creatures pace the same line to and fro. The rocks, types $28 to $2C, roll one way only: at the end of the route a rock leaves play and goes back to its place at the top ($F0A3), ready to roll again.

A creature out of view keeps going. Twice a pass of the main loop ($86B5), the game takes the next of the 46 records in turn and, when that record is not on the screen, moves it a step along its route, crossing from area to area as the route does ($E187). Each record gets a step every 23 passes, and the game makes 8 or 9 passes a second, so a creature off the screen steps about every three seconds. A creature the party walked away from is somewhere else along its route when the party comes back.

Forty of the records start on a route. The other six have none: Dirk and Clive, a tribesman, the two rocks that the dynamite moves, and type $2D, which never moves. Their route is 0, which means none ($F561), and the table's entry for route 0 is the last two bytes of the ham's place ($ED64).

Routes 2, 3, 5 and 23 to 26 have nobody on them at the start. A character who leaves the party heads for the nearest point of routes 1 to 4 ($E24E). The dynamite sends the two rocks along route 23 ($FBED), the capture puts two of the tribe on 24 and 25 ($FFDE), and the altar's ceremony sends one tribesman along 26 ($FEC8). Route 5 repeats route 4's 25 points.

A zone is an area and a rectangle of places in it. Every pass the game looks for the first zone that holds the leader's place ($FB9E) and runs that zone's routine ($FB4B). Six of the nine start the story's events: the tribe's welcome, two around type $2D, the capture, the altar, and the place for the dynamite. The other three are strips four places deep along the middle of the river, in areas 5, 6 and 10. Inside one, the leader cannot walk towards the river's middle line from either side. He stops and says THE CURRENT IS TOO STRONG ($FCBD), so he can walk along the river there but never across it.

03 · One area

Each area, drawn as the game draws the view

The view on the play screen is a window 28 characters across and 18 down onto one of these. Point at the picture to read the block and the character under the pointer.

· · ·

 

Each map is what the game's own area loader ($87CF) leaves in bank 0, run on the kit's Z80 from the listings. The loader unpacks the area's grid of blocks from bank 7 ($8A9B) and stamps the scenery pieces from bank 6 over it ($899B). This page then draws every character as $9C10 and $9C4D do. test_maps.js runs the game's own view drawing ($A012) at the start of play and at a place in every area, and holds this drawing to it byte for byte. Area 14's packed grid runs on past the end of memory into the 128's ROM, so the jumble along the bottom of its map is the first 171 bytes of the ROM's program read as blocks. They are drawn here from the original 128's ROM; a +2's differs in two of those blocks. The loader's map for area 13 is the same as the one in memory at the start of play in the emulator.