1Kanoid - A 1k version of Arkanoid a public domain minigame by Paolo Ferraris (pieffe8@libero.it) For ZX Spectrum 16k/48k/128k/+2/... blah blah blah! This minigame does not work with hardware devices like Microdrive that change the memory address where BASIC programs are loaded. What is new in version 1.1 - L bonus added - level reported on screen - other visual improvements "Another Breakout game?!? There are probably dozens of implementations of Breakout game that fit in 1k." 1Kanoid would be better defined as an Arkanoid clone, as it includes some of its features. I consider Arkanoid as one of the most frustrating but fun game ever created. Frustrating because it is very difficult to play it. Fun because it has a lot of different levels and bonuses that make it not boring. I am still playing the CGA version of Arkanoid on my PC. The game controls for this minigame are: 6-left 7-right 0-launch the ball/shoot or a Interface II/Sinclair Joystick in port 1. The graphics are very simple. No score. The number of lives is reported in the top right of the screen, along with a letter from A to P that indicate the level. The 16 levels are similar each others, but are of increasing difficulty. The blocks have different colors that indicate how many times they have to be hit to be destroyed. A destroyed block may release a letter that, if collected, gives you a bonus: P - an additional life S - slow down the speed-increasing ball H - an exit opens on the right. That brings to next level. C - the ball doesn't bounce on the ship (well... stick), and will leave the stick after 5 seconds or after pressing 0 E - the ship/stick becomes wider. L - your ship can shoot to destroy bricks Note that the effects of C,E and L are lost once you get another bonus. No other letters is released once H has been collected. The V bonus, the 3 balls one, there was no way to fit it in 1k :-( The difficulty level is not too hard if you master the original Arkanoid. In any case I hope you enjoy the game for a few minutes :-) This is probably the biggest(!) program for the Spectrum that I wrote in assembly. Well, the fact is that I never had a good Z80 assembler while I was using a real Spectrum. Cross compilers are great! dotathon - entry for 2002 Minigame Compo Public domain by Russell Marks (rus@svgalib.org) for 48K/128K Spectrum (NB: It won't work if a Microdrive or any other additional hardware which effectively moves PROG is being used. So don't do that.) dotathon is a simple tunnel-following game, a bit like the first bonus stage in Tempest 2000. The aim of the game is to keep inside the tunnel of dots. :-) More precisely, you have to keep the centre of the screen within the squares which keep advancing towards you. Admittedly, they don't look much like squares; only the four corners are shown. You get 3 lives - these aren't indicated onscreen, but the edge of the screen turns red when you lose one. Lose them all and it's game over, and at this point you finally get to see your score. (Your score is increased once for each square successfully passed through, with the score increase going up each time until you lose a life.) The controls are: Q up A down O left P right When running the game on an emulator, be sure to either use a fullscreen mode, or as large a window as you reasonably can. Those single pixels can be a bit hard to see otherwise. :-) Also, do load the game in 128 mode if you can. It has some simple but fairly effective AY sound effects. Known bugs: - you can probably still get the odd bit of flicker, but I think I managed to fix the worst of this. - the collision detection (so to speak) is reasonably generous, partly since "centre of the screen" is a fairly vague description. :-) -Rus. PS. The source, suitable for assembly under Unix/Linux using zmac, is here in src.tar.gz. easyfrog - entry for 2002 Minigame Compo Public domain by Russell Marks (rus@svgalib.org) for 16K/48K/128K Spectrum (NB: It won't work if a Microdrive or any other additional hardware which effectively moves PROG is being used. So don't do that.) easyfrog is a minimalistic Frogger clone, which is much too easy (hence the name). The aim of the game is simple - get your frog across the road and the river. Making it over the road is simple enough, just avoid the cars. But apparently you're some kind of hydrophobic frog, and you have to ride on the logs to cross the river. Once you get past the river, you should jump the frog into a vacant `home' (blank square). If you fill all four homes, you get another level to try. You get 3 lives, though these aren't indicated onscreen (sorry). If you lose all of them it's game over, and the edge of the screen turns red for a couple of seconds before a new game starts. The controls are: Q up A down O left P right These do auto-repeat if you hold them down, but I wouldn't recommend doing that, it doesn't work very well. Known bugs: - if you dive the frog into the water, missing the logs, it (before dying) follows the log movement for one `frame' even though it's not actually on a log. - the .tap file is big enough that I'm relying on `metadata' (the tape header) not counting towards the 1k total. I'm pretty sure that this is unofficially the case, but I don't think it was mentioned in the competition rules etc. last time I checked. - it's much too easy. But you know that one already. :-) -Rus. PS. The source, suitable for assembly under Unix/Linux using zmac, is here in src.tar.gz. pobble 1k - entry for 2002 Minigame Competition Public domain by Dominic Morris (dom@rst38.org.uk) for 16/48/128/blah Spectrum NB. It won't work if a Interface 1 or any other hardware which moves PROG is being used pobble 1k is a simple puzzle game where the aim is to get three balls in a straight row whilst fighting the rising waters (or arrows as the case maybe!). The display is easy to understand, with textual representations of the score, level, required rows and lives. The game will continue until all of your lives are used, it will then exit to BASIC. You can restart it using RUN should you so desire. Player keys are: Q = left P = right M = drop stone The motivation for this game was to come up with something more original than the Sokoban and Tron games I came up with before hitting on this idea. I've got a few more ideas in mind, though Frogger has bitten the dust since Russell did Easyfrog. Source is supplied suitable for assembly with z80asm (see http://z88dk.sf.net) Thanks to Russell Marks for making the .TAP converted used Enjoy, d. Sinclair Spectrum The games are stored in a TAP file, with a game menu. Press a key to load the corresponding game. Some games might work on 16K or 48K Spectrums, but benefit from the better sound capability in the 128K, so try to emulate that if possible. Windows The recommended emulator is ZX-32, ftp://ftp.worldofspectrum.org/pub/sinclair/emulators/pc/windows/zx32/tests/zx32th02.zip Unpack it to a directory and start zx32.exe. Select ZX -> Open... in the menu. Doubleclick on spectrum.tap to start the menu. Unix The recommended emulator is Fuse, http://www.srcf.ucam.org/~pak21/spectrum/fuse.html MacOS Try MacSpectacle, http://emulation.net/zx/ Amiga The recommended emulator is X128, http://www.lagernet.clara.co.uk/x128.html Unpack the emulator and the rom files in the same directory. If your Amiga is slow set frameskip to 2 or more (using X128Prefs) to speed things up. After having started the emulator, press F7 to select the .TAP iimage and then select "Tape loader". The menu will load, press a number to select a game. F4 lets you select joystick type for those games that support a joystick. F10 exits the emulation. samegame 1k - entry for 2002 Minigame competition Public domain by Dominic Morris (dom@rst38.org.uk) for 16/48/128/etc Spectrum NB. It won't work if a Interface 1 or any other hardware which moves PROG is being used Samegame is ermm, a stone matching game. You can match 2 or more stones together and they vanish and the board scrunches up. The aim is of course to get rid of all the stones and get the highest score. Player keys are: Q = up A = down O = left P = right M/SPACE = select the highlit stones G = restart game Sorry no sound effects this time and yes, that is the same stone graphic as for pobble 1k! But(!) you do get a rather funky(!) font thrown in. Okay, the motivation for writing this game was that I love SameGnome and have been known to play it for far too long when I should be doing other things (simple games always get me hooked!) Source for the game is in a format suitable for z80asm (http://z88dk.sf.net) Enjoy! d. Shisen1K - A 1k version of Shisen a public domain minigame by Paolo Ferraris (pieffe8@libero.it) For ZX Spectrum 16k/48k/128k/+2/... blah blah blah! This minigame does not work with hardware devices like Microdrive and Interface 1 that change the memory address where BASIC programs are loaded. What is new in version 1.2 - Fixed a bug introduced in version 1.1. That caused improper reinsertion of tiles with the back command, in the non-gravity variant. What is new in version 1.1 - Shisen1K now hilights all tiles of the same kind of the one under the cursor (that's for compensating the fact that in the real Shisen tiles are more distinguishable) - Sound effects, when removing two tiles, added Shisen is a game similar to Mahjongg, and it uses the same tile set. The goal of the game is the also same: remove pairs of tiles of the same kind. What changes is the removal criteria. A pair of such tiles can be removed only if they can be connected by at most three horizontal and vertical lines. The gravity variant is implemented also. With gravity, tiles fall down when a tile below them is removed. Shisen1K starts with gravity. Shisen1K differs from the original game in the tile sets - alphabet letters - and in the board size: 14x6 tiles instead of 18x8. The main keys are (the key combinations for the 40-keys Spectrum 16/48k are reported in parentheses) four arrows (CAPS+5,6,7,8) : move the cursor ENTER : select the tile under the cursor H : show available moves - see below To remove two tiles, select them in sequence. To deselect a selected tile, just press ENTER on it again. Each time 'H' is pressed, a different pair of tiles that can be removed is shown, until there are no pairs left. Pressing ENTER when a pair is shown removes such pair. If 'H' is pressed when a tile is selected, only pairs that contain that tile are shown. There are various commands to start a new game N : start a new game backspace (CAPS+0) : toggle the gravity on/off and start a new game S : choose a seed Each board is generated by a seed - a number between 1 and 65535 inclusive. The seed of the current board is shown on the screen. The board generally is chosen randomly, but with 'S' you can choose the seed. That is useful if you want to try the same board in different days: just write the number down and insert it another time. Note that writing 0 as a seed indicates a random seed. Shisen1K remembers all removals done so far, and allows to go back and forward these moves. The keys that can be used for that are B : back F : forward R : restart (i.e. all removed tiles go back on the board) L : last move (i.e. remove all "re-placed" tiles again) Note that using these keys is considered cheating. The border color changes to give some information. Cyan : (no message) White : you won! Black : sorry, no moves left Red : you cheated! I hope you will enjoy the game for at least a few minutes :-) - A few notes about the development of this minigame. I know Shisen since the '80s (from a coin-op) and I like it more than Mahjongg. I first implemented the game for PC in QuickBasic in text mode about ten years ago. Last year I saw an implementation of the game (the best, in my opinion) for KDE. Then I decided to write it again for the 2002 minigame compo. My initial idea was to implement the basic features and fill the remaining memory with tile pictures, but the space left was enough for small pictures only. I then decided to use alphabet letters and fill the remaining space with additional features, like the back/forward commands and a very basic help system: only one move. The program was exactly 1024 bytes, but some code rearrangments allowed me to save 100 bytes! The audio routine for the 128k version that I tried to write at this point was too big and then discarded. Then the gravity variant, that is present in the KDE implementation, came into my mind. I decided to implement it into a separate 1k program, but 1024 bytes were enough for mode toggling code also, so that a single program contains both versions. Finally, further optimizations allowed me to complete the help system as it is now and add the seed choosing. Snake1K - A 1k version of Snake Race a public domain minigame by Paolo Ferraris (pieffe8@libero.it) For ZX Spectrum 48k/128k/+2/... blah blah blah! Does not work on the Spectrum 16k. This minigame does not work with hardware devices like Microdrive and Interface 1 that change the memory address where BASIC programs are loaded. Snake1K is a 1k version of Snake Race, a snake clone developed for KDE. You are a snake that has to get all apples on the screen and pass through the exit door. Beware the other snake that moves randomically and the bouncing ball! If you hit any wall, your tail, (that becomes longer every time you get an apple) the other snake or the ball, you lose a life. You lose a life if the head of your snake gets hit by the ball as well. A bar on the right of the screen indicates the time left. When time is over, more apples appear, and if the exit is open, it closes! There are eight different levels i.e. 8 different wall positions. Put a Sinclair joystick in port 1, or use a Interface 2 joystick. The four directions control your snake. If no joystick is available, the controls are: 6 - left 7 - right 8 - down 9 - up Enjoy soliyawn - entry for 2002 Minigame Compo Public domain by Russell Marks (rus@svgalib.org) for 16K/48K/128K Spectrum (NB: It won't work if a Microdrive or any other additional hardware which effectively moves PROG is being used. So don't do that.) soliyawn is a version of the Solitaire (or Klondike) single-player card game. It uses the (easier) 1-card draw variant. After writing ztrack 1k I thought it might be nice to try something a little more sedate - so I decided to try writing Solitaire after looking at the 2001 entries, where (apparently) no-one entered any card games. But a card game was bound to look incredibly boring up against all the other entries, hence the name. :-) The aim of the game is to get all the cards in each suit onto the matching ace pile, in ascending order (with aces low) from ace to king. To help you do this, you can move cards onto/between the seven main runs of cards which are dealt when you start. Any face-up cards on those must be in descending order (K, Q, J, 10, ... 2), and have alternating red/black suit. When moving cards between the main `piles', you can only move entire runs (every face-up card on the `pile'). When moving to a main `pile' which has no cards at all, you can only move a king there (or the top card of the run you're moving must be a king). The display is laid out in the following way: main card piles deck aces Initially you can't see the ace piles, as you have to move an ace to them before there'll be anything there. :-) The controls are: Enter turn over a card from the top of the deck (if the deck is empty, it flips the turned-over cards back onto the deck first). 1..7 or D pick a card (or run) to move from the numbered pile or the deck (actually the topmost turned-over card). Once you've pressed this key, you then choose where to move it, with 1..7 and A meaning either the numbered pile, or the relevant ace pile. If you attempt a move which isn't allowed, you'll get beeped at. Caps-shift+R restart - abandon the current game, and reshuffle/deal from scratch. (In most emulators Caps-shift will be on the main shift key(s).) There's one known bug - the game lets you move aces onto 2s on the main piles. This is harmless, but strictly speaking I don't think the rules allow you to move aces between the main runs. Though I could be wrong. :-) -Rus. PS. The source, suitable for assembly under Unix/Linux using zmac, is here in src.tar.gz. spectris - A 1k version of Tetris for ZX Spectrum a public domain minigame by Paolo Ferraris (pieffe8@libero.it) For ZX Spectrum 16k/48k/128k/+2/... blah blah blah! A Spectrum 128k or better is strongly suggested for music playback. If not available, a Spectrum 48k is suggested: the Spectrum 16k would not show the reversed 'R'. This minigame does not work with hardware devices like Microdrive and Interface 1 that change the memory address where BASIC programs are loaded. The tune is taken from Renzo Arbore's Cacao Meravigliao, a song and a fake commercial in a Italian TV show, Indietro Tutta. What is new in version 1.1 - music gets faster when the pile of pieces is very high I think that an explanation on what is Tetris is probably not necessary. Pieces fall down. You can move and rotate them to fill rows that are then removed. Game is over when the screen is full. The block that will fall next is shown on the right. In this implementation, each time 5 rows are removed, the pieces start falling faster, for a total of 20 different speeds/difficulty levels. While the the speed in the first levels is very similar, last levels are *VERY* difficult. The joystick commands (Interface II or Sinclair port 1) and corresponding keyboard keys are: left or 6 : move the falling piece left right or 7 : move the falling piece right fire or 0 : rotate the falling piece down or 8 : move the falling piece down If we exclude the down movement, holdind the joystick in a direction doesn't bring to multiple movements. You have to release the joystick between each movement. ENTER starts a new game. I hope you will enjoy the game for at least a few minutes :-) - A few notes about the development of this minigame. This is the fifth implementation of Tetris in two years of minigame compo. I generally choose games not implemented yet in the compo, but this is not the case. The main reasons are the following + I never implemented Tetris before + As far as I know, no other Tetris minigame implementation has music + I wanted to use my music and sound routines in some minigame, and Tetris leaves enough memory space for them. + When I started writing this minigame, no other Spectrum minigame was using the AY sound chip. I am not an expert of AY-music, and I tried to get the most I could from a single channel music. If any of you have suggestions I would be happy hear them :-) ztrack 1k - entry for 2002 Minigame Compo Public domain by Russell Marks (rus@svgalib.org) for 16K/48K Spectrum, or 128 in 48K mode (NB: It won't work if a Microdrive or any other additional hardware which effectively moves PROG is being used. So don't do that.) ztrack 1k is a crude "3D" driving game (based on an old text-mode game I wrote for Unix/Linux), which has graphics so chunky an Atari 2600 would cough slightly and shuffle its feet. :-) You drive along a straight three-lane road, and gradually accelerate to your maximum speed (so there's no accelerator key). The aim of the game is to keep going for as long as you can without crashing into the other cars (those being the funny yellow blobs). When you crash, the border turns red for a little while, then you start again from scratch. The display should be pretty easy to understand, but I should probably point out that the little squiggly bits at the bottom of the screen (on the left and right) are meant to be your wing mirrors. When a car is visible in one of those, it means they're parallel with you, so turning that way will result in a crash. The controls are: A brakes O left P right As I say, it is crude - there's no score or speed display, and the computer cars have an alarming tendancy to go straight through each other. (!) But hey, if it fits in 1k it can't be too bad, right? :-) -Rus. PS. The source, suitable for assembly under Unix/Linux using zmac, is here in src.tar.gz.