1987 · Electronic Arts

Skate or Die!

This minisite was contributed by unorig, air. It’s currently claimed by unorig who is editing it to reach a Gold tier standard.

High Jump, from the code: a half-pipe that is really a line, speed that comes from waggling the stick, and a height that belongs to one pass.

01 · The event

Go fast to get high

The manual calls High Jump a "sheer guts event". The skater drops into a half-pipe and builds speed, and "you get a maximum of five passes on the right side where the height marker is. ... To actually go for it and record the attempt, click the button at the highest point of your jump."1 The marker is the yellow pole at the top right with its black scale, and the status line at the top keeps count of the passes and the height.

The half-pipe seen from the side, with the crowd in the stands behind it, the skater waiting on the left platform, and PRACTICE, PASS: 0 and HEIGHT: 0' 0" along the top
High Jump in practice, the skater waiting on the left platform.

On the platform the skater fidgets until fire is pressed ($0D50), then pushes off and drops in. The game runs the event as a chain of phases, one routine for each, chosen through a table of nine ($2AB9): waiting, on the ramp, in the air, falling, the two halves of the trick, the return to the platform, and the final pose.

02 · The ramp

A half-pipe that is one line

The skater never moves freely around the screen. Its position is a single number, from 0 on the left wall to 546 on the right, and a table turns that number into a place on the ramp ($12A0).

The 274 points of the profile table at $2ACB, drawn in the game's own ramp coordinates (y grows downwards). The right half is the left half again, read backwards ($12A0). The dashed line is the coping, y 150 ($1AB4); everything above it is air, and the skater gets there by going up the same column the wall makes.

The first 109 entries are a straight column at x 42: the vertical part of the wall, then the air above the coping. A jump is not a separate piece of physics: the skater simply keeps going up the column, and a position below 0 carries on above the top of the table ($12E6). Gravity comes from the same table. Each frame the skater's speed changes by the difference in height between its point and the point sixteen entries ahead, and in the air by a fixed 16 ($147E). Each frame the speed also loses 1/256 of itself ($16C3), so a skater who does nothing slowly comes to rest.

03 · Pumping

Any direction, as fast as you can

While the skater is low in the ramp, the game watches the joystick for a newly pressed direction ($16E3). Each one restarts a burst of ten frames that adds to the speed: 6, 6, 6, 6, 6, 6, 4, 3, 2, and 1 ($2DBD). The faster the skater already goes, the more of the burst is cut off from the front, so pumping gives less and less. Only new presses count, and the direction does not matter: tapping one direction every second frame goes as high as alternating left and right at the same rate, and tapping half as often reaches about three quarters of the height. The manual's advice to "move the controller rapidly in any direction" is exactly what the code wants.1

PassHeight recordedShown as
147 eighths of a foot5' 11"
275 eighths9' 5"
395 eighths11' 11"

Three passes with the stick pressed right and left every two frames and fire never pressed. Each pass's height was cleared when the next began.

04 · Height

Eighths of a foot, rounded up

The height is kept in eighths of a foot: each frame the game takes the distance of the skater above the coping, adds any trick bonus, and keeps it if it is the most so far ($1AB4). The display shows the feet, then picks the inches from a table for the eighths: 0, 2, 3, 5, 6, 8, 9 or 11 ($2DF1). An eighth of a foot is an inch and a half, so the game rounds every half inch up, and 11 feet 10.5 inches shows as 11' 11".

Height in eighths

The status line's height for each value of $2B, worked out as $17B4 does it, and the figure $1ABC keeps. A value of 150 or more is taken as zero, so the most a pass can record is 149 eighths, 18' 8" on screen.

The height belongs to one pass, not to the attempt. The height is cleared when the skater starts a new pass after crossing the middle of the ramp ($1798), and when the skater falls ($163E). What is kept is the height of the pass that ended the attempt: the fifth pass on the right, or the pass on which fire was pressed. A skater who goes 12 feet on the third pass and then 8 on the fifth leaves with 8.

05 · The jump

Fire at the top, and a half-foot tweak

Fire only counts in the air above the right wall, and only while the skater holds one of two poses ($0F4B). Fire starts a trick of seven poses. The trick adds four eighths, half a foot, to the height ($104D), the manual's "your tweek will add a few inches",1 and it locks the controls, so this pass is the one that counts ($108F). The bonus arrives only when the second half of the trick begins (phase $0A), and it counts only if the skater's height plus half a foot then beats the best of the pass ($1AB4). By then the skater may already be on the way down: fire at the top of a 95-eighths pass leaves 95.

Holding fire for twenty frames or more makes the skater spin in the air ($107D). Coming down to the coping in the middle of the trick, or landing in a pose that is not upright, is a fall ($100D, $0F21): a landing is clean only when the low three bits of the pose number are 0, 1 or 7. A fall clears the height, which is how a pass can show a good figure in the air and end at 0' 0".

Five passes on the right lock the controls on their own ($1AF4). After that the skater rides back to the left platform, and the game picks one of three final poses by height: one under ten feet, one under thirteen, and one for anything higher ($10F0). Fire on the final pose hands the result to the resident part of the game, as feet and inches in BCD and as the raw eighths ($1A49), and in practice that brings up PRACTICE AGAIN?.