Columns v1.1
Autumn Springs - 2001

Please read through this entire file BEFORE using the game.

--- Contents
1. User License Agreement
2. Special note
3. Introduction, How to Play Columns
   3a. Flash Columns
   3b. Rows: the Sequal to Columns
4. Technical Support
5. Skinning Information
6. About Columns 1.1
7. About Kcowolf
8. Contacting Autumn Springs
9. Special Thanks

Note: any first-person references (I, me) refer to Kcowolf, the author of the
game.

--- 1. User License Agreement
        By using this program, you agree that you have read the following
statement and agree to it.
    1.  Neither Autumn Springs, nor anyone related to Autumn Springs is
        responsible for anything that may happen to your computer or any
        related equipment through the use of this program. 
    2.  This program should ONLY be downloaded from a reliable source, such as
        the official Autumn Springs website (http://www.asprings.f2s.com as of
        July 2002). We are NOT responsible in any way for any "trojan horse"
        or "virus" programs, or any other undesired programs that other
        distributors may hide within the program. It is the responsibility of
        the user to ensure that this program is downloaded from a reliable
        source.
    3.  This program may not be redistributed unless the original compressed
        file is used and all files are intact and unedited. For example, no
        extra "skin" files other than the original "default.skn" and related
        files may be included without permission from the author.

--- 2. Special note
        Autumn Springs is NOT, in any way, shape, or form, related to or
involved with Sega or any of its subsidiaries. Please do NOT email Sega about
this game; they did not make it. Any copyrights, trademarks, etc. are the
property of their respective owners, and no challange to ownership is in any
way intended. I'm not the owner. I just want to spread the love of Columns
throughout the computing world. Please don't sue me. After all, I have no
money.

--- 3. Introduction, How to Play Columns
        Columns is a computer remake of the Sega classic puzzle game of the
same name. You have a 6x14 playing field. Jewels stacked in a 1x3 column fall
from the top of the field towards the bottom. You can move the jewels to the
left or right of the playing field by pressing LEFT or RIGHT, respectively.
Also, you can rotate the order of the jewels as they fall by pressing the UP
key. The column moves down as much as possible (until it hits another jewel or
the bottom of the field), and then a new column starts its way down.

        The object of Columns is to form lines of at least three jewels going
horizontally, vertically, or diagonally. Any time you can not place a column
completely below the top of the playing field, the game is over.

        Sometimes during the game you will notice a special column (in the
default.skn it's light blue and white). This is the MAGIC JEWEL. When you
place it on any other jewel, ALL the jewels on the field of that same kind
disappear!

        Your controls are:
        LEFT - moves the column left
        RIGHT - moves the column right
        DOWN - moves the column down faster
        UP - rotates the jewels in the column
        ESCAPE - exits the game
        P - pause the game
        S - takes a screenshot

        To start Columns, type "columns.exe" in the directory you unzipped it
in. If you later need to make a new setup file, type "columns.exe -setup".

--- 3a. Flash Columns
        Flash Columns is a variation on the original Columns game. It was
first presented in the Sega Genesis (Mega Drive) version. The main difference
is that you select a level of random height before you start the game. When
the game starts, you'll see that the fourth jewel from the left on the bottom
row is flashing. The objective is to eliminate this flashing jewel as fast as
possible.

        For each level of height you have over 2, you will receive a bonus of
200 points. However, for every second you take to clear the flashing jewel,
you lose 5 points. There are no magic jewels in Flash Columns (as it would
make the game too easy).

        Should your game end before you clear the flashing jewel, your score
will not be counted on the high-score list.

--- 3b. Rows: the Sequal to Columns
        Rows is a variation on the original Columns game. Kcowolf thought of
it some time after version Columns 1.0 was released. Instead of having jewels
fall in a 1x3 column, why not try a 3x1 row?

        Ironically, I later saw a preview of Columns for the Nintendo GameBoy
Advance. The author of the preview remarked at the bottom "[I] wonder what
happened to Rows".

        It's not really meant to be as polished as the original, it was just
added in to waste five minutes that might otherwise have been somewhat
constructive.

        In Rows (the name was meant to be a joke, get it?), the jewels fall in
a 3x1 row. The row falls as far as it can, until it hits the bottom of the
field or ANY ONE of the jewels is blocked by a jewel below it. When this
happens, the other jewels automatically fall as far as possible. The objective
is still the same: form lines of three jewels horizontally, vertically, or
diagonally. There is no magic jewel in Rows.

        Also: in order to be compatible with all existing skins, the Next Box
in Rows displays the pieces vertically. The bottom jewel in the Next Box will
be the left jewel in the row, and the top one in the Next Box will become the
right jewel in the row. It's pretty easy to get used to after a bit.

--- 4. Technical Support
        There's a few common problems that happen in Columns. The first (and
certainly most annoying) is that the graphics MAY start getting corrupted
randomly. This is easy to spot because the "presents" on the Autumn Springs
logo will be missing, as will the menu headlines. If this happens, exit
Columns. If you're in a DOS shell, type EXIT and start a new shell, and the
problem should be fixed. If you're in pure DOS, you might have to reset your
computer. I took out the routine that I'm sure was responsible for this and
I've had no trouble since, but this is here just in case.

        Second, some users will find that there is no background image when
