In light of the latest movie about the history of Tetris, I decided to try and play the original version of the game. I was surprised to find that it was not available on any of the major platforms. I was able to find a version of the game that runs on the MAME emulator, and get it running on my Mac, sharing the process here in case it helps anyone else.
The solution is based on the original instructions, and the SDL MAME tutorial. The only changes I made are:
- dockerized the build process to ensure a consistent environment;
- used the latest version of MAME (0.252);
+---- docker --------------------+ +--- MAME ----+ \o
| SIMH(PDP-11): localhost:2323 <-+--+-15ИЭ-00-013 | <-- |\
+--------------------------------+ +-------------+ Л
(backend) (frontend) (you)
-
Download and install docker from https://www.docker.com/products/docker-desktop/
-
Open the Terminal.app if you're on Mac or Linux, or PowerShell if you're on Windows.
-
Go to your usual working directory, e.g.:
cd ~/projects
or create one if you don't have it:
mkdir ~/projects cd ~/projects
-
Clone this repository:
git clone https://github.com/corkscrewey/soviet-tetris.git
This will create a
soviet-tetris
directory in your working directory. -
Go to the
soviet-tetris
directory:cd soviet-tetris
WIP
Ensure that you're in the same directory as the docker-compose.yml
file.
docker compose build
This will build the docker image that will run the PDP-11 simulator.
MAME is a multi-platform emulator that can emulate a wide variety of computers, consoles, and arcade machines. It is available for Linux, Mac, and Windows. We will use it to emulate the 15ИЭ-00-013 terminal.
-
If you're on Ubuntu, you can do this with:
sudo apt install mame
If you're on Gentoo, you most likely know what to do.
- Download the SDL framework from SDL Releases page (
SDL2-2.26.4.dmg
or later) - Unpack SDL to
/Library/Frameworks
- Get the latest MAME:
- Unpack the zip file to ./mame
- Get the latest release of MAME
- Install MAME onto your system by running the downloaded installer.
Automatic (macOS or Linux):
make
Manual:
-
Start the PDP-11 simulator:
docker compose up -d
This will start the SimH simulating PDP-11, and expose the serial port on
localhost:2323
. It will wait for connection from the terminal.Precise build instructions are in Dockerfile, if you're of an inquisitive type.
-
Start the MAME emulator that emulates 15ИЭ-00-013 terminal:
./mame/mame ie15 -rompath files/rom -window -rs232 null_modem -bitb socket.localhost:2323
This will instruct MAME to emulate the 15ИЭ-00-013 terminal, and connect it's RS232 "port" to the PDP-11 simulator using bitbanger connection to localhost:2323. The
-window
option will start the emulator in a separate window.On windows, you may need to include the full path to the mame executable, or add it to your PATH environment variable.
-
Once MAME connects, you will see a welcome message, and a prompt, which looks like a dot ".". Now type:
RUN DL1:TETRIS
And press Enter.
The terminal has a non-standard keymap, so to type the colon character ":", you need to press
[']
key (on US keyboard, it's to the left of Enter or Return key).
There are some other games on the DL1: disk, to view them all, type:
DIR DL1:*
The "*" character can be entered by pressing [Shift]+[']
keys.
- https://retrogamesultra.com/2019/02/24/running-the-mame-arcade-emulator-on-mac-os-x/
- https://wiki.mamedev.org/index.php/SDL_Supported_Platforms
This work is licensed under the Creative Commons Attribution-ShareAlike 4.0
Disk images are mirrored from:
- http://astio.ciotoni.net/tetris/rl0.dsk (PDP system image with RT-11 OS)
- http://astio.ciotoni.net/tetris/games.dsk
as per original instructions.