release:zzt40
This is an old revision of the document!
Table of Contents
ZZT 4.x
ZZT 4.0 and 4.1 are hex edits of ZZT 3.2 created by WiL for widespread use.
ZZT 4.0
Documentation
The major changes here:
ZZT's notorious 20k board limit has now been increased to a healthier 32k.
ZZT's equally notorious bottomw-row placement bug has been fixed.
ZZT's annoying water-glink sound effect is now removed.
ZZT is now 39k, smaller than the original executable.
Minor changes include:
Textual changes - also, untitled.zzt, temp.brd, and saved.sav will no longer be the default. Now by >default you must put in a name of your own. This means no more angst over accidentally saving over your >last board, saved game, or ZZT project.
In addition, ZZT 4.0 came with a separate NoMsg variant, additionally changing:
* in-game messages and sound effects (that i have found so far) removed: Except the invisible wall message and sound effect. I coudln't justify removing that one. And the key and door messages.
* No yellow borders.
Changes
Some of the documented changes are inaccurate with regards to the in-executable changes.
Functional
- The IoTmpBuf allocation calls have been patched to allocate a size of 0xFFFF (65535) rather than 0x4E20 (20000) bytes (offset 0x2387, 0x23E8).
- The flag name SECRET is replaced with EDITED (offset 0x9651).
- The
Y < 25
requirement from OopExecute's #PUT handling is replaced withY < 26
, fixing the #PUT bottom row bug (offset 0xC9E1).
Branding
Description | Location | Original string | Modified string |
---|---|---|---|
Configuration screen, second line (shareware) | 0x1C44 | Shareware version 3.2 ' | New! ZZT Version 4.0 |
Configuration screen, second line (registered) | 0x1C7A | Version 3.2 | Version 4.0 |
Copyright notice | 0x1CA9 | Created by Tim Sweeney | By Tim Sweeney and WiL |
Copyright notice | 0x1D42 | Copyright (c) 1991 Epic MegaGames , Press ... to abort ' | Public Domain since 1997. ZZT 4.0 released in 2004 , ... to quit ' |
Shutdown notice (registered) | 0x217F | Registered version -- Thank you for playing ZZT. | Thanks for playing! ZZT 4.0 made by WiL. . |
Graphics/Names
Description | Location | Original string | Modified string |
---|---|---|---|
Default save filename | 0x2173 | SAVED | Empty (length set to 0) |
Default exported board filename | 0x2179 | TEMP | Empty (length set to 0) |
Energizer pickup message | 0x4468 | Energizer - You are invincible | Empty (length set to 0) |
Default object name | 0x4EF4 (ElementObjectTick), 0xBF4D (OopExecute) | Interaction | Empty (length set to 0) |
Ammunition pickup message | 0x56C5 | Ammunition - 5 shots per container. | Empty (length set to 0) |
Gem pickup message | 0x5750 | Gems give you Health! | Empty (length set to 0) |
Fake wall message | 0x5D8B | A fake wall - secret passage! | A fake wall - secret passage!U |
Editor board name prompt | 0x7AC0 | Room's Title: , Board Name: (length edited) | |
Sidebar - default world name | 0x109C1 | Untitled | Empty (length set to 0) |
- The fake wall message change seems to be an accident - the string length is incremented by one, causing the first byte of ElementFakeTouch's code to be added to the string.
Sounds
Description | Location | Original | Modified | Comment |
---|---|---|---|---|
Water step sound | 0x5F40 | #64#1#80#1 | Empty (length set to 0) |
Bugs
Location | Original | Modified | Comment |
---|---|---|---|
0x5BE0 | 0x00 | 0x2E | This makes ElementPusherTick remove 46 bytes from the stack every time it is called, causing a stack underflow and a crash after exactly seven pusher ticks if nothing else is done. The intent of adding this seems to be a misplaced hex edit pertaining to the torch's pickup message, which immediately follows said method. |
Changes (NoMsg variant)
- The following messages have their lengths set to 0:
Bomb activated!
(offset 0x3E38),A path is cleared through the forest.
(offset 0x5D0A),A fake wall - secret passage!
(offset 0x5D8B),Your way is blocked by water.
(offset 0x5F45),Game over - Press ESCAPE
(offset 0x6183),Can't shoot in this place!
(offset 0x619F).
- The following sounds have their lengths set to 0:
- Energizer melody (offset 0x43F7 - pickup, 0x625C - running out),
- Scroll pickup (offset 0x54D0),
- Key pickup failure (offset 0x5597),
- Key pickup success (offset 0x55B4),
- Ammo pickup (offset 0x56BE),
- Gem pickup (offset 0x5747),
- Door open success (offset 0x5815),
- Door open failure (offset 0x5835),
- Torch pickup (offset 0x5C0F),
- Torch burnout (offset 0x6255),
- Running out of time (offset 0x6280).
- The yellow border tile definition is replaced with a white-on-black Empty (offset 0x175FE).
- The misplaced torch pickup message hex edit is undone, removing the Pusher stack underflow crash bug (but not the message!).
Links
release/zzt40.1614539315.txt.gz · Last modified: 2021/02/28 19:08 by asie