Spacewar!

This is a virtual DEC PDP-1 emulated in HTML5/JavaScript running the earliest known version of "Spacewar!", the earliest known digital video game.

Spacewar! was conceived in 1961 by Martin Graetz, Stephen Russell, and Wayne Wiitanen. It was first realized on the PDP-1 in 1962 by Stephen Russell, Peter Samson, Dan Edwards, and Martin Graetz, together with Alan Kotok, Steve Piner, and Robert A Saunders. – Spacewar! is in the public domain, but this credit paragraph must accompany all distributed versions of the program.

Emulation by Norbert Landsteiner, www.masswerk.at, 2012–2016,
based on emulation code by Barry Silverman, Brian Silverman, and Vadim Gerasimov.

This is a special project page, please visit the www.masswerk.at/spacewar for the normal game and additional information.

The Spacewar! 2B Preservation Project

This pages provides a carefully revised version of Spacewar! 2B that represents the program as shown at the MIT Science Open House in May 1962 and as described by J.M. Graetz in "The Origin of Spacewar" (Creative Computing, August issue 1981) and in his DECUS conference paper "Spacewar! Real-Time Capability of the PDP-1" (DECUS Proceedings 1962, p. 37-39). The program has been upgraded to run on a PDP-1 with the automatic hardware multiply/divide option installed and the hyperspace trigger has been revised to work on the deployment of the signals rather than on their release as in the original hyperspace patch.

This page provides both the original program and the newly revised version in order to prove their functional equivalence. The steps to create the revised version are documented in detail at the page "Inside Spacewar!, Part 11".

For this purpose the following programs are provided in emulation (see the Version menu at the top left):

Notes on Spacewar! 2B

Spacewar! 2B differs from later version of Spacewar! in the following aspects:

Options to the game are operated by the following sense switch settings ("up" = on, "down" = off/default):

SSW 1 UP    INERTIAL ROTATION
      DOWN  BERGENHOLM ROTATION
SSW 2 UP    LIGHT GRAVITY
      DOWN  HEAVY GRAVITY
SSW 3,4
      00  MOVING STARS, NORMAL
      01  MOVING STARS, FAST
      10  STATIONARY STARS
      11  NO STARS
SSW 5 UP    HEAVY START TRAP
      DOWN  HEAVY STAR TO ANTIPOINT
SSW 6 UP    NO HEAVY STAR
      DOWN  HEAVY STAR ON

(Compare CHM Catalog Number 102631130.)

Resources

[1] http://textfiles.com/bitsavers/bits/DEC/pdp1/papertapeImages/20031202/InsidePDP1_80s_box3/spaceWar_SA-5.bin
[2] http://textfiles.com/bitsavers/bits/DEC/pdp1/papertapeImages/20050823/spacewar2B_2apr62.bin
[3] http://www.masswerk.at/spacewar/sources/spacewar_2b_25mar62.txt
[4] http://www.masswerk.at/spacewar/sources/spacewar_2b_2apr62.txt
[5] http://textfiles.com/bitsavers/bits/DEC/pdp1/papertapeImages/20031202/InsidePDP1_80s_box3/hyperspace85.bin
[6] http://www.masswerk.at/spacewar/sources/hyperspace85.txt
[7] http://textfiles.com/bitsavers/bits/DEC/pdp1/papertapeImages/20030408/spaceWarRstrt.bin
[8] http://textfiles.com/bitsavers/bits/DEC/pdp1/papertapeImages/20031202/InsidePDP1_80s_box3/spacewAutoRestartPatch.bin
[9] http://www.masswerk.at/spacewar/sources/spacewAutoRestartPatch.txt
[10] http://www.masswerk.at/spacewar/sources/spacewar_2b_m_2016.txt
[11] http://www.masswerk.at/spacewar/sources/spacewar_2b_m_2016.rim

Related Links

PDP-1 Sense Switches

The PDP-1's control console provided an array of switches, the “sense switches”, which were used to control some of the game's behavior (“off” = default settings):

(unknown)

(unknown)

(unknown)

(unknown)

(unknown)

(unknown)

Emulation:

(On: display each frame, Off: double frames, no flicker)