Columns, like Tetris, is a classic game.
There are DOS-based, Windows-based, shareware, public domain, commercial ... many many Columns in the world. So, why did I write this program? Emm.. it is a test program for my routines in handling tweaked VGA mode and Columns is a simple game that is most suitable for practice. This Columns is a game runs in 320x240x256 tweaked VGA mode, a ratio better than 320x200 I think. In fact, I already wrote one in CGA nearly 3 years ago. In this new VGA one, I have put in several screen tricks like background scrolling, screen splitting, page flipping, etc.
This game still has many places to be improved especially the speed and graphics. Since I am not a computer graphics designer, so do not expect too much on the screen output.
I have spent a lot of time on writing the VGA mode X routines, however, the core COLUMNS code is just a 1x-days work. Hope you like this game.
This game completely updates the screen frequently, so it requires high speed VGA card to have the best result. It is very obvious in 2 players mode and also when I changed my system from Cirrus Logic 5426 to 5428 which increases my computer's video speed by 30%. I have tested it with Trident 8900C, the speed is far from my expectation. Therefore, the game speed depends on the speed of VGA card more than CPU.
This game supports Sound Blaster 2.0 compatible cards. It uses environment BLASTER to determine the Port, Irq and DMA of SB. So, it must be set before running the game, otherwise there will be no sound and music, eg. SET BLASTER=A220 D1 I5 T3 for port:220 DMA:1 IRQ:5.
It uses SBFMDRV.COM as FM Music driver to play .CMF file. This driver will be automatically loaded.
The sound effect is using .WAV files. The codes are based on the Sound Blaster Freedom Project (SBF) v3.0. Thanks to those guys who paid effort to develop this library. I've added a few codes like handling DMA buffer memory allocation and RIFF Wave file. Due to SB DMA buffer, an extra 128K is required compared to playing without sound. The driver CT-VOICE.DRV is no longer used since it doesn't support other SB compatible cards.
This game supports Keyboard, Joysticks and Mouse. Joysticks and Mouse are only effective in playing.
For one player, either left or right can be chosen.
For two players, there are 2 modes - Individual or Competitive.
Choice to disable background scrolling
The main feature of this game is continuous background scrolling, this is also my major objective. However, this makes the game run very slow in low speed VGA card system. So, I will make the background scrolling as option. This will involve quite a lot of change in source code since the main logic of this game are optimized for background scrolling mode only.
Use a better music driver
I don't want to use SBFMDRV.COM for music driver as it must be loaded as a TSR. However, there is very little information in SBF about FM synthesizer programming. I'm now trying to get more information so that I can replace SBFMDRV.COM. Anyone has good driver, please give it to me.
More and betterMusic and Sound Effect
Better Graphics and Background
I will only do so when I really have time.
v0.12 A new menu screen with better graphics. 05/28/95 v0.10 Added mouse support. 05/09/95 v0.09 Added joystick 1 and joystick 2 support. 05/08/95 User defined control keys supported. Music driver (SBFMDRV.COM) will be automatically loaded and unloaded. No need to install it before running Columns. Some changes in menu. v0.08 A new McMug background is added. To use this 04/03/95 background other than the default one, type COLUMNS.EXE MCMUG.PCX to start the game. v0.07 Fix a minor conceptual bug due to 02/25/95 misunderstanding of the relationship between changing start address and vertical retrace / display period. v0.06 Minor changes. 02/12/95 2 sound effects added. v0.05 Music and Sound On/Off options are added. 02/06/95 v0.04 Music playing rate increase with the game speed. 02/03/95 A minor bug is fixed. v0.03 Change the speed increment. The speed will not 02/02/95 increase so fast. More sound effects are added. v0.02 Using .WAV instead of .VOC. 02/01/95 Use self-developed subroutines based on SBF instead of using CT-VOICE.DRV, therefore, SB compatible cards is now supported. v0.01 First version with sound and music. 01/30/95 Sound effect supports only Sound Blaster but not compatible one.