River Raid — Activision, 1982

Activision · Atari 2600 · 1982
Carol Shaw’s infinite river, the identical each time you fly it. The cartridge rebuilt from the unique ROM, one instruction at a time: each financial institution, bridge, gasoline depot and missile behaves as the actual machine performs them.
Press Play, then push up or hearth to take off
←→ steer · ↑↓ pace · Space hearth · Enter Game Reset
How to play
Fly up the river and shoot what will get in your approach. Fuel drains the entire time: fly over a depot to fill the tank earlier than the gauge reaches E. Touch a financial institution, a bridge or something on the water 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 button and eight instructions, so each face button fires. Sound begins after your first click on or key press; that’s the browser’s rule, not the cartridge’s.
Fuel
The gauge underneath the river runs from E to F. It drains each body you fly, sooner than it appears, and a warning tone begins as soon as it drops under 1 / 4.
Fly over a depot and the tank refills when you keep on it. Shoot a depot as a substitute and it’s price 80 factors, however the gasoline is gone.
Lives
You begin with three jets and earn one other each 10,000 factors, as much as 9.
After a crash the river rewinds to the beginning of the part and replays it precisely, as a result of the cartridge saved its random numbers there.
The river is rarely saved. The complete sport suits in a 4,096-byte cartridge, so every 32-line block of river is constructed simply earlier than it scrolls into view, from a 16-bit random quantity generator that begins from the identical seed, $A814, each sport. That is why the river by no means ends, and why it’s the identical river each time you play.
The river
Thirty-two blocks make a bit, and each part ends at a street and a bridge. Odd sections run straight; even ones wind and cut up round islands. Further up the river there are extra enemies and fewer depots.
Built from the ROM
This just isn’t an emulator. Every routine of the cartridge was rewritten in JavaScript one 6502 instruction at a time, engaged on the identical 128 bytes of RAM on the identical addresses. To show it, a small 6502 core runs the actual ROM beside the port and each body is in contrast, byte for byte.
0variations from the cartridge in 45,000 in contrast frames of play
300,000river-generator states checked, sections 1 to 48
31,840pixels of the opening body, similar to a Stella seize
4,096bytes in the entire cartridge, code and graphics
- There is not any rating in reminiscence. The six digits are tips to the digit graphics, and factors are added to the pointers.
- Collisions come solely from the TIA’s {hardware} latches, learn as soon as per river block. There is not any collision arithmetic in any respect.
- Flying right into a ship, helicopter or jet nonetheless scores it as you go down.
- Touching a home runs the identical code as touching a gasoline depot.
- When a brand new block has solely simply scrolled in, a collision on the very high is filed underneath a seventh block that doesn’t exist, and the flag lands within the first object’s place byte.
The port retains all of it, as a result of that’s the sport.
