Skip to content

Commit

Permalink
Import Tile World 2 to repo.
Browse files Browse the repository at this point in the history
  • Loading branch information
Qalthos committed Apr 14, 2012
0 parents commit 2b85cc7
Show file tree
Hide file tree
Showing 116 changed files with 25,719 additions and 0 deletions.
51 changes: 51 additions & 0 deletions BUGS
@@ -0,0 +1,51 @@
Contents

* Bugs in the MS game logic emulation
* Bugs in the Lynx game logic emulation
* Other bugs and misfeatures
___________________________________________________________________________

Bugs in the MS game logic emulation

* There are numerous situations in the MS game that cause a moused goal to
be cancelled for which TW will keep trying. A clearer understanding of
those situations is needed.
* The MS game checks for input more than once per tick. Probably this was
done to catch last-minute keyboard events, but it has the effect that by
having more than one input event in the queue, Chip can, under certain
circumstances, have the latter keystroke processed after he has moved but
before any other creatures move.
* In TW, the keyboard is scanned twice per tick, once at the beginning and
once in the middle. As a result, if Chip makes a move at the beginning of
a tick, the game does not update the display twice in a row (once after
the creatures move and once after Chip moves), but just does it once. I
do not believe that this optimization has a real effect on the gameplay.
It does, however, make it easier to examine the screen when pushing
against a force floor.
* There are a number of miscellaneous emulation bugs, mostly involving
"illegal" tile combinations. These are documented more thoroughly in the
msbugs.txt file on the website.
___________________________________________________________________________

Bugs in the Lynx game logic emulation

* Under the real Lynx game it is possible to push a block diagonally
without moving at all. This is done by pushing against a wall, and then
pushing diagonally against a neighboring block very briefly. The block
will get pushed, but Chip doesn't follow. This is impossible to do in TW.
* Under the real Lynx game it is possible, with carefully constructed
circumstances, for Chip to push a block away from him as it's heading
towards him. That is, a block starts moving into the square that Chip
occupies, but in the same frame, Chip starts pushing the block in the
opposite direction. This is impossible to do in TW.
* There are a number of miscellaneous emulation bugs, mostly involving Chip
being stuck on teleports. These are documented more thoroughly in the
lxbugs.txt file on the website.
___________________________________________________________________________

Other bugs and misfeatures

* TW ignores field 8 entries in the .dat file unless they are exactly five
bytes long. In this case, it simply ignores the field 6 password. The MS
game will remember both passwords and allow either one to be used
(although if both are present it will only show the field 8 password).
339 changes: 339 additions & 0 deletions COPYING

Large diffs are not rendered by default.

403 changes: 403 additions & 0 deletions Changelog

Large diffs are not rendered by default.

286 changes: 286 additions & 0 deletions README
@@ -0,0 +1,286 @@

Welcome to Tile World

Tile World is an emulation of the game "Chip's Challenge" for the Atari
Lynx, created by Chuck Sommerville, and later ported to MS Windows by
Microsoft (among other ports).

Important Note

Tile World is an emulation of the "Chip's Challenge" game engines only. It
does not come with the chips.dat file that contains the original level set.
That file, which is copyrighted and cannot be freely distributed, was
originally distributed with the MS version of "Chip's Challenge". If you
have a copy of this version of the game, you can use that file to play the
original games in Tile World. If you do not have a copy of this file,
however, you can still play Tile World with the many freely available level
files created by fans of the original game.

Installing Tile World under Windows

First of all, you'll want to store the files contained in this archive into
its own separate directory. If you're using the self-extracting executable,
you can create a new directory during the installation. Otherwise, you'll
need to create a new directory beforehand -- something like c:\tworld --
and extract the files in there.

If you have a copy of the chips.dat data file, copy it to the data
subdirectory. This will allow you to play the original levels under Tile
World (for the MS ruleset and the Lynx ruleset both).

If you have other data files that you would like to try out in Tile World,
copy those to the sets directory.

The shell commands to do the above would look something like:

cd c:\wherever\my\copy\of\chips\challenge\is\at
copy chips.dat c:\tworld\data
cd c:\my\collection\of\dat\files
copy *.dat c:\tworld\sets

That's all that needs to be done to set it up. Run the program as
c:\tworld\tworld2, or create a shortcut for it.

Installing Tile World under Linux (or building from source on Windows)

Tile World 2 has not yet been extensively tested on Linux.

The build system at this point is not extremely robust, consisting of
only a hand-written makefile for GNU Make and no configure script.

