A tribute to one of the best games on the Atari 2600

Hacker News by 4 min read 111x views
A tribute to one of the best games on the Atari 2600

Share Post

Activision · Atari 2600 · 1982

Carol Shaw's endless river, the identical all period you fly it. The cartridge rebuilt from the first ROM, one education at a time: all bank, bridge, energy depot and missile behaves as the genuine device plays them.

 the stream between green banks, a helicopter, a energy depot and a container ahead, a home on the bank, the jet on the highway and the position bar alongside score, energy gauge and lives.

Press Play, afterward shove up or blaze to obtain off

←→ steer · ↑↓ speed · Space blaze · Enter Game Reset

How to play

Fly up the stream and fire what gets in your way. Fuel drains the entire time: fly complete a depot to inhabit the container before the gauge reaches E. Touch a bank, a extend or item on the h2o and the jet goes down.

At the controls

  • Steer←→ or AD
  • Speed up↑ or W
  • Slow down↓ or S
  • FireSpace / Z
  • Game ResetEnter
  • Pause · MuteP · M

On a gamepad

  • The joystickstick or D-pad
  • FireA · B · X · Y
  • Game ResetStart
  • PauseBack

The Atari joystick has one clasp and eight directions, so all visage clasp fires. Sound starts following your archetypal click or key press; that is the browser's rule, not the cartridge's.

Fuel

The gauge under the stream runs from E to F. It drains all example you fly, faster than it looks, and a alert spirit starts formerly it drops below a quarter.

Fly complete a depot and the container refills during you remain on it. Shoot a depot alternatively and it is value 80 points, but the energy is gone.

Lives

You commencement alongside three jets and acquire another all 10,000 points, up to nine.

After a collision the stream rewinds to the commencement of the division and replays it exactly, since the cartridge saved its random numbers there.

The stream is never stored. The entire equivalent fits in a 4,096-byte cartridge, so all 32-line obstacle of stream is built fair before it scrolls into view, from a 16-bit random figure generator that starts from the identical seed, $A814, all game. That is why the stream never ends, and why it is the identical stream all period you play.

The river

Thirty-two blocks create a section, and all division ends at a road and a bridge. Odd sections run straight; equal ones breeze and divided about islands. Further up the stream there are additional enemies and small depots.

Tanker

Tanker 30

Starts moving at random and patrols, turning rear whenever it touches a bank. Where the stream is too narrow for a ship, the cartridge puts a chopper there instead.

Helicopter

Helicopter 60

Its rotor is two shapes exchanged all another frame. Patrols akin the tanker.

Jet fighter

Jet 100

Appears from division three. Crosses the entire display without stopping and wraps about at the edge.

Fuel depot

Fuel depot 80

Refuels you during you fly complete it, or scores if you fire it.

The highway and extend at the end of a section

Bridge 500

Shoot it to open the next section. Flying into it expenses a life.

House and tree

House 0

Scenery on the banks and islands, and the lone item on the stream value nothing.

Built from the ROM

This is not an emulator. Every regular of the cartridge was rewritten in JavaScript one 6502 education at a time, operating on the identical 128 bytes of RAM at the identical addresses. To demonstrate it, a small 6502 center runs the genuine ROM beside the harbor and all example is compared, byte for byte.

0differences from the cartridge in 45,000 compared frames of play

300,000river-generator states checked, sections 1 to 48

31,840pixels of the beginning frame, identical to a Stella capture

4,096bytes in the entire cartridge, code and graphics

Read in the ROM. The code holds a few things the manual never mentions:

  • There is no mark in memory. The six digits are pointers to the numeral graphics, and points are added to the pointers.
  • Collisions arrive lone from the TIA's hardware latches, peruse formerly per stream block. There is no collision arithmetic at all.
  • Flying into a ship, chopper or jet motionless scores it as you go down.
  • Touching a home runs the identical code as touching a energy depot.
  • When a new obstacle has lone fair scrolled in, a collision at the extremely top is submitted under a seventh obstacle that does not exist, and the emblem lands in the archetypal object's stance byte.

The harbor keeps all of it, since that is the game.

Developer pages
  • Harness: the harbor alongside live score, fuel, lives and RAM readouts
  • Inspector: the before ROM-visible example and its recollection views
  • Verifying against the ROM: the 6502 oracle and the difference scripts
Other Article Hacker News
↑
Close Right Ads
Close Left Ads