WELCOME TO EDUTRIS!

  Edutris is a clone of Tetris written entirely in
  QuickBASIC. Its source code (and the source for its
  graphic library) are made available for learning
  purpose and are fully commented. The source can be run
  through the QuickBASIC 4.5 IDE, or may be compiled to
  a DOS executable.

  Edutris, its source code, and assets are intended to
  be shared for free.

  While the game is based off Alexey Pajitnov's Tetris,
  this version doesn't fully follow the "Tetris
  Guidelines" as it is is only a coding exercise and not
  an actual product endorsed by The Tetris Company.

  That being said, it is still a lot of fun!


MINIMAL SYSTEM REQUIREMENTS

  - Intel Processor 80286 at 8Mhz.
  - Microsoft DOS version 2.0 or more recent.
  - VGA-compatible video card with 256Kb of memory.
  - Gamepad supported, but not mandatory.


GOAL OF THE GAME

  Randomly selected shapes appear on top of the well and
  slowly descent until their path is blocked. The player
  is tasked with moving and rotating the given shapes in
  order to construct entire rows. Entirely filled rows
  are destroyed and blocks standing above are pushed
  down. The more lines are destroyed at once, the higher
  the reward. The game ends when pieces occupy the top
  two rows of the well, delimited by a gray line.

  One piece may be put on hold at a time with a press of
  the TAB key. If the holding cell already contains a
  piece, it is swapped with the current piece. Pieces
  may only be held/exchanged once per turn.

  Other controls: LEFT and RIGHT arrow move the piece
  left or right, DOWN pushes the piece forward (this
  move is rewarded with a few points.) TAB is used to
  switch or hold the current piece. ENTER will rotate
  the piece clockwise.


GAME SETTINGS

  When starting a new game, you may configure up to four
  modifiers to spice up the gameplay:

  - Level
    Set the initial falling speed of pieces. The higher
    the value, the faster they fall. Note that the
    falling speed progressively increases during
    gameplay and caps at 10.

  - High tide
    When enabled, this modifier raises the block pile
    every 10 pieces at level 1, 9 pieces at level 2, 8
    pieces at level 3, etc. Although the new lines can
    easily be disposed of by filling the chimney with a
    long piece, the chimney changes place every four
    lines.

  - Treadmill
    When enabled, this modifier shifts the content of
    the well to the left (or right) after every piece.

  - Junkyard
    When enabled, this modifier fills the bottom of the
    well with garbage once at the beginning of the game.

    The other options in that menu allows you chose a
    background image, the background tune, and even the
    type of pieces (see the EDITING for more info.)

    When you're ready, select GO! in the menu. Once a
    game has been started, its settings cannot be
    modified.


EDITING

  Edutris was designed with flexibility in mind and many
  components can be modified, replaced, or added.

  - Archives
    Edutris supports data bundles identified by their
    ".DAT" extension. Data bundles are loaded in
    alphabetical order with later files overwriting the
    content of earlier files. Unpacked files (located
    outside archives) always have priority. The full
    format specifications can be found in GOODIES.ZIP

  - Backgrounds
    To add your own background images, create a 320x200
    picture, with at most 96 unique colors (8 bits per
    pixel, saved as a compressed PCX file. Place an
    underscore before the filename (e.g. "_RVRSIDE.PCX")
    and save it inside the game's directory. It should
    now appear in the new game menu.

  - Music
    Music files are simple PLAY commands stored in a
    plain text file, with some spacing to split the
    partition into smaller chunks that can be played in
    the background. PlayMATE can help you compose and
    save your own tunes. Tunes must be prefixed with an
    underscore (e.g. "_MYSONG.SPK") and must be located
    in the game's directory. Music can be selected when
    starting a new game.

  - Shapes
    Shapes are stored inside PCX files prefixed with a
    dollar sign (e.g. "$MYSET.PCX".) The image must be
    16 pixels wide and its height must be a multiple of
    4. Each block (and its rotations) are drawn on a 4x4
    square, left to right. The brightest color detected
    in the image is used to draw the shape (other colors
    are ignored.) Shapes can be selected from the new
    game menu.

  - Interface Layout
    The game screen overlay is defined via a simple
    320x200 image named "FRAME.PCX". Special color
    values are reserved to point to the top left of
    specific elements:

        0x0000FF   Blue: "Next shape" window
        0x00FF00  Green: Well (playing field)
        0x00FFFF   Cyan: "Hold shape" window
        0xFFFF00 Yellow: "Stats" window

    Two more colors are used to provide blending
    information:

        0xFF0000    Red: Transparency effect
        0xFF00FF   Pink: See-through

    Those colors can be located anywhere in the palette.
    The first 64 colors can be used anywhere to draw
    over the background image.

    If you wish to modify the font, menu graphics, or
    the initial 64 colors, look for the following files
    in ASSETS.DAT:

      SHARED.PCX    Menu graphics, in-game blocks, 64
                    colors palette for common elements.
      CHRMAP1.PCX   Large 8x8 font, see-through.
      CHRMAP2.PCX   Narrow brown 4x8 font, see-through.
      CHRMAP3.PCX   Narrow gray 4x8 font, opaque.


COMPILING

  To execute the source from the QuickBASIC IDE, the YME
  graphic library must first be recompiled. The source
  is available in SOURCE.ZIP, as well as the compiled
  QuickBASIC library. Place the compiled library in the
  same directory as EDUTRIS.BAS and ASSETS.DAT, then run
  QuickBASIC with the following command line:

    QB.EXE /l YME EDUTRIS.BAS

  From there, EDUTRIS may be compiled to a DOS binary
  using the built-in compilation menu:

    Run > Make EXE file... > Produce: Stand-Alone EXE
    File > Make EXE.


CREDITS

  - Original Design
    Alexey Pajitnov

  - QuickBASIC Code & Additional Art
    Mike Hawk