@database zhadoom.guide @$VER:ZhaDoom.guide V0.6 @wordwrap @node Main "ZhaDoom - The Doom for WarpOS" @{b} ZhaDoom - The Doom for WarpOS @{ub} @{u} Table of Contents @{uu} Part A : @{"Introduction " link intro} Part B : @{"Installation " link install} Part C : @{"Authors " link authors} Part D : @{"History " link history} Part E : @{"Future " link future} Part F : @{"Speed " link speed} Part G : @{"Troubleshooting " link trouble} @endnode @node trouble "Troubleshooting" @{b} Troubleshooting @{ub} Possible Problems: Both Versions ============= - It crashes: ZhaDoom does not like being low on RAM. Be *sure* that your largest memory block reported by ZhaDoom is at least 2 MB larger than what it actually allocates, and there should not be any problems. Also note, though, that some Cyberstorm PPC seem to have problems with (at least certain types of) EDO RAM. One guy could not make it working, but as he put in 70 ns RAM, it worked. This guy also had problems with "other PPC Software using large files", though, when the EDO was still in. So it seems problems with large files on PPC Side could indicate, that the Board has problems with your RAM. The problems appear, anyways, which PPC Software is used, so i suppose it is a hardware problem. Note: These problems should not appear any longer with V0.9. Note: I never tried, what ZhaDoom does when you try to open the new 640x400 Version of ZhaDoom on a 320x200 Screen. But probably ... no nice things :) There will be a GUI for choosing the right executable, depending on Screenmode, later... 68k Version =========== Discontinued. Use ADoom or DoomAttack for 68k. PPC Version =========== - It crashes: Go sure, that you do NOT have CyberGraphX PPC installed. As to my speed tests, it does not give a real speed advantage, but it DOES disable WarpOS. Use CyberGraphX 68k or Picasso96, if you want to run WarpOS programs (which is recommended). - I don't have CyberGraphX PPC installed, but it still crashes: Maybe you have run a ppc.library application before. WarpOS and ppc.library are not compatible. If you run an application from one of the two PPC-Systems, you have to perform a reset, before you can run an application from the other PPC-System. And no, ZhaDoomPPC cannot run on WarpOS V7, due to what seems to be a bug in ppc.library (the Stack Handling...). - it is slow You are mad. It is as fast as on a Highend PC :) - The WAD Files load slow Add some buffers, like this: addbuffers work: 300 Wastes some RAM, but is really useful :) @endnode @node intro "Introduction" @{b} Introduction @{ub} ZhaDoom is a port of ID Software's famous Game Doom. This is 100% legal, as ID Software released the Sources of Doom. You still need a WAD-File (Doom Data File) from ID Software, though. You can also take the Shareware WAD from ftp.cdrom.com. AFAIK ZhaDoom takes all WAD Files, DOOM 1, Doom 2, Ultimate Doom, Final Doom and WAD Files from people on the net. Why the silly name ZhaDoom ? Well, ZhaDoom is named after Z'Ha'Dum, the planet of the Shadows in the series Babylon 5 :) Have fun. ZhaDoom also supports Playing with the Mouse (use Parameter -mouse to enable Mouse Support). It also supports Playing with a CD32 or compatible Joypad (use Parameter -joy to enable Joypad Support). To use the Joypad you need lowlevel.library installed. Note, that the Joypad Code, if enabled (by -joy) adds some more Contextswitches to ZhaDoomPPC. Joypad usage: Red Button : Fire Green Button : Open Door Blue Button : Sidestep Modificator Back Left Button : Sidestep Left Back Right Button : Sidestep Right A normal joystick is not supported (DOOMing without Sidestepping would not make much sense, anyways...). Ah, one note: Use CTRL as Fire Key, not Left Amiga. When you press Left Amiga, ZhaDoom does not react anymore on the Arrow Keys (Left Amiga + Arrow Key is reserved by the AmigaDOS). If you press CTRL as fire, you can move around at the same time :) F11 (Gamma Correction) is done using the HELP key. The PPC Version (and only the PPC Version) also supports higher resolutions. Sadly not in one Executables, but in several ones (this is why the archive is so much bigger now :) ) ZhaDoomPPC.exe - Discontinued ZhaDoomPPCLowRes.exe - 320x200 PPC ZhaDoomPPCMiniRes.exe - 480x200 PPC ZhaDoomPPCMedRes.exe - Discontinued ZhaDoomPPCHiRes.exe - 640x400 PPC Note, that the 480x200/640x200 look a bit... well ... strange... the guy HOPS around very noticably :) Doom-Bunny's revenge :))) The 640x200 looked that strange that i discontinued it. I have to thank here Frank Wille, Coder of VDoomPPC for helping me with Hires-Coding-Problems much :) ZhaDoom supports (i hope it works !!!) IPX Support and Serial-Link Support. Serial-Link Support links with all Amigas playing ZhaDoom or ADoom, not with PCs. I learned a lot about the network stuff by reading the ADoom-Sources. Thanks to Peter McGavin for releasing them :) Ah, one last: The frame-rate slows down around 16% if Sound is enabled. Note: The 68k version is discontinued. If you want a fast 68k Doom, use ADoom or DoomAttack, they are as to my opinion the best 68k Doom Ports, in my opinion. ZhaDoom is now PPC-only. I am a lazy programmer, and doing #ifdef __PPC__ ... #else ... #endif all the time for the PPC ASM Optimizations sucks. @endnode @node install "Installation" @{b} Installation @{ub} ZhaDoom needs rtgmaster at least version V32 (PPC-Version) installed. The 68k-version also runs with V27. I included the binaries of rtgmaster V32 to this archive, but they are also on Aminet. Simply do copy libs/#? libs: or run the provided Installer Script to install them, if you don't have rtgmaster V32 already installed. rtgmaster V32 runs on both PPC and 68k. Of course the PPC Version also needs WarpOS installed, the PPC Software from Haage&Partner. Note that the 68k Version of ZhaDoom is quite slow. This was intended to be a PPC-only version, the 68k is just a plain recompile of the PPC one for 68k. To run it, just start the Executable from the Shell. You don't need to change the stack, it does this itself. You should change to the Directory of the Executable, where the WAD File should also be put. Did not yet try, if it runs from Workbench. I will look after this, when it is a bit more complete. If you want background music, you have to install doomsound.library to libs: (note, that the 060 optimized version of ADoomPPC does not work with ZhaDoom, there will be a bugfix of the 060 optimized versions by Joe Fenton soon, though). Also, you need to install MIDI_Instruments (not provided inside this archive) to your Doom Directory. Music is activated with -music. Note: There seems to be a bug in doomsound.library, so that the thing crashes on Exit, if the Music is active. If you don't like this, don't activate the music. Does not happen with the Soundeffects, only. @endnode @node authors "Authors" @{b} Authors @{ub} - First we have those guys at ID Software, of course, without whom this fine game would never exist. Thanks to them, and thanks also for releasing the Sources :))))))))))))))))) Without this Doom would never have appeared on Amiga. - The main author of the Amiga PPC Port is me (MagicSN@Birdland.es.bawue.de). I used the Sources of AmigaDoom V0.3 from trance@master.echo.ch for this Port. Thanks to him also. I myself adapted the thing to StormC and PPC and also did some enhancements of the PPC Version. - Another guy i have to thank MUCH is Frank Wille, the Author of VDoomPPC. I would never made it for the Hires Versions without his really extensive help. Even if my port is concurrence to his he helped me, pointing out sources lines to change, when ZhaDoom Hires still caused a strange display... there were LOTS of changes to do in the source, and at least 3 of them i would not have found without Frank's help. Thanks :))) - Peter McGavin, the author of ADoom. I had MANY looks at his networking Source in amiga_net.c of ADoom Source, till i got it working myselves (well, still not tested, as i don't have the needed Hardware, but it should work now). Serial Link Support SHOULD be able to connect to a Machine running ADoom, also. TCP/IP still does not work on ZhaDoom. Parameters are like with ADoom: ZhaDoomPPC -ipxnet 1 [-socket ...] ZhaDoomPPC -sernet 1 serial.device 0 19200 Of course different parameters can also be used :) - Another author would be Michael Rock, who removed the Unix I/O for me, and helped with some other StormC Adaptions. - Sam Jordan fixed a small bug concerning FixedMul for me, and he did the ASM Optimized versions of R_DrawColumn, the timer function, the Swap-Function, and the FixedMul Stuff (these function are all in ZhaDoom what is done PPC ASM optimized currently...) - I have to thank Joe Fenton for the permission to use his doomsound.library. Note: ZhaDoomPPC does not work when ppc.library is active (when you started a ppc.library program after the last reset). it also does not work when you use CyberGfx PPC (which does not have real speed advantages, but disables WarpOS). As soon as V14 is available you can start ZhaDoom anyways, if ppc.library runs, when you set the Env-Variable powerpc/TERMINATOR. ZhaDoomPPC now also runs with WarpUP V7, provided that at least V7.2 is installed (from the 3rd release of WarpUP...). @endnode @node history "History" @{b} History @{ub} V0.1 Compiled AmigaDoom for StormC. This is the base version, so i did not list the changes made. Does not yet run. V0.11 Base Source changed by Michael Rock to eliminate usage of Unix I/O. Compiles, but runs very instable. V0.12 Made it running on 68k. The problem was the RANGECHECK. Most RANGECHECK-problems only produced a warning (which slowed down the frame-rate a bit). I used stuff like: #ifndef SNHACK #ifdef RANGECHECK ... #endif #endif here. At one specific place the Doom swapped to parameters "start" and "stop", though, so i checked for startLittle Endian Conversion OR the m_fixed.c OR the r_*.c are the problem... Did not yet find out what is going wrong. This only happens on PPC, on 68k it just runs fine. V0.17 Removed NETWORK. Currently NETWORK is automatically enabled with 68k, and automatically disabled with PPC. 68k runs quite slow for some reasons (maybe optimization level, maybe Network stuff... will have a look at this later... for now PPC Support is most important...) Well, at least 68k runs again now (with V0.16 it did not work). And a price for the person who finds out what is causing those problems with the Dungeon display in PPC... :) V0.18 Added Network Support to PPC Version. Now that silly "singletic"-hack could be removed. (The line singletics=1; is no longer needed in d_main.c). Note, that this stubfile for bsdsocket.library does not cover all function of bsdsocket.library - but all that are needed for Doom :) The PPC Version still has a confused display. V0.20 Sam Jordan fixed the FixMul bug, and now it runs. I did some minor changes to i_video.c to make the PPC Version run on AGA also. V0.22 Added Support for Mouse and for CD32-style Joypads, using lowlevel.library. Added Support for Joystick, also using lowlevel.library. V0.23 Some optimization, added automatic fps calculation V0.24 Small bugfix in info.c/info.h, included Sound Support, but disabled it for this release, as it has still some serious bugs. Added Version Check for WarpOS. V0.3 Major Bugfix in z_zone.c/i_system.c which caused Sound Support not to work. Enabled Sound Support, as this works now. The Bug might also have caused some "jerks" in running Doom like some people reported. Asides from the Sound, i changed the code so that the Doom Status Messages are now printed as the game runs, not after it quits, like before. V0.31 V0.3 did not close audio.device again, if Doom did not load because of an error. V0.31 fixes this. V0.4 Added Support for running ZhaDoom in Workbench Window V0.5 Fixed Memory Bug, that caused ZhaDoom to crash if too few memory was available, what caused problems on certain systems V0.6 Implemented Hires Versions (PPC only). Implemented IPX Support (needs amipx.library and fitting Network Board installed) and also Serial Link Support (thanks, Peter McGavin, for releasing the ADoom Source :))) ) V0.9 added Music support, using doomsound.library (Note: Does not quit correctly, if you start with -music, but that happens for the other Doomports using this library,also, so it is probably not my fault. Also the 060 version of doomsound.library does not work with the Music Support of ZhaDoom, a fix of the 060 doomsound.library will soon be released by Joe Fenton). Added -fps for fps counter (the fps counter slows down the actual fps, though), added -pubscreen to run ZhaDoom on a pubscreen. NEARLY added Dehacked support (next version, probably...). Added some small PPC ASM Optimizations. The 640x480 version does not yet feature the ASM Optimization of R_DrawColumn. @endnode @node future "Future" @{b} Future@{ub} - Getting TCP/IP Support working ? - Split-Screen Mode ? - More PPC ASM Optimizations ? (especially r_draw.c ...) @endnode @node Speed "Speed" @{b} Speed @{ub} Speed comparisions: All comparisions are done on my A4000: PowerUP 50 MHz 060/150 MHz PPC 604e Cybervision/3D 24 MB FastRam ZhaDoom 68k on CV/3D : 14 fps ZhaDoom PPC on CV/3D : 38 fps VDoomPPC of Joe Fenton on CV/3D: 38 fps ZhaDoom PPC on AGA : 33 fps Doom 2 on Pentium 180 : 39-75 fps, depending on Hardware and OS (DOS?Win95?) ZhaDoom PPC on 200 MHz + CV/3D : 53 fps (old version, this one probably faster) ZhaDoom PPC on 200 MHz A1200 PPC on AGA: 28 fps (note, you need at least powerpc.library V14 to run ZhaDoom on a A1200 PPC, as the earlier versions - with exception of the V7 - did not yet support the A1200 PPC). Old version. ZhaDoom using WarpUP V7.2 : 25 fps (old version, without ASM Optimization) Note: When sound is active, ZhaDoom slows down a bit. @endnode