(Efforts are underway to improve upon this, and to possibly also provide
pre-compiled binary packages for some flavors of Linux.)

Before proceeding, ensure that you have Qt 4 and SDL installed on your machine.
(If you don't have SDL, you can get it by visiting
http://www.libsdl.org/download.html. If you download a precompiled version
-- i.e., an .rpm or .deb file -- note that you will need the development
runtime, as opposed to the binary runtime.)
Tile World has been tested with Qt 4.5.3, although Qt 4.4 should also work.
Earlier versions of Qt may not work.

Installing Tile World involves the following steps:

Assuming that the Qt and SDL development libraries are properly installed,
the makefile will try to figure out the necessary flags internally by calling
qmake and sdl-config.

If the environment variable QTDIR is set, then $QTDIR/include and $QTDIR/lib
will be used instead of calling qmake.

For Windows, it is necessary to set the environment variable SDLDIR to the
location where SDL is installed, and to set OSTYPE=windows.

make

There shouldn't be any serious warnings from the compiler. Use "make
mklynxcc" if you want to also build a copy of mklynxcc (see below).

For Windows, mingw32-make must be used and the default Command Prompt (cmd)
is assumed, not the MSYS shell.

make install

Running "make install" as root will do the following:

* Copy the tworld2 binary to /usr/local/games.
* Copy the tworld2.6 manpage to /usr/local/man/man6.
* Create /usr/local/share/tworld if it does not exist.
* Copy the external resources (i.e., the bitmaps and wave files) to
/usr/local/share/tworld/res.
* Create the directories /usr/local/share/tworld/data and
/usr/local/share/tworld/sets.

Running "make install2" instead will copy only the binary and manpage,
which is sufficient for upgrading existing installations of Tile World.

The sets directory is where you will generally store the .dat files that
you want to use. However, if you want to make use of a configuration file
with a particular data file, then you will need to store the data file in
the data directory, and the configuration file goes into the sets directory
instead. See the documentation for more information.

Level Sets

As mentioned above, the original "Chip's Challenge" level set does not come
with Tile World, for reasons of copyright. If you do not already have a
copy of Microsoft's Windows version of "Chip's Challenge", you might still
be able to find a copy. Search the links listed below, under "Resources on
the Internet", for helpful hints on finding the game online.

If and when you do, you can copy the chips.dat file from there into Tile
World's data directory. You will then be able to play the levels of the
original set (both in MS mode and in Lynx mode).

There are also many "user-created" level sets. These are sets of levels
which have been invented by fans of the game. These sets are freely
available for downloading. If you have a .dat file that contains a level
set and you wish to use it, just copy it to Tile World's sets directory.
The next time you start Tile World, the new .dat should appear in the list
of available level sets.

At http://groups.yahoo.com/group/chips_challenge/files/ is a repository of
the available level sets that have been created. The biggest fans of the
game try to provide a copy of every known user-created level set at this
place. I have not included any of these level sets in this distribution, as
the authors continue to add new levels to their sets over time.

Actually, this distribution does contain one small level set. This is
included so that even if you don't have the original level set, you can
still get a brief glimpse of how the game works, and what some of the most
basic challenges are. Also, the same set of levels can be played with both
the MS and Lynx ruleset, so you can see how they differ.

Finally, there are some special level sets that deserve particular mention.
They are CCLP2.dat and CCLP3.dat, or "Chip's Challenge Level Pack 2 and 3".
These sets were assembled by the fans, who voted on all of the user-created
levels that existed at the time when each was compiled. The levels that were
voted as being the most fun were then all put together. They are the closest
things we have to sequels for the original game.
(But be careful: they are both much harder than the original!)
You can download a copy of Tile World with these sets already
installed. If instead you download them separately, you will want to store them
in your data directory instead of your sets directory. (This is because
Tile World comes with special configuration files for CCLP2 and CCLP3.)
Note that only some levels in CCLP2 can be played under the Lynx ruleset.
CCLP3, on the other hand, had compatibility with both rulesets as a criterion,
and hence all of its levels can be enjoyed in the ruleset of your choice.

The Complete Documentation

The full documentation for Tile World is included with the distribution, in
the file tworld2.html. There you will find information on how to play the
game, adding new level sets, customizing Tile World, and more.

Creating New Level Sets

The most widely used program for creating new level sets is ChipEdit. It
comes with excellent documentation, and you should have little trouble
learning how to use it. Some other editors have recently been made
available, such as CCEdit and Chip's Workshop.

