Bloxed !Help file
Version 1.11
!Bloxed - a Tetris variant (c) Steven Singer 1991-96
----------------------------------------------------
This file last updated 13 August 2001 [web version edited 12 Februrary 2003].
Introduction and Gameplay
-------------------------
!Bloxed is a variation on Tetris. It has lots of extra features. Your best
bet is to load it up and watch the demo.
Quick precis, pieces fall from the top of a well. Each piece consists of four
blocks stuck together. You can move the pieces left or right, and turn them
to position them as desired. You can also pull them down to speed up
placement. If you complete an entire row across the well, that row is
removed, and the lines above fall down. The game ends when the pile reaches
the top of the screen (OK, not quite accurate, but good enough for simple
instructions).
The rate at which the pieces fall down accelerates as the game progresses.
The rate reaches a local maximum at level nine. At level ten it slows down,
and then gradually speeds back up so that level eighteen is the same speed
as level nine, and level nineteen is a touch quicker. Then at level twenty it
slows down slightly, then it speeds back up over levels twenty-one to
twenty-three. Level twenty-three is the same speed as level nineteen. Level
twenty-four is a touch faster. Levels twenty-five to twenty-nine follow the
same speeds as levels twenty to twenty four. If you get past level
twenty-nine it starts getting nasty. At level fifty it starts getting really
nasty. Levels one hundered and thirty-nine upwards are identical. If you can
make it to level one hundred you're either cheating or some kind of genius.
The extra features are power blocks, line passing in multi-player mode, and
the nasty things at level thirty upwards :-).
Some pieces that fall contain a power block one of 4 F S B 16. If the line
that the power block is placed in is completed - either by that piece or by
another later - the power block is activated (if more than one power block
would be activated, only one is). The effects are as follows:
4) (Four Lines) Removes alternate lines from the highest line with any
pieces in, to a maximum of four lines.
F) (Filler) Produces a little alien, which may be guided with the left and
right keys and encouraged to drop a block with the turn key. You can use
it to complete partially finished lines.
S) (Shooter) Produces a satellite/gun, which may be controlled in a similar
way to the alien, which can shoot blocks.
B) (Bomb) A bomb appears which can be guided as it falls. When it lands on
the blocks, it explodes doing a fair amount of damage. (Hint, the damage
may look variable, but it isn' t. Experimentation should help in
determining placement for maximum effect).
16) (16 ton weight) A 16 ton weight (a la cartoons and Monty Python) appears,
it too can be guided. When it lands, it removes 3 columns of bricks.
In multi-player mode, when either player completes more than one line with a
piece, the lines removed (minus the piece just put in them), are sent across
to the next player, where they are inserted at the bottom of his/her well.
The piece the player was trying to position at that time gets vapourised.
Lines are passed in a circle avoiding dead players. The game continues till
only one player is left standing.
This game is really meant to be played two player. It's mean. Due to the
cunning fact that player 1's keys lie near the '2' and player 2's near the
'2' on the numeric pad, both players can restart a game for revenge.
On an A5000, I have sometimes noticed keyboard clash on the left and right
keys of player 1. Redefining them to 'Q' and 'W' cleared this. (I hope it's
keyboard clash, if not, my playing is worse than I thought). You may also
need to watch for keyboard clash on RiscPCs.
Player 3's keys are badly placed. My the time I added the 3 player option,
the other players' keys were already fixed. Use 'K' to redefine the keys.
Unfortunately, I've not added any music (does anyone want to write some ?).
My suggestion is grab the nearest tape deck/hi-fi/CD player and play
something suitable.
One final hint, when using a filler, consider the possibilities of not
removing all the lines. Remember, you can see what the next piece is.
Oh yeah, to quit the game hit 'Esc'.
Notes For 1 Meg Machines
------------------------
!Bloxed should just about run on a 1 Meg machine. I can only give the
standard advice if you have trouble, that is reboot your machine with a
CTRL-RESET and try again, and if that fails do a CTRL-RESET whilst holding
down the '*' key, this will bring you up in supervisor mode with a minimum
system, then run !Bloxed from the command line (something like :0.!Bloxed to
run of floppy or :4.$.Games.!Bloxed for harddrive 4 with !Bloxed in the
directory Games. SCSI users etc. may have to work out their own incantation).
Configuration Options
---------------------
There are two configuration screens. They are accessed by pressing the
appropriate keys whilst a game is not in progress. One screen is for
redefining keys (press 'K') and the other for general configuration (press
'C'). I hope these two screens are self explanatory. There are only a few
things I can think of to point out.
To save the configuration you have to click the 'Save' button on the
configuration screen. This also saves key definitions. If you don't save the
new configuration or key definitions then the next time you play the old set
will be reloaded.
To change the backdrop file you should click on the white box containing the
name of the current backdrop file. A caret will then appear which should
respond to most standard controls. When you have entered the name press
return and the program will attempt to load that file. It will print a
warning if it can't find the file or if there is insufficient memory to load
the file (and to allow workspace for the decompression). There are two
special filenames you can enter. If you enter a blank filename then it will
be changed to the default backdrop file. If you enter the filename 'none'
then backdrops will be disabled.
If you want to make your own backdrop files then contact me for the program
to do it. The program isn't on general release as it isn't very tidily
written. It needs lots of memory (for the same reason). The backdrop files
for this game are in my own format. Do not try and use other files as
backdrop files as it is very likely that doing so will crash your computer
losing any work you have.
The 'multi-player cumulative total' option toggles whether or not the program
will keep track of how many multi-player games have been won by each player.
The current total is printed an the bottom of the title screen. If you
switch it off and later switch it back on then the scoring will pick up from
where it left off. To reset the score to everyone at 0, click on the reset
button.
The 'Message scrolling' option determines whether or not the various printed
messages on the title screen and in other places are scrolled onto the
screen or just centred straight away.
The speaker setting is not saved, instead it is picked up from the current
state of the computer.
History
-------
!Bloxed is based on an arcade game I played for a while called Bloxeed. This,
in turn, was based on Tetris. If you don't know what Tetris is, which planet
have you been on ?
My version started as a one player C program, running under Unix, using the
curses library, in 1990. I've still got it if anyone wants. I then ported it
to BASIC on the Archimedes in 1990-91 (this was before I bought my own, I
used a friend's). It was made 2 player. The resulting code was 'orrible. When
I finally bought my own Archimedes in October 1991, I re-wrote the entire
prgram from scratch in Arm-code. This took me about 4 weeks (whilst still at
university). Over Christmas 1991, I added the front end. And in the little
spare time I had in Hilary term 1992 I added the backdrops, put the score
into Arm code, and generally tidied up. There was then a pre-release version
released. Over the Easter Vacation, I added some sound effects and the
configuration screen. Over the next summer, whilst between courses, I added
the nasty bits at levels 30+ and the high score tables. Then when I started
my Ph.D. course in October 1992, I added the pause facility, and changed the
backdrops. This became version 1.00 - the first official release. It was
distributed at the Archimedes User Show on the Sunday (I went down and gave
out some copies), it was posted to the Newcastle Info Server (RIP) shortly
after, and made it into the January 1993 issue of Acorn Computing.
Changes to give version 1.01
Fixed bug - 'Missing ENDIF' in key definition procedure (thanks Pelago).
Allow saving of configuration (thanks everybody).
Allow centring of screen in one player mode (thanks Robert).
Fixed bug that caused shooter not to fire occasionally (thanks everybody).
Fixed bug that caused filled blocks to change colour on transfer (thanks me).
Added auto repeat on the left and right keys (deliberately not on the turn
key - I found this dodgy), configurable repeat rate (thanks everybody).
!Help file - Notes for 1 Meg Users, About The Author and Thanks added.
Trimmed comments and tightened some code to keep in 512k wimp slot.
Fixed obscure bug in filler (thanks Pelago).
Changes to give version 1.02 (not released)
Overlayed code to free up some memory (thanks Robin for hassling me).
Changes to give version 1.03 (released for development late April 1993)
Altered assembly code to make it relocatable. Moved compilation off-line to
separate program to produce an object file. Moved the multiple data files
into the object file (this will probably be a temporary move).
Made it clear screen and print goodbye when escape pressed.
Changes to give version 1.04 (released for development early May 1993)
Moved backdrops back out of code.
Moved all block sprites into one file.
Added sprites for blomb explosion.
Expanded high score tables to 50 entries.
Added animation for bomb.
Allow each multi-frame object (bomb, filler, shooter and explosion) to have
a different number of frames animation - number of frames need no
longer be a power of 2.
Now tries to grab as much memory as possible, this is a preliminary to
allowing alternate backdrop and block files.
Added configuration option to select backdrop and block files (ignored at the
moment).
Some of Lee's sprites made default.
Changes to give version 1.05 (released for beta testing 2 Aug 1993)
Remmed out code to chose block file.
Added code to select backdrop file.
Improved text entry for configuration options to allow Ctrl-A, Ctrl-E, Ctrl-U
Ctrl-left and Ctrl-right.
Added Configuration section to the !Help file.
Changes to give version 1.06 (released for beta testing 2 Aug 1993)
Improved text entry for configuration options to allow Ctrl-K and backspace.
Flush buffer before reading configuration text strings.
Set up text window before loading backdrops so large messages don't scroll
configuration screen.
Changes to give version 1.07 (released for beta testing 20 Aug 1993)
Changed high score table printing into mode 15.
Added timestamping to high score table.
High score name entry now remembers names from previous game.
Changes to give version 1.08 (released for beta testing 29 June 1994)
Fixed annoying click at end of samples.
Deleted !Boot file (thanks Pelago).
Changed Blox$Dir to Bloxed$Dir throughout program (thanks Pelago).
Miscellaneous code tidying.
Changed 'alltime' to 'all-time' throughout program (thanks Pelago).
Trap failure of write of high score table (thanks Pelago).
Other Versions section added to !Help file, as there are now other version.
Changes to give version 1.09 (released 23 February 1995)
Time frames from real time clock rather than vsync. This should give the same
game speed regardless of screen refresh rate.
Default configuration now stored in code. Config file only created when
configuration is saved. Config file removed from distribution.
Trap errors when saving or loading config file.
Changes to give version 1.10 (released for beta testing December 1995)
Fixed vsync timing error when game paused.
Fixed vsync timing error in demo.
Supplied 100Hz modes for RPC so that letterbox modes are avoided.
Extended level scheme to level 139 (from 99, blame LES.. for this).
Changes to give version 1.11 (released 1 May 1996)
Fixed bug in screen memory allocation (got broken in RPC mode upgrade).
Major overhaul to allow >2 player games (blame Graham Robinson for this).
Fixed bug that caused the modules not to be RmKilled on exit and config
files not to be loaded.
Key and configuration saving fixed and added version number.
Redraw code sped up so 3 player games should run on ARM 2 machines.
Reconverted all backdrop images.
Added LES..'s best high score to table.
RiscPC mode definitions tweaked.
Copyright Notice And Acknowledgements
-------------------------------------
Unless otherwise noted, all the code is copyright Steven Singer. The sprites
are copyright Steven Singer and Lee McGinty. The bomb sprite, bares more than
a passing resemblance to the RISCOS 3 error sprite :-), and I suspect the
Calvin and Hobbes picture is copyright Bill Watterson (but seeing as I got it
through the public domain I felt free to use it).
Most pictures used in the backdrops were acquired as GIFs by anonymous ftp
from wuarchive.wustl.edu. The exceptions were the one with the helices on
and the sunset, which were both part of the PVray 0.5ß distribution. The
helix picture (ntreal) was created by Drew Wells, and the sunset picture
(sunsethf) was created by Douglas Muir. All pictures were converted to RISCOS
sprites using ChangeFSI (by Robert Hamilton and Roger Wilson) and Translator
(by John Kortink). They were then compressed using a routine I wrote
specially for this program (based on the LZW algorithm).
The sound effects (before I played with them), came by anonymous ftp from
terminator.cc.umich.edu
This software is may be freely copied, as long as the following conditions
are met:
a) This notice is distributed unchanged with every copy
b) Any changes released should first be mailed to the author at one of the
addresses given below, and not distributed until permission is given.
c) No charge (excluding possibly a minimal copying charge) is made for the
software by the distributor.
This software is provided 'as is', with no guarantee of its suitability for
any purpose. NO WARRANTY IS GIVEN!
I accept no responsibility for loss of friends when playing !Bloxed in
multi-player mode :-).
If you do change the code at all, please let me know, as I refuse to try to
support other people's modifications unless I have been told about them, and
I will probably be interested.
If you want to use any code from this program, contact me first. I might be
presuaded to provide documentation.
Thanks
------
Thanks to the following people:
Robin Watts, for use of his Arc before I got mine, for teaching me ARM code
for letting me take over his room to program in when I was living out of
college and for giving me cups of tea whilst I was in there, for writing
!Larger (get a copy, you know it makes sense), for looking stuff up in his
PRMs for me and most of all for beating me (occasionally).
The Archimedes User Group in Oxford for play testing, suggestions and help
with distribution.
Robert Archbold (aka Orbital Productions) for suggestions.
John Veness (aka Pelago) for pages and pages of suggestions.
Matthew Newton for suggestions.
Lee McGinty for redesigning the sprites.
Dom Symes for writing !Zap (definitely get a copy of this).
Graeme Foster for suggestions - mostly on the high score table.
Graham Robinson for suggestions.
Anthony Haines for bug reports and ARM 2, 1 Meg, RiscOS 2 testing.
Iwan Attwood (aka LES.. and Dr. De'ath) for some truly sick high scores.
Other Versions
--------------
A version of Bloxed is available for the Psion III, written by Robin Watts.
Contact him at Warm Silence Software, P.O. Box 28, Woodstock, Oxfordshire,
England, OX20 1XX. E-mail me for his e-mail address or go to their web-site
at http://www.wss.co.uk/ Note that this isn't an official WSS product, just
something Robin did in his spare time.
A version was being written for the X windows system, UNIX and TCP/IP by me,
but it's stopped. Other things kept getting in the way (like my thesis).
If you want to try and port Bloxed to other systems, contact me for details.
I can provide in depth descriptions of algorithms used and precise
measurements of level speeds to ensure an accurate port. I will not, however,
provide the source code , I will provide hints about how to tackle writing
various parts of the game to ensure smooth game play and accurate
reproduction . Basically , you'll get lots of advice on tips and tricks I
learnt the hard way.
Miscellaneous
-------------
If anyone has any ideas on improvements or new features for !Bloxed, please
get in touch with me, though ideas for new power blocks must be exceptional
to be included.
I would appreciate improved sprites/backdrops/sound effects/music, being sent
to me at the addresses below. The programs to convert sprites to backdrops
and pieces, and to make the voice modules from samples are available from me
by request for people who wish to play with them. Alternatively, if you would
like me to customise a version for a special purpose, then contact me at the
addresses below.
There is a Bloxed WWW page on http://www.finesse.demon.co.uk/steven/Bloxed/
About The Author
----------------
I am currently working as a software engineer in Cambridge. Most of this game
was written while I was an undergraduate at Oxford University (studying
physics). The rest was written whilst I was studying for a Ph.D. in nuclear
physics at the University of Surrey.
Contact
-------
I can be contacted by e-mail at singer@ox.compsoc.net
-----
Unix is a trademark of AT&T Laboratories (I think).
GIF is a trademark of Compuserve, Incorporated, an H&R Block Company.
Tetris and Bloxeed may be trademarks, but I can't attribute them.
ARM, Archimedes, A5000, RiscPC etc. are trademarks of the usual people.
(Yes I think giving trademarks is over the top as well).
If this file zoomed past at high speed, load !Edit, then try again.
Comments should be addressed to webmaster@pertinentdetail.org