SPECIAL NOTE This is a pre-release version of egaint! The program is not yet complete, but is finished enough to be distributed. Also note that when completed (i.e., egaint 1), it will abide by the GNU General Public License, Version 1; however, since this is pre-release version of egaint, it abides by the above except that source code is not being distributed (but can be obtained ... get into contact with New More Order for details). INSTRUCTIONS To run egaint, simply type "egaint" at the command prompt; if you have either a black-and-white or gas plasma display, suffix an "m" or "p" respectively (that is, type "egaint m" and "egaint p," not "egaintm" or "egaintp"). After the title screen, you will come to an options screen; a brief explanation of each option follows. Tournament Game There are two hundred and fifty-six possible tournament games built into egaint; each tournament game will run exactly that same, which is ideal for competing two egaint players against each other. Note that all conditions must be exactly identical for the games to be identical; i.e., the same initial level, the same initial height, the same version of egaint, the same computer, etc. Initially turned off. Tournament Game Number Allows you to choose which particular game (out of two hundred and fifty-six possible) you wish to play. Initially set to game zero. Initial Level one is the easiest while level ten is the hardest. In addition, level advancement before level ten is also automatic; you will be advanced, if necessary, to level x after clearing ten times x rows (i.e., level 2 after 20 rows, level 3 after 30 rows, etc.). Initially set to level five. Initial Height Specifies how high (in blocks) an area should be filled with randomly placed blocks (ranges from one to twelve). In addition, you can also specify that the blocks be hidden (i.e., invisible). Initially turned off. Show Next Specifies that the next piece be shown in a window on the upper-left corner of the screen. Initially turned on. Show Shadow An yet-to-be-implemented feature, this is still being worked on; the gist of this idea is to have a "shadow" cast on the area where the block will fall, which should, in theory, make it easier to line up the pieces. Initially (and permanently) turned off. Extended Shapes Allows you to specify which set of pieces to use (Classic, Easy, Medium, and Hard). Initially set to Classic, which are the original seven pieces). Block Style Allows you to specify which style of blocks to use, which ranges from New to Old (the original egaint style) to Pumped Full of Drugs to Really Pumped Full of Drugs (a combination of all three). Note that you are awarded bonus points for not using Show Next and Show Shadow. MACHINE REQUIREMENTS The machine used for development was a Toshiba T5100 Portable Personal Computer; it had a 16 MHz 80386 processor with 2 megabytes of RAM, an EGA card with 256K, and a 40 megabyte hard disk. In addition, Turbo Pascal 4.0 running under MS-DOS 3.30 was used to compile this particular version of egaint (later versions will probably use Turbo Pascal 5.5, which I am in the process of obtaining). What does this mean to you? Well, for starters, a one hundred percent IBM Personal Computer compatible with an EGA card with 256K is strictly required. I also recommend having something faster than a stock 4.77 MHz 8088; an 80286 running at 8 MHz or so should do quite nicely (but I wouldn't know; I developed this at 16 MHz). Theoretically, egaint should work with a VGA card, being that it was coded to use a VGA if one was found, but because I did not have access to one at any stage during development, I cannot guarantee compatibility with it. REVISION HISTORY aint 0.0 (19-Apr-89) The original, bare-bones version of aint, it represented a falling object game, though not much else. aint 0.1 (20-Apr-89) The first version of aint to adequately capture the basic essence of TETRIS (i.e., constructing rows) without possessing any really major bugs; it, in turn, lacked the "standard features" of generic computer games (scoring being one notable example). aint 0.2 (20-Apr-89) The alpha-test version of aint: the really major bugs that were later discovered were fixed and "standard features" like scoring and levels were added. The very exclusive alpha-test group received copies tailored specifically for their machines, and the general response was excellent (and addicting). aint 0.8 (21-Apr-89) The beta-test version of aint: pretty much rewritten, it used more reliable machine- independent timing functions and more realistic scoring functions while show next piece, show statistics, initial height, (not particularly reliable) tournament games, an options screen, and a true high score list were added. aint 0.9 (26-Apr-89) The pre-release version of aint: a major bug which caused a fatal system crash at peculiar moments was fixed while debug features like smart bomb, polymorph, and nuke were added. This was the first version to be issued beyond the initial alpha/beta-test groups, though its distribution was still quite limited. egaint 0.9 (02-May-89) The initial version of egaint ("enhanced graphics aint"): written specifically for EGAs with 256K, it, unfortunately, didn't take advantage of the full sixteen colors which the EGA could offer in 640x350 mode (but rather, took advantage of the four shades of orange on the Toshiba T5100's gas plasma display). Originally conceived as a rewritten, portable aint, it slowly evolved (due to laziness) into a hideously slow, flickery, EGA-specific version. Certain modular programming aspects which were built into egaint originally were abandoned for some faster, less elegant, less flickery code. In addition, all the cheap bells and whistles (like smart bomb, polymorph, and nuke) were removed in favor of more professional-looking bells and whistles, like actually drawing the shapes in the statistics window, not calling them funny names like "ell" and "lel." egaint 0.91 (02-Jun-89) A kludged version of egaint, it added color, but only because I left college for summer vacation and came into the possession of an old IBM Enhanced Color Display; still very flickery, but at least flickery in color. egaint 0.92 (13-Jun-89) "The Lost Version" of egaint: conceived as an idea on paper, this was the start of a complete rewrite of egaint which would add support for CGAs, EGAs with only 64K, HGCs, MCGAs, and VGAs. In addition, the "flagship" version of egaint for EGAs with 256K (and VGAs) would employ the use of video page switching (in an attempt to remove the flicker). Unfortunately, this version is still that, an idea on paper. egaint 0.91.99 (18-Jun-89) Being too lazy (and busy) to actually rewrite egaint at this point and time, this version was a kludge to include specific improvements from egaint 0.92. The most important fix was the test of video pages in the title screen (which, after several almost hilarious attempts, turned out great). In addition, extended shapes were added, though many of them were quite ridiculous. Also, minor fixes, like the usage of Esc as an editing key while entering high score names and the deletion of the wilder block styles came into effect. A major change was the removal of the Show Statistics code, brought about in part by the implementation of extended shapes and the notion that no one really looks at them, anyway. egaint 0.92.01 (18-Jun-89) Still no rewrite: however, since so many of 0.92's features were implemented, it's namesake was used. Shadowing, a feature seen on an implementation for UNIX by Adam Margulies was begun (and later scuttled). In addition, the use of Esc to pause, double Esc to quit was added, as was the ability to toggle features during play. Also, initial height blocks were given their own special, muted-color style (in order to distinguish them from "real" blocks). egaint 0.92.02 (18-Jun-89) This version added true shadowing (though very, very flickery). In addition, an attempt to use video pages in the actual play itself (the only portion of egaint which does not) was attempted and (as always) abandoned. egaint 0.93.01 (24-Jun-89) The actual rewrite of egaint began with this version: however, due to laziness, it turned into a half-rewrite, half-recopy. On the other hand, all of the rewrite code turned out to be code which needed to be rewritten (i.e., the options screen code remained the same). A more elegant video paging scheme was implemented throughout the entire program. Shadowing code was, at the very last moment, commented out due to an inability at this point in time to implement this feature in an elegant (or at least efficient) manner. Also, code was added which allowed the user to determine which shape set was currently in use. In addition, the "New" block style was introduced, though not for game play, but rather for the title screen and the game over screen. Finally, the game screen was changed: the score window was moved over to the upper-right hand corner, and two help windows were introduced. egaint 0.93.02 (25-Jun-89) This version mainly consisted of improvements upon the previous version; the most notable was the addition of the "New" block style as an alternative to the "Old" block style. Also, the score window was updated after each toggle, making it less confusing (originally it was updated only after each shape). The game over code was removed because the "New" block style was being used within the game itself. egaint 0.93.03 (25-Jun-89) The pre-release version of egaint: it added minor features, like the "Pumped Full of Drugs" and "Really Pumped Full of Drugs" block styles, a new game over screen, and a completely re-implemented extended shape set. In addition, the "Value" entry in the score window was added to show what the particular shape was worth in points. Finally, the format of the high score was changed to also include the version of egaint used. This version also featured pre-release documentation, a hastily put-together mish-mash of old aint documents with egaint modifications. STILL TO COME (HOPEFULLY) Realistically, there is still a long way to go before egaint 1 can be released; the following are only a few of improvements which must be implemented before that release becomes a reality: * Support (via different versions, like cgaint, hgaint, mcgaint, etc.) for different graphics cards, including the EGA with only 64K. * Shadowing. * More efficient code, allowing egaint to be run on slower machines. In addition, there are ideas which are being considered, such as: * Background screens: I've been looking at the idea of loading .GIF or .MAC screens onto the background so that each user can customize his/her backgrounds to fit his/her individual choices. Another idea is to obtain digitized pictures of Berkeley so that we don't have stupid cartoons of Russian activities on our screens. * A different game premise (I mean, this is getting kind of boring).