Name of Software:
Nohzdyve
Author:
Johan "Dr Beep" Koelman
Release Date:
20/10/2019
Requirements (eg. 1K, 16K, AY Card, Hi-Res Scheme):
1K hires
- Nohzdyve.png (10.57 KiB) Viewed 14794 times
Description:
Play Nohzdyve now on the ZX81
Download link (if available for download):
Commercial / Public Domain / Free ware / Other - please specify?
Freeware
NOHZDYVE
This "classic" game from an alternate timeline needed a 1K hires version.
Without the walls it would be easy. I could use the routine from "Stupid Cupid".
But the game adds the dropping effect when the wall goes up, so the wall was needed.
The routine from "Stupid Cupid" was base for this routine, but it had to be altered to
built a stonebrick wall. This is done by 2 fixed lines of display. 1 line
with small brick/large brick and 1 line large brick/small brick. The morterlayer between
the bricks is set by NOT displaying the current bricklayer. Synchronizing the display was
then a tough job, but I managed. Each displayline must have the displayed graphic cleared.
This is easy on the 2nd line. Each graphic has 1 line of 0. However.... the display
uses 2 different lines (2 bricklines) and the first line is NOT cleared. I managed to clear the
display of the player. The clearance of the large graphics is solved by displaying a space
on the next lines on the same x-position. This worked for the display of the character.
Movement:
On the original game the movement is pixelwise. This is not possible in 1K.
The doublesized graphics move half size, both up and left/right.
Due to this movement and the way the screen is drawn the graphic of the player must
swap up and down to keep a correct display. To keep the display the test on hit
is done each movement but only the final test is done when the display is in
startposition or the next game can't start in the right way.
Memoryuse:
The game has 1 byte left to code.
A 1K game can load 949 bytes. The rest us needed by the loadingprogram and stack.
The game however uses 1023 bytes. This is done by expanding a compressed screen over
the not loadable memory. The program has some time before an intrupt occurs.
During this time the stack can be used to execute some code before the code is
overwritten by an intrupt. The program holds 2 lines of bricks compressed.
On the brickline the decompresscode is stored. A part is stored over the systemvariables.
The program has 2 displaybuffers. Both buffers can be used to store data as long bit 6
and bit 7 are not set. The first buffer holds data of space grpahic and the falling plater.
The second buffer holds a table to move graphics left or right. Instead of -1 (255) or 1
the values 0 and 2 are stored to prevent bit 6 or 7 set. To move a graphic 2 or 0 is added
to the x-position and then decreased by 1 resulting in x+1 or x-1.
Controls:
The controls mimic the original when possible.
Only to start a (new) game Newline is pressed. This could be done
with space but you might start a new game without knowing your score.
Each new live starts with space.
Left and right are O and P.
Left out from the original:
1K is not much. From the start it was obvious that a washline had to give way.
For long I had hoped to add the airco but the game needs the memory.
Animated graphics are left out too although a moving player is possible but left out.
Source: