ORIGINAL TETRIS EMULATION HOWTO
Versione Italiana di questo howto: OriginalTetrisHowto/IT
by MusIF / MIAI, Italy
Museo dell'Informatica Funzionante, Palazzolo Acreide (SR) - http://museo.freaknet.org
Museo Interattivo dell'Archeologia Informatica, Cosenza (CS) - http://verdebinario.org
Original version by Emiliano; translation by Stefania; editing, debugging and testing by Stefania, Ono Sendai & Asbesto
If you have the BIG IRON (PDP-11/23, Elektronika-60, the cyrillic terminal etc.) maybe you are interested in running TETRIS directly on the hardware! So, please check OriginalTetrisHardwareHowto ;)
If you want to setup an emulator on a pc, with a cyrillic terminal connected to serial port, check OriginalTetrisHowto/Hybrid ;)
- ELEKTRONIKA 60M COMPUTER (DEC PDP-11/23 sovietic clone)
- 15ИЭ-00-013 TERMINAL (DEC VT52 sovietic clone)
- FOBOS OPERATING SYSTEM (DEC RT-11 sovietic clone)
We will use instead:
- Debian GNU/Linux 7 "wheezy" (or Ubuntu, Linux Mint and some other distros)
- SIMH PDP-11 emulator
- MESS 15ИЭ-00-013 emulator
- RT-11 disk image
- and obviously an original disk image with TETRIS
- Western software houses earned millions from Tetris without offering a single dollar, nor a vodka glass to Aleksej Pažitnov, the original Tetris author.
- Ex USSR Soviet Engineers, have shamelessly copied the hardware in which Tetris will be developed from ex Digital Equipment Corportation systems.
- It seems that in the whole story everybody did not care at ALL about copyrights, industrial secrets, rights in general.
Looking forward to give you a perfect historical reconstruction, we will act the same, giving you everything needed without asking any problems or what else.
PHASE 1: SIMH
We must install simh-pdp11. Here it is how to do it:
wget http://simh.trailing-edge.com/sources/simhv39-0.zip unzip simhv39-0.zip -d simhv39-0 cd simhv39-0 make pdp11
The compiling will save the pdp-11 emulator executable in "BIN/pdp11". We can now install it into /usr/local/bin/ acting like perfect unix installers.
sudo cp BIN/pdp11 /usr/local/bin/
Now we can install the RT-11 operative system for the emulated hardware. Here it is our RT-11 disk image already installed and ready to use:
And here it is the soviet games disk image for FOBOS. They perfectly run on RT-11 too
So, let’s prepare a config for booting the new RT-11 system from rl0 disk and attaching to the media a rl1 disk image with the soviet games:
cat > rt11.ini <<__EOF set cpu 11/23+ 256K set rl0 writeenabled set rl0 rl02 attach rl0 rl0.dsk set rl0 badblock ; SOVIETO GAMES attach rl1 games.dsk ; TELNET ACCESS FROM DA SOVIETO TERMINAL set throttle 100k set console telnet=2323 set console pchar=37777777777 boot rl0 quit __EOF
And now everything is ready on the SIMH side. Let’s keep this hot for later!
PHASE 2: THE MESS MESS
Well, what to say…. Suddenly MESS project code has been marged inside MAME. It emulates a lot of old stuff hardware, like (in the last release) some of the Eastern side old computers. This points need a stop. We have to go outside, buy a vodka bottle, and drink it, while the rest of the damn installation will try to bring us to the socialist video fun. So, we need a new MESS version, that supports the Elektronika 60M terminal: the astonishing Elektronika 60M, DEC VT52 clone, with the indispensable cyrillic encoding inside. It’s quite obvious saying that the easy and comfortable MESS version present in Debian archives DOES NOT WORK for us. So, we need to download and compile the MAME/MESS sources.
We unzip the ZIP archive and…..
we get ANOTHER ZIP archive…… LOL
unzip mame.zip -d mame0156
Let’s finally install the following stuff:
sudo aptitude install libsdl2-dev libsdl2-ttf-dev libsdl-ttf2.0-dev automoc
Now we defintely compile MESS
cd mame0156 make TARGET=mess
and… after biblical time needed to compile our fantastillions sources…..
sudo cp mess /usr/local/bin/
And when the vodka seems to be over….. a last thing is needed, soviet terminal firmwares. They are here:
wget http://astio.ciotoni.net/tetris/ie15.zip wget http://astio.ciotoni.net/tetris/ie15_keyboard.zip
NOTE: there's no need to unzip those files: MESS will look inside them automagically ;)
Differences between distros
We tested all this stuff on various distros, so here we describe some small differences in the MESS installation procedure.
Maybe MESS won’t compile, also if we have all the requested develop libraries, that seems to be:
SDL, SDL_TTF, automoc (and maybe also other stuff that are already built on this system. But it’s impossible for me to know from the huge and such USELESS MAME/MESS documentation….)
So, let’s install these stuff:
sudo aptitude install libsdl2-dev libsdl-ttf2.0-dev automoc
In any case compiling these will show a lot of stupid warnings and problems with SDL_TTF,that’s why we will install SDL_TTF and SDL (never say never, it may help) HANDY.
wget https://www.libsdl.org/release/SDL2-2.0.3.zip unzip SDL2-2.0.3.zip && cd SDL2-2.0.3 sudo ./configure && make && make install wget https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-2.0.12.zip unzip SDL2_ttf-2.0.12.zip && cd SDL2_ttf-2.0.12 sudo ./configure && make && make install
Ubuntu 14.04 Desktop
You need to install everything on the Debian list. On Ubuntu 14.04 if you did not install the server stuff, you’d need also to install the following libs (at least Stefania had to):
sudo apt-get install libfontconfig1-dev sudo apt-get install g++
Linux Mint Mate edition
You need to install everything from the debian list, plus this one:
sudo apt-get install libsdl2-ttf-dev
PHASE 3: TETRIS
Finally we can launch the PDP11 emulator with SIMH
and suddenly the 15ИЭ-00-013 emulator trough MESS
mess -bitbngr socket.localhost:2323 ie15 -rompath . -window
At the RT-11 prompt we can now execute Tetris magicallydigiting:
And finally play at the original, one and only Tetris!
You can play with the numeric keypad, key 7, 8, 9 and 5.
At the end of a match, after writing your name in the top ranking:
- To play again: D ("DA")
- To leave: N ("NIET")
Another little tip:
To show the list of other games present in the soviet disc, just digit in RT-11:
15ИЭ-00-013 TERMINAL SETUP
The BEEP that the terminal emulation make is somehow annoying. Here are some hint for the emulation author, about how to configure it:
To enter setup mode, press PrtScr. Cursor should appear in status line at the top. There are 20 settings you can change, in 6 groups (I-VI). Group I controls serial port speed (leave at 9600), groups II-V control 16 setup bits, and group VI is realtime clock. There is no NVRAM. To change a setting, press keypad '*'. Left and right cursor keys move between fields. PrtScr exits setup mode. Setup bits are: Group II - 'cursor shift' [not sure what that does] - keyboard autorepeat; 0: off, 1: on - n/a - cursor type; 0: type 1, 1: type 2 [not sure what that's supposed to do either] Group III - margin beep (at position 72); 0: off, 1: on - key click; 0: on, 1: off - current command set; 0: set 1, 1: set 2 [set 1 is completely custom, set 2 is VT52 compatible - xon/xoff [??] Group IV - n/a - autowrap (only in command set 2); 0: off, 1: on - auto CR/LF on keyboard input (only in command set 2); 0: off, 1: on - n/a Group V - parity; 0: even, 1: odd - parity check; 0: off, 1: on - auto CR/LF [?? on line input]; 0: off, 1: on - status line; 0: displayed, 1: not displayed
Note: RT-11 is licensed by MENTEC for personal hobbystic use: http://pdp-11.org.ru/files/license/mentec-license.txt
Work in progress
We're trying to use VT220 / VT510 terminals connected to our REAL PDP-11/23+ and PDP-11/34 to recreate a hardware original tetris. What follow is just a scratchpad for this work.