playing the game, and other graphics may look messed up as well. This is
most likely because your video card does not support Paging. There is no way
to fix this problem other than to replace your video card.

        If the game mysteriously locks up with the words "Unknown type." then
a graphics file does not exist. Check the skin and make sure the graphics are
correctly named.

        If you have any other problems than these, feel free to contact us for
help. Before emailing, however, check the Autumn Springs webpage to see if
your question has been answered already.

Autumn Springs support email:
support@asprings.f2s.com

        Please give us a DETAILED descriptiopn of exactly where the game
locked up and what OS you are using. Requests for help should receive some
response within 24-48 hours.

        Or you can contact us via IRC. Connect to irc.esper.net:6667 and
channel #ASprings. If Kcowolf is around, he'd be the ideal person to ask.

--- 5. Skinning Information
        One feature of Columns is its customizable graphics. Information about
these graphics is stored in a special ASCII text file called a "skin". If
you'd like to make a skin, you'll want to read this section thoroughly.

        Skin files (.SKN extension) must be stored in the \SKINS subdirectory
(in other words, if Columns is in the C:\COLUMNS directory, the skin files
should be in the C:\COLUMNS\SKINS directory). Skin graphics, on the other
hand, are stored in a subdirectory of the \SKINS directory with a name
matching the skin file (for example, default.skn would be in the
C:\COLUMNS\SKINS directory, and any graphics for it would be in the
C:\COLUMNS\SKINS\DEFAULT directory).

        All graphics are in Bitmap (.BMP) format.

        All music is in .GDM format. Use the 2GDM program to convert a
variety of popular formats (like MOD and S3M) to GDM.

        To make a skin, you'll need: a graphics program that supports BMP
images (Paint Shop Pro is recommended), a MOD or S3M tracking program such as
Impulse Tracker, and a text editor (like Notepad or EDIT.COM).

        A new skinning system was written for Columns 1.1 to make writing
