Bugs in the MS game logic emulation

  1. There are numerous situations in the MS game that cause a moused goal to be cancelled for which TW will keep trying, or vice versa. A clearer understanding of how the MS game handles moused goals is needed.
  2. 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. This is more noticeably an issue with the mouse, which seems to be processed differently than keyboard events in the MS game, but not in TW. Level 94 in EvanD1.dat, unsolvable in TW but not in the MS game, is a dramatic example of this.
  3. 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.
  4. There are a number of miscellaneous emulation bugs. These are documented more thoroughly in the msbugs.txt file on the website.

Bugs in the Lynx game logic emulation

  1. 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.
  2. 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.
  3. Tile World fails to emulate several situations where Chip starts out on top of something other than floor, and starts the level without moving. In the original Lynx game, if Chip is atop water, dirt, a blue wall, footgear, a key, or an exit, then if Chip doesn't move the tile takes effect immediately (with Chip dying, winning, or clearing or collecting the object). Tile World generally has tiles take effect when Chip enters them. (Note, however, that this is not a universal pattern: in the original game if Chip starts out on fire, a bomb, or a chip, then the tile does not take effect until Chip leaves and reenters.) Unfortunately, the community is loathe to see these issues addressed, as various user-created levels now exist that depend on the current behavior. Possibly some of them could be changed without causing problems, but fixing Chip starting on e.g. the exit or a key would ruin a few levels in CCLP1.
  4. 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

  1. 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).
  2. Tile World does not let you use a password to jump to a level if that password appears more than once (such as with levels 95 and 96 in the original levelset). The MS game takes you to the first level with that password.
  3. Tile World does not properly imitate the original game in deciding when to allow the player the option to skip past a level. The criteria for this circumstance has not be properly elucidated, for either ruleset.