Zmiy - a snake game (like Nibbles) for DOS and 8086/8088 Copyright (C) 2013-2015 Mateusz Viste http://zmiy.sourceforge.net *** About *** Zmiy is a snake game designed for DOS and 8086/8088 processors. It's very small and pretty fast. Zmiy simulates graphics using a 80x50 text mode on VGA. If running on a non-VGA card, it will use the standard 80x25 mode. *** Controls *** Zmiy is entirely controlled via the keyboard. Key bindings are listed below: Arrows - Change the snake's direction Escape - Quit the game Enter - Pause the game (the 'P' key does the same) *** Scoring rules, lives & speed *** The scoring rules are simple: for every collected item, you get 10 points. When you hit an obstacle, you die. The number of lives you have depends on how much points you earned. A life costs 100 points. If, at the time of dying, you have enough points, then 100 points are deducted from your score, and you can replay the same level. If you don't have enough points, the game is over. The speed of the game is closely linked to your score. A bigger score means a higher speed. If your score decreases (because you loose lives), the speed will slow down. Note, that there is no speed change during the gameplay. The speed is computed at the begin of every level. *** System requirements *** Zmiy have very low requirements, but still, it needs at least: - an 8086/8088 CPU, - a CGA graphic card with a monochrome monitor (VGA and color recommended), - MS-DOS 2.0+ or compatible, - 30K of free conventional memory. *** Hardware timing vs. power saving *** As for most games, the gameplay quality of Zmiy is greatly impacted by the accuracy of how the game handles timing. A program usually achieves best possible timing by using a so-called 'busy loop', cycling the CPU whenever a delay is required. While this legacy method was successfully used by generations of programmers, it is far from being power efficient since the CPU must run at 100% power when the 'busy loop' is active. Zmiy tries to be power-friendly, and notifies the operating system during its 'wait' periods, so the OS can perform whatever power-saving operations (like issuing HLT instructions to the CPU). This can, however, lead to a 'jagged' playing experience on some systems. If you feel the game is laggy, or behaves erratically, you might want to try using alternative power-saving mechanisms. See Zmiy's help for available options (zmiy /?). *** Building from source *** The Zmiy game is written in ANSI C (89). It has been compiled using the Open Watcom v1.9 compiler. A makefile is provided to automatize the entire build process (simply type 'wmake' to launch the compilation process). *** License *** Zmiy is written by Mateusz Viste, and released under the BSD "2-clause" license, included below. Copyright (C) 2013,2014,2015 Mateusz Viste All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.