Ironic Computer Space Simulator (ICSS)

Vol.

Computer Space attration panel

INSTRUCTIONS

1.
Insert quarter and press start; your rocket ship will appear.
2.
There is no gravity in space, rocket speed can only be changed by thrust.
3.
Evade the saucers' missiles and use yours to score hits.
4.
Outscore the saucers for ex­tend­ed play in hyper­space.

This is a virtual DEC PDP-1 emulated in HTML5/JavaScript running a simulation of "Computer Space", the earliest known arcade video game. The PDP-1 emulation has been originally conceived for running Spacewar!, the first known video game for a digital computer, but is here repurposed to run a simulation of the arcade game that Spacewar! inspired.

The original arcade game Computer Space by Nolan Bushnell and Ted Dabney (Syzygy Engineering) / Nutting Associates, 1971.
The program simulating it on the PDP-1 is new code from 2016.

PDP-1 emulation by Norbert Landsteiner, www.masswerk.at, 2012–2016.
The emulator is based on code by Barry Silverman, Brian Silverman, and Vadim Gerasimov. The emulation was substantially extended to support additional instructions and auxilary hardware. Especially the shift/rotate instructions and the arithmetics were rewritten and now include an emulation of the automatic hardware multiply/divide option. Further, cycle counts were added for accurate timing and frame rates. Some importance was put in the recreation of the appearance of the original CRT display and the unique experience conveyed by it. An additional splash-screen renders original character definitions from 1964.

For further information on the PDP-1, its Type 30 CRT Display and the emulation see www.masswerk.at/spacewar/.

Note on Browsers (Chrome)

(Updated 2019-05-29) Google Chrome may have issues running the emulation smoothly, rather grinding along at single-digit frame rates. If you experience any problems, you may want to try a non-Chromium browser like Apple Safari or Mozilla Firefox instead.

Apparently, the problem is related to (faulty) hardware acceleration in Google Chrome. In order to disable hardware acceleration, choose (in Chrome): Settings → Advanced → System → Hardware acceleration → disable + restart the browser.

About Ironic Computer Space Simulator

Computer Space, Nutting Associates 1971

This is my entry to Retrochallenge 2016/10, a program for the early 1960s DEC PDP-1 computer to run a simulation of "Computer Space", the first coin operated arcade video game of the early 1970s.

In 1961 Martin Graetz, Stephen Russell, and Wayne Wiitanen conceived Spacewar!, the first digtal realtime video game, as a showpiece application for the PDP-1. A first, short article on the game appeared in April 1962 and in the following month, May 1962, the game was presented to a stunned public in the course of the annual MIT Sience Open House.

Ten years later, in 1971, Nolan Bushnell, presented the very first coin operated arcade video game, Computer Space. Bushnell was heavily influenced by seeing Spacewar! on the PDP-1, but he could not afford a pricey computer for a machine that was to be placed at public locations and to return the investment by quarters. Consequently he teamed up with Ted Dabney (thus Syzygy Engineering) to construct his game in TTL logic (mainly 74xx-series chips) and eventually partnered with Nutting Associates to produce the machines. Notably, Computer Space is not a program, but an electronic device — or, as Nolan Bushnell once put it, a "big, fancy signal generator".

45 years later we attempt — by what may be called an ironic twist in history — to bring the game to the machine which's showcase program had started it all. While Spacewar! stepped out to simulate orbital mechanics and space flight on the PDP-1, here, we're using the venerable machine to simulate the mechanics of another space game. However, we do not attempt an accurate simulation of Computer Space, but rather a game that is similar in look and feel, choosing alternate solutions where a close reproduction would not do for the platform. The program is written in assembler code for the PDP-1 and the resulting object code is loaded into the emulated machine from a virtual paper tape.

The PDP-1 Program (v. 1.2, Nov 23, 2016)

The program worked out rather nicely and should be fun to play. It models the original arcade game fairly well and even features an explosion effect of its own and some optional enhancements, as well. The major difference to the original Computer Space is the display of a larger, square play field without any clipping. Most amazingly, the game is running at 60 fps (even with some throttle, i.e. idle cycles, to adjust the pace of the game) — a testament to the realtime capabilities of the DEC PDP-1, a computer, which was first presented in 1959.

BTW, Please mind that computer space is not an easy game and be ready for some frustration. :-)

Some Fun Facts

There are some peculiarities, which are not an error:

Sense Switch Options

There is an array of 6 switches on the control console of the PDP-1 in order to communicate with a program. We use these "sense switches" (in the emulation represented by checkboxes at the top right of the virtual screen) to provide a few additional configuration options that are not in the original game:

Sense Switch 1....Background: Parallax Effect
off:Stars scroll continuously, but slowly to the left.
on:Background stars move relatively to rocket ship.
Sense Switch 2....Background: Parallax Effect Strength (together with sense switch 1)
off:Subtle effect.
on:Stronger effect.
Sense Switch 3....Torpedo Agility (Steering)
off:Normal.
on:Agile.
Sense Switch 4....Saucer Motion
off:Diagonals are horizontally stretched.
(conforms more to the overall impression of Computer Space and its horizontal screen.)
on:Geometrical diagonals.
Sense Switch 5....Saucer Piloting — Which saucer is shooting?
off:Always the same one (as in original Computer Space).
on:Random select.
Sense Switch 6....Scoring Mode
off:Original: Single digit, truncated with wrap-around.
Player's score in hex (wraps at 16), saucers' score in decimal (wraps at 10).
A player may win (or lose) an extra play on scores wrapping around to zero.
on:No wrap-around, both scores display as a single hex digit.
Each extra play has to be won separately in order to continue. (This is to prevent the player from accumulating a substantial lead for a nearly unlimited number of consecutive extra plays. Thus, every game remains a challenge.)

Version History

Source code (v. 1.2, PDP-1 Macro assembler, for binaries and listing, see the related links): icss-1-2.txt.

Sound FX

While the PDP-1 has no capability to output sound directly, we provide here an option to add realistic sound effects of the arcade machine. The sound samples are those of Mike "Moose" O'Malley's Computer Space Simulator for Windows and are further processed in realtime to produce a fairly realistic sound-scape. (Processing involves the adjustment of individual gain levels, mixing in a compressor, adding a bit of resonance by a low-shelf filter, and a final step of convolution applying an impact response profile for room effects.) The emulation observes the program counter of the emulated PDP-1 by so-called traps, triggering the various effects as the program passes along certain memory locations. Thus the sound effects are synchronized with the progress of the game without modifying the program in a way that may render it incompatible with the real DEC PDP-1 computer.
And, for a giggle, there are also optional subtitles for the FX!

Related Links

— Have fun! —