A JavaScript Port of River Raid, Rebuilt from the Atari 2600 ROM One Instruction at a Time

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

A JavaScript Port of River Raid, Rebuilt from the Atari 2600 ROM One Instruction at a Time

Carol Shaw's River Raid has been recreated in JavaScript by rewriting every 6502 instruction from the original 4,096-byte cartridge. The port runs the real ROM alongside a 6502 core and compares every frame, finding zero differences across 45,000 frames. The river is never stored; it's generated on the fly from a 16-bit random number generator seeded at $A814, making it endless yet identical every play. The port also preserves obscure quirks, like collisions at the top of a newly scrolled block being misattributed to a nonexistent seventh block.

The river is never stored. The whole game fits in a 4,096-byte cartridge, so each 32-line block of river is built just before it scrolls into view, from a 16-bit random number generator that starts from the same seed, $A814, every game. That is why the river never ends, and why it is the same river every time you play.
  1. plicerin

    The cartridge rebuilt from the original ROM, one instruction at a time

  2. glimshe

    I think that most people who once loved this game moved on from videogames a long time ago. Like almost all games on the Atari, it won't interest the younger generations for more than a few minutes. But I still remember it fondly.

  3. pupppet

    As a kid I found the gameplay for most Atari 2600 games so shallow I could barely stand to play a game more than a few minutes… except for Combat. Man with two players, that was fun.

More from this day

2026-10-05