How To Play

This game is more fun when played between two human players, but it can also be played against a (rudimentary) AI player. Start the game using 'M' for 2 players or 'Z' for 1 player.

The objective is to simply hit the 1nvader as many times as possible before he reaches the bottom of the screen. His speed increases as he moves down the screen, but with every hit he is pushed back three rows and his speed is reduced again.

Player one plays as the Space Invaders ship, while player two controls the ship from Asteroids. To add to the suspense (and rendering speed....) the score is not revealed until the game is over!

- Use the Z & M keys to fire, each time you fire your ship changes direction!

------------------------------------------------------------------------

Background

After writing a couple of games for the Apollo Guidance Computer, I wanted to go even further back in time. The PDP-1 was released in 1959 at a price of $120,000, or about $1.25M in today's money (although that could be $1.5M by tomorrow....). It is famous for being the system on which the first widely-spread video game, 'Spacewar!', was created in 1962, which was also the game the first ever arcade game Computer Space was based on.

This game was programmed in macro assembly, and is running on this page in a javascript PDP-1 emulator written by Norbert Landsteiner. I created a build script which can join multiple modular source files together, run them through the macro1 assembler, and then convert the binary to a base64 string that is accepted by the emulator, before automatically loading the .html page. All this takes about half a second, which beats loading from punched paper tape! 

Source code

It is a port of a homebrew C64 game by Darren Foulds: https://darrenfoulds.com/1nvader.html

I chose that game because there is a limit to how many pixels you can draw each game loop before things start to slow down, and many of the classic games I would like to have ported just have too many objects on screen at once. Now I have some re-usable routines for displaying 'sprites' and text, I am looking for a more ambitious project for the PDP-1.



----------------------------------------------------------------------------------
Useful resources for PDP-1 programming:

https://github.com/1888games/1nvader-PDP-1

https://www.masswerk.at/rc2016/10/

https://bitsavers.org/pdf/dec/pdp1/F15D_PDP1_Handbook_Oct63.pdf

https://www.masswerk.at/spacewar/inside/pdp1-instructions.html

StatusReleased
PlatformsHTML5
Rating
Rated 5.0 out of 5 stars
(1 total ratings)
AuthorArlasoft
GenreShooter
Tagspdp-1, Retro

Comments

Log in with itch.io to leave a comment.

very good

Wow thanks for all the technical info on how you got it working, I went on a search after seeing this and there isn't a lot of easy info to find. I did check out the instruction list and it seems simple* enough to understand and get started. 


One of the things I really struggle with though is going from assembly code to something that will run in an emulator. Would you be prepared to do a tutorial / release the resources you created to go from macro assembler to emulator? Would be great if this system is opened up to more people to develop for. 

Searching YouTube looks like one guy actually made pong that the guys with the working PDP-1 in a museum did actually run a few years ago... So clearly it is possible! 

*ahahahahha

(2 edits)

If you're on Windows everything needed should be in the Github repo. I've added some comments to the make.bat file which explains everything that's going on, and also the macro.c file so it can be compiled for mac/linux if required.

The instruction set is pretty good, all the usual stuff is there - if you can do F8 this is no problem!

Just played your snake game btw, really cool - might have to port that to something obscure if that's ok ;)

Go for it and thanks for the response, I might take a look and see if I can compile something later today, fancy a change from the F8 so why not go further back! 

Neat that you made a PDP-1 game. :)