@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: 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 =========== - It crashes: Some early versions of rtgmaster.library (<= V26) had bugs, that caused it to crash on certain system configurations. Update to V27. - The WAD Files load slow Add some buffers, like this: addbuffers work: 300 Wastes some RAM, but is really useful :) - I have V27, but i still have problems: Go sure that you have setpatch running in your startup-sequence and a monitor-driver in devs:monitors (PAL or NTSC or something like that for systems without GFX Board) - it is slow Well, the 68k Version of ZhaDoom is not optimized at all. If you need a faster 68k version, go for AmigaDoom, ADoom or DoomAttack. I won't bother with an 68k version... i am concentrating on the PPC Version. If you consider a hardware upgrade, and are not sure, if you should buy a GFX Board or a PPC Board: - If you want to run future games fast, go for the PPC Board. PPC+AGA is faster than 68k+GFX Board. *Much* faster. - If you want to run current application/games fast on a nice Workbench, then go for the GFX Board. But i expect in the near future (maybe 1 year) that Amiga Games will be for PPC/060 and AGA/GFX Board as Minimum configuration. NEVER consider a Zorro II GFX Board, if you want the GFX Board for Game-Speed. Zorro II is even slower than AGA. Consider a Zorro III Board or the soon-to-be-released GFX Board from Ateo instead (for A1200 users). 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. Note: This is only a Beta Version. It will be much enhanced later. 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 - 320x200 68k ZhaDoomPPCLowRes.exe - 320x200 PPC ZhaDoomPPCMiniRes.exe - 480x200 PPC ZhaDoomPPCMedRes.exe - 640x200 PPC ZhaDoomPPCHiRes.exe - 640x400 PPC Note, that the 480x200/640x200 look a bit... well ... strange... the guy HOPS around very noticably :) Doom-Bunny's revenge :))) 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. @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. @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. 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). It also needs WarpOS of at least V13. Download WarpOS V2 from the Haage&Partner Server. @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 :))) ) @endnode @node future "Future" @{b} Future@{ub} - Trance said he would be working for Music Support - Getting TCP/IP Support working ? - Split-Screen Mode ? - Optimizations ? (Especially reducing that 9 Context-Switches in i_sound.c, anytimes something happens with the sound...) @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 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 : 52 fps Note: When sound is active, ZhaDoom slows down about 16%, i'll look, if something can be done about this in the future. Another Note: The engine is still ABSOLUTELY unoptimized (no ASM parts). This will be done in the future, so hopefully ZhaDoom will still enhance its already (at least on PPC) fast speed. @endnode