*************************** * * * D O U B L E T R I S * * * *************************** WHAT IS IT? Doubletris is a Tetris-Clone for two players, who play simultanously in one playfield. There is also a computer player, but its playing skill is very bad. Doubletris isn't only able to run in multitasking, it is also the only possibility. DECLARATION Because I enhanced the idea of Tetris, I want this program distributed as FREEWARE. (COPYRIGHT look down) INTRODUCTION AND INTENTION I started to do Doubletris three years ago, because I learnt objectoriented programming in school. I learnt Oberon-2. The nature of this language let me think about a completly objectoriented implementation. So I started in winter '93. While developing the program I suffered many setbacks, which weren't so easy to take. But finally it is done. SYSTEMCONFIGURATION Doubletris was developed using following configuration: A500 1MB Chip ECS Kickstart 1.3, 2.04 (WB 2.1), 3.1 A590 SCSI-Controller, 1MB Fast-Ram, 120MB Quantum-HD, Toshiba XM4101 CD-Rom, Mikronik-Mini-Tower sometimes a Harms 030-Turboboard :-(( Doubletris was tested on following systems: see above A500 1MB Chip 8MB Fast G-Force 040 (M-Tec) 1080 MB IBM, Toshiba 3601 Kick 3.1 A500 1MB Chip 8MB Fast GVP-SerieII-SCSI-Controller 127MB Quantum OS2.1 Harms 030+ A2000 1MB Chip 6MB Fast A2630 Apollo-HD-Controller Tandem-AT-Controller Retina-Graficboard A2000 1MB Chip 5MB Fast GVP-SerieII-SCSI-Controller 270MB-HD OS2.1 Mininmal system configuration: An Amiga with 512KByte Ram, OS1.2 (Wasn't tested, but should run.) I suggest a Amiga using Kick 2.04+. It should have at least 1MB of Ram for Doubletris to preload the soundmodules. (FIRST) START At the first start using KS2.04+ a screenmode-requester should appear (If this isn't so, look in the TOOLTYPES-chapter 'SCREENMODE'). You now should choose your favorite screenresolution to start Doubletris in. After that a black screen should appear saying the following: "Trying to load all sound-modules (for speed)!" Doubletris now tries to load all soundmodules named in the tooltype. (Because of juristical reason no soundmoduls are included.) After that a Menu should appear. MENU The menu is main interface of Doubletris, where you are able to manipulate some parameters of the game. The icons have following meanings: DOUBLETRIS (Contains only Producer-Infos.) CPU PL1 Joystick Mouse Keyboard The CPU will humanoid Controldevice player 1 uses. play as player in port 1 in port 1 look (*) player 1. CPU PL2 Joystick Mouse Keyboard The CPU will humanoid Controldevice player 2 uses. play as player in port 2 in port 2 look (**) player 2. | to choose with keyboard (***) \|/ FX Music Start Exit Highscore Toggels Toggels Music Views the FX (****) (****) highscores. (*) Controlkeys for player 1 Cursorkeys left = Element goes left right = " " right down = " " down 0 on numerical keypad = " rotates (**) Controlkeys for player 2 y = Element goes left x = " " right c = " " down space = " rotates (***) This arrow can be moved using the cursorkeys, space und return will select. It is used when the mousepointer can't be controlled, because a joystick has been plugged in port 1. (****) The soundroutines are imported from Octamed. They allocate all soundchannels, therefore it is impossible to play FX. Example: If you want to play a one-player-game using a mouse in port 2, you have to disactivate (this means: it has to be crossed with red lines) the PL1-Field and then activate the mouse icons in the second line. After that you only have to click "Start". THE GAME The Screen is divide into many parts. | | ----------- | | ----------- | | | | | | | | | | | | | Preview | | | | Preview | ----------- | | ----------- ^ | | ^ next element | | next element of player 1 | playfield | of player 2 | | | | | | | | | | | | | | | | | | | | | | | | statistic of | | statistic of player 1 | | player 2 ------------------------------------------------------------------------- Player1 : | Alltogether: | Player2 : | | 000000000000 | 0000000000000 | 000000000000 ------------------------------------------------------------------------- ^ ^ ^ score of player 1 score of player 1+2 score of player 2 in two-player-game The attention will be on the playfield. The elements can be moved the same way as in Tetris. If you don't know it, try it! If choosing "down", the parts will get faster. Score Eyery new element is one point. Every complete line is deleted and is worth 10 points to the player. If 2 lines are deleted at once, 30 points will be scored, 3 lines are worth, 60 points and 4 will add 100 points to player's score. KEYS WHILE PLAYING While playing some keys have special meanings: P - pause = Doubletris will get paused. All colors turn grey and after a short mousemove the pointer will be shown. Because of Doubletris' multitasking abitlity, you can simultaneously play Doubletris and render a picture in your raytracer. This means you don't have to quit Doubletris to check the raytracer, simply press P and then left Amiga and 'N' will switch the screens. A mouseclick on the Doubletris-screen will reactivate it immediately. M - music = Switches music on or off. If music is activated, while FX is running, the latter will be turned off. If you don't like the actual sound, type 'M' twice to change the soundmodule. F - FX = Switches FX on or off. If FX gets activated, while the music is playing, it will be deactivated. Esc - stop = Quits the game. Help- help = Toggles the preview-funktion. TOOLTYPES Doubletris uses some tooltypes to change the internal configuration. The following tooltype are searched: SCREENMODE - This tooltype is automaticaly generated on systems =xxxxxxxxH using at least OS2.04. It is generated, when choosing a screenmode. The numbers in this tooltype are systeminternally. Don't edit them, if you don't know 100 percent waht you are doing. If you want Doubletris to use a different screenmode, simply delete this tooltype. You should also have a look at the Sprite-tooltype. This one only has sense on machines having a pal or ntsc-monitor, on all other it will do some scratch. SPRITES - Shows if hardware-sprites are used. This tooltype has =ON/OFF been implemented, because some graficboards and displaymodes can't display hardware-sprites. If sprites are disabled the elements will be drawn using graphics.library functions. This will lead to problems on slower maschines, because the elements are cleared and then completly redrawn. The result is a flickering. You have to try, which option gives the better result on your maschine. FX - This tooltype manipulates the status of the FX-button on =ON/OFF the main menu. But this option will only be watched, when the music is switched off or the sound couldn't be loaded. (see MUSIC AND FX) MUSIC - Switches the music on or off at program start. =ON/OFF Nevertheless, the modules will be loaded. So a 'MUSIC=OFF' doesn't ensure that the modules will not be loaded. INTROMODULE - You have to state the name of the module, that you =name want to be played whenever the menu is shown, here. (see MUSIC AND FX) MAINMODULEx - This set of tooltypes name the soundmodules, that can =name be played during the game. The x is a variable ranging from 1 to 5. Simply type the names of the soundmodules that you want to use during the game behind the tooltypes MAINMODULE1 to MAINMODULE5. (see MUSIC AND FX) ENDMODULE - Look at INTROMODULE. The module named here will be played =name at the end of the game. (see MUSIC AND FX) PREVIEW - With this tooltype you decide, wether or not the preview function is activated at the program's start. (WINDOW) - This tooltype has no use to Doubletris. The runtimesystem of the Oberon-2 searches for this. I only mentioned it to beware owners of Snoopdos :-) of sleepless nights. In the tooltypedescription a =ON/OFF identifies a boolean-tooltype. This tooltypes have only two valid states ON or OFF. There are replacments for ON and OFF. They are YES for ON and NO for OFF. "=name" means that you have to type in a filename here. Relativ and absolut filenames may be used here. For those people, who don't know about absolut and relativ filenames, here are some examples: //Sounds/mod.Hello relativ df0:test absolut dh0:trashcan/test absolut Mod.IntroModule relativ MUSIC AND FX At a certain position of the development, I decided that Doubletris couldn't stay quiet. So I looked for possibilities to play sounds. I found the OctaMed package. There are some functions that can be freely used for playing sound modules. THANK YOU! The disadvantage of these routines are, that they allocate all soundchannels and so the simultanious play of soundeffects was made impossible. But I think that doesn't matter. The next question is: How can you play your own songs in Doubletris? Doubletris loads all soundsmodules from disc. They have to be MED-Files. There are already many MED-songs in the PD. But they CAN'T get loaded directly. You first have to convert them to MED-Modules. Get the OctaMed package (available on Fish840), load the song and save it. OctaMed now shows a menu where you have to choose "MED-Module". That's it. The only thing you have to do is type the modulename in the tooltype-field of your choice. So if you want another intromodule simply change the name behind the INTROMODULE-tooltype. Beware of the copyright of the song author. The enclosed ones were taken from the CDPD1. The copyrights of course remain with the songproducers. If someone sees his copyright not protected, write me and the module will be deleted in the following distributions. HIGHSCORES The highscores are only saved if they have changed and by leaving the program correctly using the Exit-button. This has been done to minimize writeaccesses of the disc. Some people wondered, when they first saw the highscores of Doubletris. There are three tables. The upper ones are used for two-player-games. In the one on the left their scores are marked down seperately, while the one on the right containes the combined score. The table in lower half is used for one-player-games. JURISTICAL I can't be made responsible for any damage Doubletris will do. Don't blame me, if this program fromats your harddisc. You are using this program on your own risk. If you give access to your harddisc and it destroyes it, it is your own fault. You should never give an unknown software access to your harddisc (isn't it right, Albi?) I also can't be made liable, if this software doesn't work the way it is supposed to. Doubletris is Freeware. The copyright of original Tetris is reserved. I hold the copyright of Doubletris. ATTENTION !! Only the following pd-series are allowed to distribute Doubletris: Fish-serie espcially on the FreshFish-CDs. SaarAG/Amok and on their CD-Roms. Doubletris also may be distributed using the Aminet and their CD-Roms. The distribution on discs that will cost more than $4 US-dollar is not allowed. SOURCECODE Doubletris was developed using Oberon-2. The compiler was AmigaOberon3.2 of A+L Ag. Furthermore the following programs were used to develop it: A68k, MICE, OctaMed and PPaint. Doubletris is almost completely written objectoriented. It has 28 Modules, 170 KByte sourcecode and approximatly 6100 lines. If you want to get the code, send me an envelope, a disc and some money to send it back. You may also get the code from the Amok-Club. I will offer it to them and they may put it on their discs. ERRORS Symtom | to do | Doubletris doesn't | Doubletris needs the icon.library in the start. | LIBS:-directory. | The Screenmode- | The Screenmoderequester is only used on Systems requester doesn't | running Kickstart 2.0 or higher. Additionally the pop up. | asl.library has to be in the LIBS:-directory. | | The Tooltype SCREENMODE exists. Delete it and | Doubletris will show the a new Screenmode- | requester. | The monitor doesn't | A screenmode has been choosen that is not supported show something | by your monitor. Delete the Tooltype SCREENMODE and readable. | choose another screenmode at the start. | The Elemente can't | The screenmode doesn't support hardware-sprites. been seen. | Set the tooltype SPRITES to OFF. | The Sound-moduls | The sound-moduls aren't in the directory that has have not get | been specified by the tooltypes. If Doubletris can't loaded. | get a modul, an error message is displayed. | "Can't find xxx." means, that the named modul isn't | in the specified directory. Check the path in the | tooltypes. | ADDRESS My Adress is: Andre Vehreschild Kaiser-willhelm-Allee 4 47551 Bedburg-Hau Germany e-mail: vehre@pool.informatik.rwth-aachen.de GREETING AND THANKS Greetings will go to God and the whole world. Furthermore I have to thank Michael Albrecht for his continuos help and his help fixing a blown PCB-wire, my cousin Klaus Vehreschild, without his help the elements would still rotate incorrectly. Also, I have to thank my infromatic teacher Werner Ueding, who taught me Oberon and the objectorientet programming methods, as well as the betatesters who had the courage to put this program on their harddiscs. Another "Thank you!" has to go to Klaus-Henning von Restorff, for checking this manual and not loosing the will to correct all mistakes (there were many!). BYE ! Amiga for ever. :-)