Short: 68k and PPC ports of winquake, v0.4 Author: Peter McGavin (p.mcgavin@irl.cri.nz) Uploader: Peter McGavin (p.mcgavin@irl.cri.nz) Version: 0.4 Type: game/shoot Action: NoStart awinquake 0.4 11 Jan 2000 ------------- This archive contains Amiga 68k and PPC ports of winquake, compiled as directly as possible from ID Software's winquake source code. On 24th Dec 1999 I learnt that ID Software had released the source code of winquake, glquake, quakeworld and glquakeworld (on 21st Dec 1999) under GNU Public License (GPL) and made them available by ftp. So I downloaded them and tried compiling winquake with SAS/C 6.58 for the Amiga. This archive represents my results after about 4 evenings and 2 days. winquake is well written and extremely portable, so it didn't take long to get it working on my Amiga by cutting and pasting code from other projects. I expect other people are doing better ports, e.g, Frank Wille. However I haven't seen any legal ones yet, and as it didn't take very long to get a base version running, I thought I'd release what I've done. If you're doing your own port, feel free to take source code from mine, but remember there's no guarantee. Sorry I haven't even looked at the glquake and quakeworld source code yet. You can get all the original ID Software quake source from: ftp://ftp.cdrom.com/pub/idgames/idstuff/source/q1source.zip Source code of awinquake is necessarily in a separate archive on Aminet. The GPL license requires that the source code of all modifications to Quake is made freely available. FEATURES: --------- Both 68k and PPC versions are provided. Both versions are OS-friendly and multitask. Both versions put up an ASL requester for the ScreenMode. awinquakeppc uses Joseph Fenton's PPC c2p routine from ADoomPPC and triple buffering in AGA modes. Sound effects are included. Also CD audio for music works if you use ClickBoom's AmigaQuake CDROM. You need cdplayer.library (from Aminet) for this. Networking for TCP/IP is included. awinquakeppc works with either PowerUp or WarpOS. With WarpOS, use Frank Wille's ppc emulation library. awinquakeppc is mostly compiled with SAS/C scppc. However, the innermost rendering routines are compiled with ppc-amigaos-gcc. This results in a small speedup (about 3%) over compiling everything with scppc. My modified source code should still compile for Linux (APUS), Solaris, Win95, etc, with no changes --- untested. Speeds over 37 fps have been observed for "timedemo demo2" in 320x200 on a 233 MHz PPC Amiga 3000 with CyberVisionPPC. I added a -fps option, but see the note below about bus speed before you believe the numbers you see. LIMITATIONS: ------------ My 68k version is much slower than ClickBoom's commercial version. I use my 68k version primarily for debugging. Only the PPC version has optimised c2p for AGA. In fact I don't recommend the 68k version at all. Buy Clickboom's version. Only keyboard control. No mouse, joystick or joypad yet. No AHI yet either, sorry. I haven't put much effort into optimising the code yet, apart from trying different compilers and compiler options. Untested code. Your mileage may vary. REQUIREMENTS: ------------- A 68020+ Amiga running at least Kickstart 3.0, with at least about 16 Mb of fastmem. An FPU is required. You need either a gfx-card or AGA. ECS alone is not sufficient. A TCP/IP stack is required for networking, e.g, AmiTCP or Miami. An ethernet card is strongly recommended. I use a stack size of 500000 bytes. I'm not sure what the minimum stack size is. 150000 bytes is definitely too small. An MMU is neither required nor used. You need cdplayer.library from Aminet, or start with -nocdaudio. The game searches for Clickboom's CDROM for cdaudio (volume name "QUAKE".) You need the Quake 1 PAK files and other support files from either a commercial or shareware version of Quake. Assuming you've already installed AmigaQuake or a PC version, put awinquake or awinquakeppc in the same directory as the original quake executable. To enable mouse control, use -mouse. To leave the mouse pointer visible, use -mousepointer. KNOWN BUGS, PROBLEMS AND SOLUTIONS: ----------------------------------- If you get the message "file is not executable" when you start awinquakeppc, try using runelf, or run another program that uses ppc.library first. Also, make sure the executable bit is set in the file protection mask of awinquakeppc. Random crashes, especially crashes on exit, may be caused by stack too small. Set a large stack, say 500000 bytes, especially if networking. Use the AmigaOS STACK command to set the stack size before you start awinquake or awinquakeppc. There is a -mem option for allocating a different size heap than the default. For example, "awinquakeppc -mem 24" starts awinquake with a 24 Megabyte heap. The default size is 8 Megabytes. Some Quake add-ons, such as Malice, require a larger heap. Also, a larger heap size reduces disk accesses. If you are very short of memory, try a smaller heap, e.g, "awinquakeppc -mem 6". The game may "stick" for a few seconds every few minutes when the cdplayer loops. Sorry, no solution for this yet except -nocdaudio. If the game reports the wrong bus speed at the start, then the game will run at the wrong speed and audio may sound broken up. Furthermore, all reported times and fps ratings (e.g, for timedemo demo2) will be wrong. Override with, e.g (for 66 MHz bus): awinquakeppc -bus 66666667 If the game takes too long to load, try using the AmigaOS ADDBUFFERS command. The TCP/IP networking code seems to be rather flaky. I successfully used it over ethernet with other Amigas running awinquakeppc, other Amigas running Clickboom's Quake and other PCs running Quake 1.06. (awinquake is a port of winquake 1.09.) However, sometimes the server wasn't seen by the client looking for it. In that case the solution is to type in the IP number of the server. Sometimes I wasn't able to make a connection at all, or when I made a connection, the players couldn't move. Then, when I tried again later, it worked just fine. HISTORY: -------- v0.4 7 Jan 2000 Should work under Kickstart 3.0 now. Added -mouse and -mousepointer. awinquakeppc should calculate the correct bus speed now. Now writes config.cfg on exit. Handles slashes and colons in directory names better. v0.3 4 Jan 2000 Fixed the crash that occurred if you don't have cybergraphics.library Added -mem parameter. v0.2 30 Dec 1999 First Aminet release. THANKS: ------- Thanks to John Carmack and ID Software for one of the best games ever! Peter McGavin. (p.mcgavin@irl.cri.nz) ============================= Archive contents ============================= Original Packed Ratio Date Time Name -------- ------- ----- --------- -------- ------------- 6759 3141 53.5% 11-Jan-00 23:55:12 amiga.readme 362044 189563 47.6% 11-Jan-00 23:49:26 awinquake 916044 383568 58.1% 11-Jan-00 23:49:46 awinquakeppc -------- ------- ----- --------- -------- 1284847 576272 55.1% 11-Jan-100 20:04:34 3 files