skins a LOT easier. The new system uses commands to set the necessary
information. Here is a list of commands and the necessary format they
should be in (they can be used in any order. I've listed everything in what
seems (to me) to be a logical order.

Skin information ---
# - This is a comment line. You can write anything here, and it won't affect
    the skin at all.
Format: # <text>

Name - This gives the name of the skin.
Format: Name <text>

Author - The name of the skin author.
Format: Author <author's name>

Date - The date the skin was created.
Format: Date <date>

Desc1 - The first line of a description of the skin. Should be no longer than
    39 characters.
Format: Desc1 <text>

Desc2 - The second line of a description of the skin. Should be no longer than
    39 characters.
Format: Desc2 <text>

Desc3 - The third line of a description of the skin. Should be no longer than
    39 characters.
Format: Desc3 <text>

Players - Number of players (always 1)
Format: Players 1

Font - The filename of the font. Fonts are BMP images, 378 pixels x 65 pixels.
    Each letter is 14 pixels x 14 pixels, and should be organized like this:
    ! " # $ % & ' ( ) * + , - . /
    0 1 2 3 4 5 6 7 8 9 : ; < = >
    ? @ A B C D E F G H I J K L M
    N O P Q R S T U V W X Y Z
    Leave 12 pixels of space between each letter, and 2 pixels of space
    vertically.
Format: Font <filename>

Snapshot - This is a BMP image that serves as a preview of your skin. To take
    a screenshot in the game, press the S key. This will save a 640x480 BMP
    file. To use it as a preview shot, however, it must be 384x288, so use
    something like Paint Shop Pro to resize it.
Format: Snapshot <filename>

Misc. Coordinates ---
FieldXY - This sets the X,Y coordinates of the upper left corner of the
    playing field. Centered is 224,16.
Format: FieldXY <X coordinate>, <Y coordinate>

NextPieceXY - This sets the X,Y coordinates of the "Next piece" box.
Format: NextPieceXY <X coordinate>, <Y coordinate>

ScoreXY - This sets the X,Y coordinates of the score display.
Format: ScoreXY <X coordinate>, <Y coordinate>

LevelXY - This sets the X,Y coordinates of the level display.
Format: LevelXY <X coordinate>, <Y coordinate>

JewelsXY - This sets the X,Y coordinates of the jewels display.
Format: JewelsXY <X coordinate>, <Y coordinate>

Backgrounds ---
BKG - This sets information for a background. Background images are in BMP
    format and are sized 640x480. This command must be used for EACH
    background. If you have more than one background, the game will start with
    the first background listed, and will change the background each time a
    new level is achieved.
    As for the <border red>, <border green>, and <border blue>, this is the
    RGB code for the color of the border around a falling column. White is
    255, 255, 255, and black is 0, 0, 0.
Format - BKG <filename>, <border red>, <border green>, <border blue>

Gems (Jewels) ---
GemsFile - This is the filename of the image file for the jewelss. This is a
    BMP file which should be 288 pixels wide. The height is 32 pixels * the
    number of frames of animation you want when the player makes a match and
    the jewels disappear. 
    At the top, there should be images of the 6 normal jewels (leave no space
    between each jewel). After that, there should be a graphic for the magic
    jewel three times.
    Underneath this, put the frames of the match animation to be displayed
    when the jewelss are disappearing. Leave no space between each frame.
    If this is complicated, look at the gems.bmp for default.skn, it's a bit
    easier to see (also note that this file contains two copies of the image,
    one normal size and one half-size. The half-size copy is unnecessary).
Format: GemsFile <filename>

GemFrames - This command gives the number of frames of animation that will be
    used when a match is made and the jewels disappear. Don't use more than
    12 or so for best results. The default.skn uses 9.
Format: GemFrames <number of frames>

GemAnim - This is the animation delay for when the jewels disappear. One frame
    will be displayed every <GemAnim> seconds. Default.skn uses .03 seconds.
Format: GemAnim <how long to delay in seconds>

Music ---
MusicFile - This is the filename for the music played during the game. Music
    MUST be in GDM format (use the included 2GDM file to convert MODs and S3Ms
    to GDM). Also, the music file must contain all of the sound
    effects used in the game (BUMP, SWITCH, MATCH, and LEVEL UP).
Format: MusicFile <filename>

MusicSFX - This lists the sound effects. The sound effects must be inserted
    into the music file you are using (use Impulse Tracker or a similar
    program). Take the instrument or sample number your tracker gives you, and
    add 1 to give you the number you should list here.
Format: MusicSFX <BUMP sample>, <ROTATE sample>, <MATCH sample>, <LEVEL UP
    sample>

Game Over ---
GameOverPic - This is the BMP image displayed when the game is over. It can
    be any size, but preferably not full-screen.
Format: GameOverPic <filename>

GameOverMusic - This is the GDM music played when the game is over.
Format: GameOverMusic <filename>

GameOverPicXY - This sets the X,Y coordinates of the picture displayed when
    the game is over.
Format: GameOverPicXY <X coordinate>, <Y coordinate>

--- 6. About Columns 1.1
        As mentioned above, Columns 1.1 is based on Sega's classic puzzle game
"Columns", which was released on Sega's System C2 Arcade Board. This remake
was started on November 23, 2000 (Thanksgiving 2000). Kcowolf programmed most
of it, but a lot of clean-up and testing work was done by Chibi-Usa.

        Originally, this remake was supposed to be a Sonic the Hedgehog-themed
game. All the graphics were going to be Sonic-related, and music was going to
be from Sonic's games, and when you matched, Sonic would run by and knock them
out, or Tails would fly by and take them, just different things like that.
That idea got scrapped because I'm not good at that kind of animation in QB,
and because I can't draw Sonic (on paper or on the computer) to save my life.
So, since the project was already halfway completed, it was changed to a
remake of Sega's amazing game.

        Columns was writeten in QuickBasic 4.5, using Future.Library 3.5 (by
Future Software, http://www.qb45.com) for the SVGA graphics. Columns 1.0 was
released April 27, 2001, Kcowolf's first released project. It was given a
10/10 by the owners of http://qbasic.qb45.com, a very large archive of
QuickBasic games (the 10/10 rating was quite a suprise, considering I knew
everything Columns was lacking in, such as flickery graphics and no
high scores).

        Columns 1.1 was started almost immediately after 1.0 was released,
however, as people pointed out some ways that the game coule be improved. The
main gripe was the lack of a high score table (I'd meant to add one to Columns
1.0, but for some reason, I completely forgot about it. Stupid me). Also, I'd
always hated how flickery the graphics seemed on my Cyrix 200 (which has
happily been replaced), and the skin format was far too complex. Finally, I
felt that 1.0 was rushed for release and that a version 1.1 would allow more
time to clean it up and make it better (the readme file especially).

        This version, version 1.1, includes the high score tables, some
reduced flicker, and a brand new skin format, which is more flexible than the
1.0 format. Also, 1.1 includes some new game modes- Flash Columns and
Rows: the Sequal to Columns.

        Columns 1.1 is freeware, meaning you can distribute it to anyone you
like, as long as you don't charge for it. There's no registration fee, no
crippled demo, no constant nagging to cough up money, no author in the IRC
channel trying to shame users into registering.

--- 7. About Kcowolf
        (Note: This section is written in first-person.) I, Kcowolf, am the
main programmer of Columns. I'm close to 18 years old, and I live in St.
Louis, Missouri. 

        I started programming back when I was about 6 or 7 years old, but it
was all REALLY simple stuff in GWBasic (REALLY simple as in the most difficult
command I used was GOTO).

        I never really started programming heavily in QBasic until I was in
6th or 7th grade, when I used it to make simple trivia games for school
projects (believe me, it's an effective way to boost your grade). 

        The first time I really started making games was after I got ZZT, a
game creation system from Epic Megagames. ZZT wasn't advanced or anything like
that (it used ASCII graphics and the normal 16 colors, woo) but a lot of
people on the Internet could make entirely fun games with it. I worked on one
or two ZZT games over time (under the name Kcowolf Software), but I never
released anything. Thank goodness.

        Sometime after discovering ZZT on AOL, I found a new program called
Megazeux. Megazeux improved on ZZT in almost every way with a new programming
language, sound card support, and a character and palette editor. Again, I
worked on a few Megazeux projects for a while (under the names Kcowolf
Software, KPInteractive, and finally IceFlare), but again I never finished a
full project. I managed to release one demo of a game called "Quark's RPG",
a game which never did fully materialize and was never really worth making a
demo out of (though I did have some interesting ideas, just never a full
plot). 

        I left Megazeux for good in early 2000, mostly because I felt that the
Megazeux "scene" had largely deteriorated. That summer I started work on a
Sonic the Hedgehog level editor (it edited the Sonic ROM image). This is the
one project I really wish I'd finished, but I stopped it because I wasn't
satisfied with how some of it worked, and because I saw better editors made by
more experienced people being released.
        
        The original inspiration for Columns was my last Megazeux project,
Mystic Gems. In Mystic Gems, only one piece fell at a time and you tried to
form matches of three pieces across, vertically, or diagonally. The goal was
to form two matches of white pieces (which were located at the bottom of the
screen) by eliminating pieces that were blocking them. MG was too slow and too
easy, but at the end I was planning on adding a Columns mode. When IceFlare
dissolved, however, I lost a lot of my motivation to work on MG, and
eventually I cancelled it to work on my Sonic editor.

        After I quit working on the Sonic editor, I had an idea to make a new
Columns game in QuickBasic (the Sonic editor taught me how to use SVGA
graphics in QB using Future.Library) with all sorts of Sonic graphics and
everything. Since I can't draw Sonic graphics, though, the project
eventually turned into a general remake of Sega's classic Columns.

        I like Tetris, Columns, Puyo Puyo, and other puzzle games like that.
I play Tetrinet occasionally, and would love to see online versions of Columns
and Puyo Puyo (Columns the remake was going to have an online mode, but I had
memory problems in QB and never got started on an online mode. It would likely
be very difficult using my programming). Besides programming, I like watching
Australian Football (http://www.afl.com.au). I work at Papa John's Pizza (no,
I don't deliver. I just take orders and top the pizzas). In the past, I did
some webpage design, but none of my pages have really lasted.

        As far as my next game is concerned, I'm not sure what to do. I'd love
to come up with an original puzzle game (but I haven't had a good idea yet),
a Sonic the Hedgehog remake (heh, I'm a Sega remake factory), or an Australian
Football sim (which would be very difficult to make, but would hopefully be
fun for those who like the game). 

--- 8. Contacting Autumn Springs
        If you'd like to contact us for any reason, we can be reached in the
following ways:
    World Wide Web: http://www.asprings.f2s.com
    Email: support@asprings.f2s.com
    IRC: irc.esper.net:6667, channel #asprings

--- 9. Special Thanks
        Without the following people, Columns never would've been possible:

   Sega, who originally made Columns (and who owns all rights to the game) on
        the Sega C2 Arcade Board and later the Sega Genesis.

   Chibi-Usa, who spent long hours exploring through my code and improving it.
        Without him, the game would be severely lower in quality.

   DaDanoska, who helped to test Columns and was very helpful in locating the
        "no memory paging" error.

   One 3.5" disk to which I saved the Columns 1.1 source code before we
        upgraded the computer from a Cyrix 200 to a K6-2 350mhz system. We had
        to reformat the whole disk unexpectedly, and without the heroic actions
        of this 3.5" disk, the source would have been lost and Columns 1.1
        might never have seen the light of day.

   Anyone else whom I may have forgotten.
