ZEN Shell V0.1 for Mac OS X >= 10.2 What is ZenNode? ZenNode is a program by Marc Rousseau. In short, it is: "A text-mode BSP builder for DOOM WAD files. ZenNode will rebuild the BSP, REJECT map, and BLOCKMAP structures of a WAD file." See his web page, http://www.mrousseau.org/ (the ZenNode part is currently at: http://www.mrousseau.org/programs/ZenNode/ ) In my own words: USE IT ON EVERY PWAD YOU WANT TO PLAY WITH A MODERN DOOM PORT (e.g. Doom Legacy) - without using ZenNode, you will detect lots of "errors" like halls of mirrors (HOMs), "transparent" walls, non-present textures etc. After applying ZenNode on the WAD file, it will just work. For the user who "just wants to play DOOM", ZenNode is the best tool to prepare the custom level WADs e.g. for Doom Legacy. If you already tried to play WADs like FISTFUL.WAD with Doom Legacy OSX , you surely have wondered why some buildings are invisible - after the use of ZenNode, everything will be fine. And ZenNode is extremely fast - if your computer runs well with MacOS X, it is too fast for ZenNode ;-) ZenNode is included in the ZEN Shell application bundle in version 1.2.1 What is ZEN Shell? ZenNode for Mac OS X 10.2, bundled with a little shell. Perhaps you'll like not being forced to use the command line and typing something like /Volumes/Games/DOOM/Toolz/ZenNode /Volumes/Test/mynewwad.WAD -o /Volumes/Games/Doom/Legacy/mynewwad_zennode.WAD for all of your favorite PWADs.. Just drop WAD files on the application (the application's icon or its main window) or use the Browse.. dialog to select your WAD files. The Browse directories and the parameters are stored in the preferences. RETURN or ENTER will start ZenNode action.. 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 for more details. I hope that the shell runs on your machine, too.. (Classic OS or OS X 10.0 .. 10.1 is NOT supported, Used compiler: gcc3.3 for ZenNode, gcc3.1 for the ZEN Shell). If not, CTRL-click on the ZEN Shell application, choose "Show contents", open the folder "Contents", then the folder "Resources" and copy "ZenNode" to a place suitable for your unix tools.. Thanks to Marc Rousseau, ZenNode compiles nicely on big-endian systems like the Mac - and you won't find much other programs with that "feature" ! For Version 1.2.1, I had to type in some few lines of code to get the Mac "known" to ZenNode, see below (last section) How to use ZEN Shell I have bundled the ZenNode command line tool with some user interface, so you can just drop some WADs onto the application's icon or select the WADs via a file selector. If you already used this application before, you then just will press ENTER and ZenNode will do its job in a new window of the "Terminal" application. You should use the additional characters for the output WAD or select some different output directory, just to ensure that you keep the original WAD files until you've tested the modified ones. Why is the ******* source code for this ****** tool included? The source code (for Project Builder OS X.2 Jaguar) is included for GPL reasons - ZenNode is available with source code, so this tool should provide the source code, too. But be warned, ZEN Shell is hacked together by a total newbie in terms of Mac programming. If you don't know how to start with Carbon programming (like me), perhaps some parts of this code are useful. Some things you should not do / learn from this code: - I have used absolute paths (e.g. /var/tmp) - and the program will be totally wrong as soon as you use paths with e.g. Chinese letters (it tries to get 8-bit ASCII texts for all the files and paths). Somewhere I read something about how to obtain a temporary directory but I didn't remember.. - If the paths get long, you won't see the complete file name in the edit fields. - for a "normal" application, it is not recommended to look at the posix file name (and the extension). - it represents my first try to write a Carbon program (and it turned out to be quite hard).. If you know how to do things better, PLEASE - write a nice launcher for the Doom Legacy application :-) To compile the package, first extract the ZenNode program from the ZEN Shell application and copy it to the source code. I used Project Builder from the December 2002 version (Mac OS X 10.2 Jaguar), so you eventually have to modify some files in the pbproj package to get things going. What else is in this package? The source code of ZenNode 1.2.1, of course.. There is one more file: Platypus_script . IT WILL NOT RUN ON YOUR COMPUTER IF YOU DON'T MODIFY IT HEAVILY!! If you know how to modify it, use it with Sveinbjorn Thordarson's Platypus 2.2 http://sveinbjorn.vefsyn.is/software (with the advanced options of Platypus, you can install this script for launching DOOM just by double-clicking on your WAD file(s) !!! But first, copy your preferences DoomLegacy.cfg to DoomLegacy0.cfg .. Perhaps this file will be obsolete as soon as Doom Legacy X 1.44 appears but who knows. How do I compile ZenNode on my Mac with MacOSX? Just depack the sources of ZenNode and start a terminal in the subdir "ZenNode". To get Version 1.2.1 compiled, I changed the makefile: makefile, lines to add under the line "CFLAGS += -D__LINUX__ " : ifeq ($(OSTYPE),darwin) CFLAGS += -D__MACOSX__ -O3 endif O3 means full optimization and should speed up the already fast ZenNode furthermore. In the file common.hpp (search for "AMIGAOS") - add "MACOSX: #if defined ( __WIN32__ ) || defined ( __AMIGAOS__ ) || defined ( __MACOSX__ ) and, three lines later: #if defined ( __WIN32__ ) || defined ( __AMIGAOS__ ) // is the Amiga really Little-Endian?? #define BYTE_ORDER LITTLE_ENDIAN #else // at least for MACOSX, we know.. #define BYTE_ORDER BIG_ENDIAN #endif Enjoy, C. Peppermueller, cpepper@web.de