QLTet
=====
A simple Tetris-like game for the QL
This is an UNFINISHED game. It is playable - ie it WORKS! However, there be
BUGS, and messes, illogicalities, and various evolutionary dead ends. Still,
it is NOT a work in progress, as I have NO intention of developing it
further. Feel free to do so. Or just throw it away and build your own!
It was started a long way back, on a real QL, but I could never get it
fast enough. As recently as this month, December 2021, I tried exchanging
BLOCK with characters in the hope that it would speed things up. But no joy
there. This kind of thing has to be done in assembler, and possibly
working on the bare metal, ie disabling most of Qdos.
It will RUN in SuperBASIC on a QL with at least a GoldCard or better. On
QPC2, SMSQmulator, and Q-emulator at full speed, on a reasonably modern PC,
it works pretty well, and is fun to play (despite the odd bug).
The game
========
QLTet is a kind of dynamic puzzle - much like Life itself! Random
shapes fall from on high, and you have to maneuver them into place in
your messy little world down below, so that they fit in neatly without
any gaps. For each gap-free (horizontal) row you manage to weave and
wheedle, you get a brownie point, and the pile of debris decreases
accordingly, giving you a tiny respite until the next trick or treat
comes along. Eventually - inevitably - the shit piles up so high that
you succumb - just like in real life. At that point, its Game Over!
(Unlike in real life, however, in QLTet you always get to have another
go!)
Good night, and Good Luck!
Getting started
===============
If youre using a QL, make sure you have TK2 locked and loaded before you
start.
To play in its current form from BASIC you first need to
LRESPR <home>SCRXYI_bin
(<home> being the directory wherein SCRXYI_bin resides) OR load the program
and change line 112 scrxy scx%, scy% to something else: The simplest is if
you know your resolution, eg 512x256, then change the line to
112 scx% = 512: scy% = 256
or use some other known command, like SCR_XLIM/SCR_YLIM to do the business.
(But that will require some other changes to the program, as these
commands require an open console channel. Look at the Init and SetScene
PROCedures.)
Save the program if you have made any changes. Then, on
Qdos: QL, etc
LRUN <home>QLTet_bas
OR
EXEC_W <home>QLTet_obj
(The compiled version has the SCRXY command built in, so no need to LRESPR
it.) If you dont see the program, press CTRL + c a couple of times.
SMSQ/E: (QPC2, SMSQmulator. Qx0, Q68, ..?)
In a daughter SBASIC (so it doesnt mess up your windows)
LRUN <home>QLTet_bas
OR load it into QD with the SBAS/QD Thing active and press F10,
OR just
EX <home>QLTet_bas
OR
EX <home>QLTet_obj
Configuration
=============
You configure this program by changing certain variables in the source code.
Line 112 has already been explained above.
Line 116: You can also change the block size. This makes the whole display
bigger. Try sqz% = 12
Line 118: Make it go faster by changing speed%. Less => faster!
Line 120 & 122: World size. This is the size of the Tetris "world". Make
the world taller and/or wider. Just try it out and see what
rocks your boat.
Line 124: paper colour. Not followed through. While shapes will never be
the same as the paper colour, this hasnt been applied to the
score window. So best left alone. Else 0..7
Line 126: bdcol = border colour. 0..255
Line 128: Sound on or off (BEEP only). 0/1
Line 130: Name of scores memory file. Current default is
"ram1_score_txt". Clearly, this should be changed to where and
what you want.
Play
====
On startup you are asked whether you wish to play. Answer Y or N.
While the shape drops the following keystrokes are possible:
Cursor Left: Moves shape left
Cursor up: Rotates shape counter clockwise
Cursor Right: Moves shape right
Cursor down: Rotates shape clockwise
ESC: Pressed once pauses. Pressed while paused, exits the
current session and returns you to the starting
position.
Space: (Any other key, really), speeds up the drop while the
key is depressed.
Program status
==============
V0.01, pjw, 2021 Dec 06
Conditions of use and DISCLAIMER as per Knoware.no
QL Software