Normally, ChipEdit creates levels for the MS ruleset. If you wish to make a
level set for the Lynx ruleset, you have a few options:

* A very simple command-line utility is included with Tile World, called
mklynxcc. This program will change a normal .dat file to one that will
use the Lynx ruleset instead of the MS ruleset. Running mklynxcc foo.dat
will change foo.dat's ruleset from MS to Lynx.
* You can use a configuration file to override the builtin ruleset. This
method requires creating an extra file, but does allows you to avoid
making changes to the .dat file. See the complete documentation for
information on how to set up a configuration file.
* Finally, ChipEdit has an obscure feature which allows you to control the
signature of the data file. This is done by adding a SIGNATURE entry to
the chipedit.ini file. The default signature value is 0x0002AAAC, which
indicates a data file that uses the MS ruleset. If you set the SIGNATURE
to be 0x0102AAAC, then ChipEdit will create data files marked to use the
Lynx ruleset instead.

Resources on the Internet

There is quite a bit of information about "Chip's Challenge" available on
the internet. Much of it is focused on maximizing your score on the
original level set for the MS game, but you will also find lots of general
help and useful information as well.

Jimmy Vermeer maintains a site that tracks people's scores on the original
level set and CCLP2, as well as information on other levels and links to
many other pages. (But it hasn't been updated in a long time.)

http://www.geocities.com/purpletentacle1977ca/

Mike L's Chip's Challenge hosts CCLP2 and CCLP3 and has links to almost
every custom level set available.

http://www.pillowpc2001.net/

Anders Kaseorg's site contains the Chip's Challenge FAQ, as well as the AVI
repository and a web interface to the newsgroup:

http://chips.kaseorg.com/

The grand repository of user-created level sets can be found at the
chips_challenge Yahoo group:

http://groups.yahoo.com/group/chips_challenge/files/

ChipEdit's home page is at:

http://www.stage62.com/chipedit/chipedit.htm

Finally, the original Tile World home page is at:

http://www.muppetlabs.com/~breadbox/software/tworld/

This latest version - Tile World 2 - is being maintained at:

http://madhavshanbhag.sitesled.com/Landlubber/TileWorld/index.html

License

Tile World is copyright (C) 2001-2010 by Brian Raiter and Madhav Shanbhag.
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your option)
any later version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License,
included in this distribution in the file COPYING, for more details.

Bugs

Bug reports are always appreciated, and can be sent to Madhav Shanbhag at
CrapulentCretin@Yahoo.com. The list of known bugs is at
http://www.muppetlabs.com/~breadbox/software/tworld/BUGS.html. Please check
here before sending a bug report, to to make sure the bug has not already
been documented.

Credits

Tile World was written by Brian Raiter.

Tile World 2 - which simply improves upon the user interface of the original
Tile World program - was developed by Madhav Shanbhag.

The sound effects included in this distribution were created by Brian
Raiter, with assistance from SoX. Brian Raiter has explictly placed these
files in the public domain.

The tile images included in this distribution were created by Anders
Kaseorg, with assistance from POV-Ray. Anders Kaseorg has explicitly placed
these files in the public domain.

The introductory set of levels included in this distribution were created
by Brian Raiter. Brian Raiter has explictly placed these levels in the
public domain.

Thomas Harte and Michael Hansen have developed Mac OSX ports of Tile World and
Tile World 2 respectively.

Thanks to "The Architect" for his corrections to the font bitmap file.

"Chip's Challenge" was designed by Chuck Sommerville, who is also the
author of the original Lynx program.

"Chip's Challenge" is a registered trademark of Alpha Omega Publications.

Creating this program would have been flatly impossible without the help of
several fans of "Chip's Challenge". The author would particularly like to
acknowledge Anders Kaseorg for sharing the fruits of his investigations
into the game logic of the MS version and for being an effective bug
hunter, Chuck Sommerville for his pointers regarding the game logic of the
Lynx version and his unfailing support of this project, and "CCExplore" for
his in-depth investigations of esoteric game behavior.

Many other regulars of the annexcafe.chips.challenge newsgroup assisted
with bug reports, suggestions, and all-around encouragement. Their help is
gratefully acknowledged.

The anonymous author of the document describing the .dat file format, Don
Gregory, the "Charter Chipsters", and the contributors to the CC AVI
library all deserve mention as well -- this program would never have been
written without the information they made freely available.

Last but not least, a tip of the hat to John K. Elion for writing ChipEdit.

0 comments on commit 2b85cc7

Please sign in to comment.