A tile game for the Amstrad CPC. If you like 2048, tetris, coloris,
color flood, you’ll like it.
Features
a gameplay based on alignment of tiles, which changes when tiles
disappear, letting new ones fall and fill the gaps
rich dynamics making gameplay entertaining as you progress in
skills
play with joystick or keyboard (arrows and two-hand options)
a big colourful playfield (vertical overscan 256x256 instead of the
normal 320x200)
animation at solid 50Hz
music
digitised speech!
a few bells and whistles to be discovered…
Direct credits (see more credits below):
project, coding, text, video, by cpcitor
music by The Other Days
How it looks like
Why this game?
This game is really interesting to play. Its rules are simple, but
result in rich dynamics.
To progress towards the goal, at each move the player select a tile
of a “domain” (group of at least two tiles of same value). This tile
increases value and the rest of the domain disappears, making room for
new random tiles from the top.
An important part of how the player can influence the game is that
the player chooses which tile of the domain they play, which decides
where the new tile appears and where disappearing tiles cause other
tiles to fall, creating new opportunities for aligned tiles of the same
value -> new groups.
This makes possible to “clear out” obstructing tiles in various ways.
Watch out not to “break” interesting domains by removing tiles under
some parts.
First moves are really easy and provide a quick intuitive
understanding, yet difficult gradually increases, maintaining a nice
level of challenge and thinking all along.
Joystick, keys and other
inputs
To play, you only need the usual “directions” and “fire”, plus an
“exit” option.
↑↓←→ Move
● Action
□ Exit (pause game)
In practice, you may play using:
joystick 1
joystick 2
arrow keys + copy or space or enter
I also thought of keyboards aficionados, being one myself. Some
traditions exist of using specific keyboard schemes. Whatever scheme you
might prefer you should be able to find something suitable to you by
combining the elements below (more about the variety
of keyboard schemes in general):
action with COPY, space bar, RETURN,
ENTER, Y (for “yes”) or G (from
Amstrad’s definition of joystick 2)
left hand up/down with DC (or perhaps 65
from Amstrad’s definition of joystick 2)
right hand up/down with OK (or maybe
UN)
left hand left/right with VB (or RT from
Amstrad’s definition of joystick 2)
right hand left/right with HJ
“diamond” UNHJ
ZX-style line 4567 (where 56 are from
Amstrad’s definition of joystick 2)
Here’s the same information as above, but drawn on a CPC6128 keyboard
layout diagram:
From
a disk image file to a real or emulated CPC accessing it.
Many options. You can:
get a CPC emulator for a modern machine (outdated lists on cpcwiki or
Wikipedia),
insert the image as virtual disc,
easiest on hardware through the audio cable described in
the audio section to instruct a real CPC to create a real disc from the
image with dsk2cdt2disc – tested
with a CPC-6128, might also work with a CPC464+DDI1+pseudo-tape.
or easy but needs a modern device, transfer to a
storage like a SD-Card then use HxC, M4 or other
to let the CPC access the card,
or plug a CPC drive to a PC (needs a flat ribbon
cable, see
Connect a 3 inch drive to a PC - CPCWiki) and with this drive
transfer the image to a real CPC-style 3-inch disk (via Linux commands
like dd), then you can read the disk with a real CPC
Run intro then game
To run the intro section, type this:
run"cpcitor
Press any key during the intro to skip to the game.
Run only game
To go straight into the game:
run"justget9
You can also transfer the image to a real floppy disk, but that’s
beyond this text.
Tape
images: justget9_1000baud.cdt and
justget9_2000baud.cdt
Tape images are primarily meant to be used with a CPC emulator.
Once you have a CPC running in an emulator, type:
run"
If the emulated CPC has a disk (disc) drive you will need this
variation:
|tape
run"
If the emulated CPC has a French keyboard and a disk (disc) drive,
use this variation:
ùtape
run"
You can also convert those images to audio files. See below, I
prepared audio files so that you don’t have to!
For
transfer to a real cassette used in a CPC464:
justget9_1000baud.wav
This is an audio file of duration 3 minutes 42 seconds.
Use the jack output of a modern machine (PC, smartphone, etc) and
any decent consumer-grade audio cassette recorder to transfer the audio
from the WAV file to an audio cassette.
Put the audio cassette in a CPC464.
Type:
run"
If the CPC has a disk (disc) drive you will need this variation:
|tape
run"
If the CPC has a French keyboard and a disk (disc) drive, use this
variation:
ùtape
run"
You can use justget9_2000baud.wav which is twice
faster, but less reliable. CPCs are old and some will work only with
1000baud version.
For cable
transfer to a real CPC: justget9_2000baud.wav
This is an audio file of duration 1 minutes 55 seconds.
Real CPC6128: if you have a special jack-to-CPC-DIN cable, then plug
the jack side on the sound output of a modern machine (PC, smartphone,
etc) and the DIN side to a real CPC 6128, and play the audio file at
fairly loud volume.
Real CPC464: if you have a pseudo-cassette with a cable ending with
a 3.5mm jack, put it in a CPC464.
If the CPC has a disk (disc) drive, type:
|tape
run"
If the CPC has a French keyboard and a disk (disc) drive, use this
variation:
ùtape
run"
In the case of a plain CPC464 without a disc drive, use this:
run"
Questions
Q: Can I disable all screen shaking?
R: Yes, disable the sound effects, it will also disable the screen
shaking.
Tech corner
This game follows color-flood-for-amstrad-cpc.
Like its predecessor, it is written mostly in C, with the time-critical
pieces written in assembly.
F.Gallego(lronaldo) for understanding the power of
cpc-dev-tool-chain and forking it into CPCTelera,
C.Pitrat, Sebhz for Caprice32,
J.Nevo(Thargan) for ArkosTracker2,
C.N.Gonzalez(CNGSoft) for CPCEC,
Canonical for Ubuntu font,
Author of public domain X11 font “fixed”,
C. Robertson for Roboto font,
Roudoudou for Rasm,
Norecess for an early report on SDCC on CPC and his cpcec-plus
tracing Z80 code with symbols,
Borilla for borilla.co.uk/z80.html,
Z80Heaven for the Z80 reference
C.Robertson for Roboto font,
M. Lind for Exomizer,
J.T.Gomez (Metalbrain) for deexo,
CraigsBar for feedback and test, especially video, HDMI setup,
GX-4000
Also greetings to: Siko, Benediction, Impact, Bread80, Redbug,
Devlin, Logiker, evolutional, Logon, Batman Group, p0ke +all Shadow
Party staff, Bryce@CPCWiki, Bruce Abbot, Reidrac, Optimus, Gunhed,
Brundij, andycadley, Pulkomandy, norecess, Siorki.
Copying
As the creator of this program and its encoded forms (zip archive
containing disk image, tape image, audio file) I give permission to
anyone, anywhere, at any time, to:
copy and distribute the original zip file free of charge, by any
means,
include the game along with metadata in
databases/catalog/ftp-site/etc of CPC-related, retro-related,
demoscene-related or more generally, catalog of artefacts (e.g. online
encyclopedia), in the form of the original zip file, along with text
that may or may not include part of this README file, ensuring proper
credits, and images included in the zip file and/or high-quality
screenshots from an emulated run or a real CPC.
it is permitted that the database/catalog offers distribution
(e.g. listing, download) of individual artefacts (disk image, tape
image) if the original zip file is offered among the other options.
if the distribution process requires short names (8+3 characters) it
is permitted to shorten the name of the zip file to
justget9.zip
it is permitted (although not recommended) to create another archive
file by uncompressing the zip file in a directory and recompressing the
directory content with another archive program like 7z, if decompression
programs for the resulting file are publicly available under an
open-source licence and widely distributed on major platforms and
portable on other platforms, and use/distribute the resulting archive
instead of the original zip files.
Source code
I’m considering releasing the source code with an Open Source
licence, which will provide you with additional rights.
If you don’t find it easily on the net, please ask for it through the
channel where this file came, or figure out how to contact me.
Version information /
Changelog
This is release “patch 3”.
Below, @username
mentions are references to https://www.cpcwiki.eu/forum users.
Changes in “patch 1”
When you reach 9 (or higher), the background of the “you win” text
is now darkened for more readability. (Thanks @roudoudou for noticing the reduced
readability.)
The button to start playing is no longer labelled “PLAYGRID” but
“PLAY”, or “GRID” when game is over. (Indeed you can see and study the
grid as will, after game is over before starting a new game.) (Thanks
Didier, @eto, @Logiker for reporting the
wish to change wording.)
Fix broken link in this very README file. (Thanks to Nicholas
Campbell from cpcgamereviews.com for reporting.)
Add section about copying.
Changes in “patch 2”
In-game menu explicitly offers to quit the current game.
In a number of circumstances, display current “achievement” as
discussed with @eto. It
is the value, number of moves and time since game beginning at the
moment of the highest tile obtained. Shown:
when a new number is achieved,
in the in-game menu,
in the “quit game?” screen
on game over
“How to play” page mentions that pressing “Esc” shows achievement
and menu.
Adjusted main menu layout.
Improved consistency of the user experience overall (e.g. the main
menu shows either plain background or last grid, but no remnant of
previous screen, “game over” display is the same whether it just
happened or you return to the grid).
In main screen without current game, pressing Esc screen advances to
next automatic screen, instead of starting a new game.
C part compiled with stronger optimisation level, yielding slightly
shorter code.
Minor manual cleanup, removed dead code.
Minor internal optimisations here and there.
Changes in “patch 3”
Mostly observable
The music played now depends on the game state instead of the level
achieved. This provides a more varied music experience. Thanks @Brundij for suggesting
“more music change”.
When displaying achievements (Esc or Fire 2 while playing), also
show current play time and move count, not only play time and move count
of reaching the highest tile so far.
Improved readability of overlays: style of the semi-transparency,
sometime its existence, position and size.
Slight modifications in tile appearance (anti-aliasing).
The cursor blinks with 2 different colours (or patterns) to ensure
contrast with the underlying tile in all situations.
Less observable
When reaching 9, between jingle and win music, while tile blinks,
regular music is muted
Video timings are now strict at all times, especially when the
screen is bouncing. This is important on some
LCD screens and Analog-to-digital video adapters which would count
that as a loss of input signal and output a black screen for a while
(thanks to @CraigsBar for reporting then testing my
experimental builds and to @roudoudou for hinting me about the
possibility of bouncing the screen while maintaining strict video
timings). For authentic original experience, you can enable the
old-style bounce by pressing L, and get back to strict
timing by pressing S.
The “P” key now has the same effect as “Esc” (P is pause button on
GX-4000). A number of other keys are actually motion keys, allowing
two-hands cursor control.
Fixed crash that happened due to music player jumping into to
uninitialised bytes, thanks @Brundij for notifying.
Fix by fully initialising to zero the bytes allocated to the music
player.
Fix appearance bug where playing on advanced level, progress report
popup would remain shown, giving sometimes a messy appearance as it
could be partially cut by a nearby column moving down. Thanks @CraigsBar for
notifying.
Smoother cursor motion in some cases, fix cursor not appearing fully
drawn for a frame or two. For example: cursor at bottom, hold key
up.
In demo mode when run automatically, fixed appearance bug where
sometimes the text would have bigger line interval.
Suppress the small sound that could be heard at the end of the
demo.
Fix a potential crash never observed due to cursor drawing routine
not restoring IX register.
In the 3D starfield intro (disk version), the stars have better
brightness distribution.
Menu page shows a faded grid if and only if a valid game grid still
exists in memory
Not observable but cool
anyway
Use updated music playing routine supplied by its author,
Targhan.
Compiled with an updated cpc-dev-tool-chain based on the latest
SDCC, version 4.4. It generates more compact assembly code.
Slight code optimisations here and there, saving dozens of
bytes.
Some code cleanup here and there, saving a few more unused
bytes.
Source code makes a git-hash-quality reference to the exact
cpc-dev-tool-chain used to compile it.
Reproducible one-step build, less dependent on exact system used to
build. Feel free to ask for the source code.