-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 03d9d28
Showing
27 changed files
with
9,773 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
BIN | ||
DIST |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
@echo off | ||
if not exist BIN mkdir BIN | ||
del BIN\*.* | ||
|
||
if not exist DIST mkdir DIST | ||
del DIST\*.* | ||
|
||
echo. | ||
echo [ Building BIN2PAS.EXE ] | ||
echo. | ||
TPC /B /EBIN /ITOOLS /UTOOLS TOOLS\BIN2PAS.PAS | ||
if errorlevel 1 goto error | ||
|
||
echo. | ||
echo [ Building CSIPACK.EXE ] | ||
echo. | ||
TPC /B /EBIN /ITOOLS /UTOOLS TOOLS\CSIPACK.PAS | ||
if errorlevel 1 goto error | ||
|
||
echo. | ||
echo [ Converting screens ] | ||
echo. | ||
|
||
BIN\CSIPACK /C SCREENS\M_FOREST.BIN BIN\M_FOREST.CSI | ||
if errorlevel 1 goto error | ||
BIN\BIN2PAS BIN\M_FOREST.CSI BIN\M_FOREST.PAS | ||
if errorlevel 1 goto error | ||
BIN\CSIPACK /C SCREENS\M_MONSTE.BIN BIN\M_MONSTE.CSI | ||
if errorlevel 1 goto error | ||
BIN\BIN2PAS BIN\M_MONSTE.CSI BIN\M_MONSTE.PAS | ||
if errorlevel 1 goto error | ||
BIN\CSIPACK /C SCREENS\M_PROVIN.BIN BIN\M_PROVIN.CSI | ||
if errorlevel 1 goto error | ||
BIN\BIN2PAS BIN\M_PROVIN.CSI BIN\M_PROVIN.PAS | ||
if errorlevel 1 goto error | ||
BIN\CSIPACK /C SCREENS\S_CONFIG.BIN BIN\S_CONFIG.CSI | ||
if errorlevel 1 goto error | ||
BIN\BIN2PAS BIN\S_CONFIG.CSI BIN\S_CONFIG.PAS | ||
if errorlevel 1 goto error | ||
BIN\CSIPACK /C SCREENS\S_ORDER.BIN BIN\S_ORDER.CSI | ||
if errorlevel 1 goto error | ||
BIN\BIN2PAS BIN\S_ORDER.CSI BIN\S_ORDER.PAS | ||
if errorlevel 1 goto error | ||
BIN\CSIPACK /C SCREENS\S_REGIST.BIN BIN\S_REGIST.CSI | ||
if errorlevel 1 goto error | ||
BIN\BIN2PAS BIN\S_REGIST.CSI BIN\S_REGIST.PAS | ||
if errorlevel 1 goto error | ||
|
||
echo. | ||
echo [ Building SUPERZ.EXE ] | ||
echo. | ||
TPC /B /EBIN /GD /ISRC;BIN /USRC;BIN SRC\SUPERZ.PAS | ||
if errorlevel 1 goto error | ||
|
||
echo. | ||
echo [ Compressing SUPERZ.EXE ] | ||
echo. | ||
cd BIN | ||
..\TOOLS\LZEXE.EXE SUPERZ.EXE | ||
cd .. | ||
|
||
echo. | ||
echo [ Creating DIST/ ] | ||
echo. | ||
copy BIN\SUPERZ.EXE DIST\SUPERZ.EXE | ||
copy LICENSE.TXT DIST\LICENSE.TXT | ||
goto done | ||
:error | ||
echo. | ||
echo [ Error detected! Stopping. ] | ||
:done |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
Copyright (c) 2020 Adrian Siekierka | ||
|
||
Based on a reconstruction of code from Super ZZT, | ||
Copyright 1991 Epic MegaGames, used with permission. | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all | ||
copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
# The Reconstruction of Super ZZT | ||
|
||
The Reconstruction of Super ZZT is a reverse-engineered recreation of the source code to the last official release of | ||
Super ZZT, Super ZZT 2.0. | ||
|
||
## Frequently Asked Questions | ||
|
||
### What is Super ZZT? | ||
|
||
Super ZZT is a sequel to ZZT, an adventure game created by Tim Sweeney. It was released in October 1991, providing | ||
new built-in elements and a large, scrolling playfield. | ||
|
||
You can learn more about ZZT and its modern-day community from [the README](https://github.com/asiekierka/reconstruction-of-zzt/blob/master/README.MD) | ||
of the Reconstruction of ZZT. | ||
|
||
### How can I create Super ZZT worlds of my own? | ||
|
||
Unlike ZZT, Super ZZT's built-in editor needs to be activated by using the "/E" command-line switch. | ||
After doing so, you can press "E" just like in ZZT. | ||
|
||
Please note that the popular third-party tool, KevEdit, does not support Super ZZT worlds. Other editors | ||
exist which do, like ZAP and ZEdit2. | ||
|
||
### What is part of this open-source release? | ||
|
||
This release's binary distribution includes the Super ZZT engine executable, SUPERZ.EXE. | ||
|
||
The source code includes the source format for SUPERZ.EXE, as well as relevant tools. | ||
|
||
### Is this open-source release byte-accurate, like the previous one? | ||
|
||
Short answer: Sort of. | ||
|
||
Long answer: Almost all of the code is byte-accurate. However, Super ZZT utilizes TheDraw's Crunched Screen Image | ||
decompression routine for its ANSI art graphical displays. As I did not manage to find clear | ||
licensing terms for said routine, UNCRLIB.PAS contains a clean implementation of it. This ensures that the | ||
binary produced by this repository is MIT-licensed, even if a non-consequential part of it differs. However, | ||
it is possible to replace UNCRLIB.PAS with the original implementation and get a .EXE byte-accurate to | ||
Super ZZT 2.0. | ||
|
||
### Why did the source code have to be reconstructed? | ||
|
||
This is because the original source code to Super ZZT [was lost a long time ago](https://web.archive.org/web/19991010013339/http://www.epicgames.com/zzt.htm) alongside ZZT's. | ||
|
||
### I'm a ZZTer from back in the day and I have some backups from that period. Are they still useful? | ||
|
||
**Yes!** There are many ZZT and Super ZZT worlds, utilities, and other documents which have not yet been preserved. If you'd like to share them and see them be | ||
adequately catalogued and preserved, please contact me at (kontakt at asie dot pl) - or get in touch with the Museum of ZZT community. | ||
|
||
## Directory structure | ||
|
||
* **BIN** - output directory for EXE and TPU files, | ||
* **DIST** - output directory for the binary distribution, | ||
* **SCREENS** - 80x25 .BIN screen video data for graphical screens used in Super ZZT, | ||
* **SRC** - the reconstructed Super ZZT source code, | ||
* **SUPERZ.PAS** - main source file, | ||
* **TOOLS** - tools used when building: | ||
* **BIN2PAS.PAS** - BIN2PAS, a tool for converting binary files into Pascal units, | ||
* **CSIPACK.PAS** - CSIPACK, a tool for compressing and decompressing Crunched Screen Images, | ||
* **LZEXE.EXE** - LZEXE, a .EXE compression tool by Fabrice Bellard, | ||
* **BUILD.BAT** - source code build script, | ||
* **LICENSE.TXT** - licensing terms for the source code release. | ||
|
||
## License | ||
|
||
The Reconstruction of Super ZZT is licensed under the terms of the MIT license as described in LICENSE.TXT, with the exception of certain files included with this release: | ||
|
||
* **TOOLS/LZEXE.DOC**, **TOOLS/LZEXE.EXE**: | ||
|
||
``` | ||
LZEXE.EXE v0.91 (c) 1989 Fabrice BELLARD | ||
Ce programme fait parti du domaine public (FREEWARE), donc vous pouvez | ||
l'utiliser, le copier et le distribuer sans problème. Et vous pouvez même | ||
en faire un usage commercial, c'est à dire compacter des fichiers EXE que | ||
vous allez vendre. Mais la vente de LZEXE.EXE est interdite. | ||
``` | ||
|
||
## Compiling | ||
|
||
### Requirements | ||
|
||
* DOS-compatible environment (f.e. DOSBox), | ||
* Turbo Pascal 5.5 (if you don't have it, it's officially available for free via Embarcadero's Antique Software website). | ||
|
||
### Instructions | ||
|
||
1. Ensure that TPC.EXE from Turbo Pascal is available on your PATH (f.e. `SET PATH=C:\TP;%PATH%`). | ||
2. From the source code directory, run `BUILD.BAT`. | ||
3. The DIST directory will contain files comprising the release as outlined in the FAQ. | ||
|
||
### Compilation FAQ | ||
|
||
#### What are all the "unk"-prefixed variables? | ||
|
||
These are variables which are not used at all anywhere in the source code, but are assumed to exist in the stack or data segments, affecting relevant | ||
variable offsets and stack checks. They are required for byte-level equivalence, but you are free to remove them and get a functionally equivalent | ||
version of the engine - with the exception of some structures, like TStat, which are serialized to disk. | ||
|
||
## Greetings | ||
|
||
As always, I'd like to thank everyone who has spent the last few years contributing to the rebirth of the small ZZT community. |
Binary file not shown.
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
����������������������������������������������������������������������������������x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x��������x��������x��������x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x���x�x�H�H�H�H�H�x�H�H�H�H�H�x�x�H�H�H�x�H�x�H�H�x�H�H�H�H�x�H�H�H�x�H�H�H�x�x����� ������� ��x�x�x� �x�H�H�H�H�x�H�H�H�H�H�H�H�x�H�H�H�x�x���x�x�x H�H�H H�H H�x H�H�H�x�x H�H�H�x H�x�H H�x H�H�H H�x H�H�H�x H�H H�x�x�x�x� ������� ����x�x�x� �x�x H�H�H�x H�H H�H H�x�H�x H�H H�x�x���x�x�x H�H�x H�x H�x H�H�H�x�x�H�H H�H H�H�H H�x H�x�x�x�x H�H�H�x H�H�H�H�H� ��� �� ��� �x�x�x�x �x�x�H�H H�x H�x H�H H�H H�x H�x H�x�x���x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�H�H�H�H�H���x�x�x�x�x��x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x���s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s���8 �8���8 �8���8 �8���8 �8���8 �8���8 �8���8 �8���8 �8���8 �8���8 �8���8 �8���8 �8���8 �8���8 �8���8 �8���8 �8��s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�{�s s sCpopppyprpipgphptp p1p9p9p1p pEpppipcp pMpepgpapGpapmpepsp.p p pTphpipsp pgpapmpep pipsp psphpaprpepwpaprpep,p p ppplpepapspep psphpaprpep piptp!p p�s�{ |
Binary file not shown.
Binary file not shown.
Oops, something went wrong.