Q U A K E V1.09 Q U A K E W O R L D V2.40 ----------------------------------------------------------------------- This is another intermediate beta release of Quake and QuakeWorld. Hopefully some of the most annoying bugs are fixed, but there might be also new ones. Quake 1.09 was successfully compiled (except one file) by the latest vbcc 0.7d alpha (which is not publically available), which gave me a noticable improvement of performance. I'm getting 35.3 fps with a 604e/233 and a CV64 at 320x240 in "timedemo demo1" (-cgfx). FIXED BUGS Only the most important ones (list would be too long :) - Missing or moved brush models, like doors and ammunition packs. - Slow right-rotation of the player. - Mixed 2nd and 3rd mouse button function. - PowerUp: Problems with wrong bus clock calculated by the PowerUp kernel are solved by an own bus clock measuring routine (thanks to Sam Jordan, who provided me with the original powerpc.library source). - -no68kfpu uses mathieeedoubbas.library instead a real FPU, for the poor owners of an LC040 CPU. - CGX mode crashed when running into a system error before a display was opened. - ChunkyPPC bug fixes like o Better P96 support o Fixed PIP and implemented new environment variable "resize" o WB window mode - Some old CD-ROMs caused crashes when no CD was in drive. - Joypad (sidestep buttons). - Dongle problems: Set "in_initjoy 0". Sorry, now joypad support then. INSTALLATION Just copy the executables into your Quake directory (where the id1 directory resides). Copy chunkyppc.library to LIBS:, when running under WarpOS. STARTING QUAKE If quakeWOS finds the chunkyppc.library installed it uses chunkyppc.library for Output, otherwise direct CyberGfx is used. chunkyppc.library adds additionally to the normal "Screen Output" the following features to Quake: - Workbench Window Support: Enable it by setting env:Quake1/wb to 1 - Pubscreen Support: Enable it by setting env:Quake1/wb to 1 and env:Quake1/pubscreenname to the Name of the intended pubscreen - Picasso96 PIP Support: Enable it by setting env:Quake1/pip to 1 - Triplebuffering Support: Enable it by setting env:Quake1/dbuf to 1 - Doublebuffering Support: Enable it by setting env:Quake1/dbuf and env:Quake1/oldstyle to 1 Note that Triple Buffering does not work with all WB Emulations (with CGX 4 it works). chunkyppc.library also includes a "Screenmode Database". It stores the chosen Screenmodes for different Resolutions in env:Quake1. So you do not get a Screenmode Requester every time you switch the resolution. If you do not want to use chunkyppc.library for some reason, you can disable it by setting env:Quake1/gfxmode to a different value ("CHUNKYPPC","CYBERGFX","AGAC2P") or using the options -cppc, -cgfx, -aga. The PowerUp and M68k programs have the chunkyppc.library functionality built within. It works exactly the same. The CD Audio Replay of QuakePPC uses the "TWF CD Audio Code" by Chris Page of The World Foundry, who kindly offered us to use his source code for the Quake Port, and allowed us to include the source code of the "TWF CD Audio Code" in the source code release of QuakePPC. The "TWF CD Audio Code" is not GPL, though. But it can be used for every projects which needs CD Audio Replay Code. To configure CD Audio Replay, set the ENV Variables env:Quake1/cd_unit env:Quake1/cd_device to the correct values (for example cd_unit to 3, and cd_device to cybppc.device are the values on my own machine). To configure the Joypad/Stick there exist the following Quake-Variables: joy_psxonly If this variable is set to 1, only the PSX Port is handled, lowlevel.library won't be used. This reduces the number of contextswitches slightly for people who have PSX Port. If you do not have PSX Port, ignore this variable (or set it to 0 which is also the default). joy_force0 to joy_force3: Sadly the auto-detection of lowlevel.library does not work with every joypad. So you can manually configure your joypad. Possible values are: GAMECTRL - This is a Joypad MOUSE - This is a Mouse JOYSTICK - This is a Joystick AUTOSENSE - Use Autodetection AUTOSENSE is the default and works for *most* Joypads/Input Devices. If it does not work for yours, change the value... Some other Amiga specific options: -mem : use MB of memory (default is 16MB). -nostdout : disable printing of all console output into your shell. This option is strongly recommened to improve performance. -console : allows to type Quake commands in your shell. Makes sense when running a server with -dedicated. -forcewpa8 : use WritePixelArray8() to draw a frame into the video RAM, instead using direct access, which is default. -nosound : disable sound. -nocdaudio : disable CD audio replay. -nomouse : disable mouse as input device. -no68kfpu : for users with BlizzardPPC and 68LC040 CPU (you can't play 68k Quake without FPU, of course!). 32MB are sufficient to play Quake and QW. With 16MB you have to limit the memory usage of Quake by using the option -mem and -surfcachesize (note that the default memory and surfache cache size were doubled against the standard values by id-software). -mem 6 or -mem 7 is the lowest amount possible. When setting the surfache cache too small, you will get an enormous slowdown and a blinking RAM-symbol on the screen. There will be a GUI for QuakePPC in the near future. BUGS They are numerous. Some known bugs: - Video options menu is not working completely. Changing the video mode when no client is running in background may lead to a software failure. - ChunkyPPC mode loses memory when changing resolution in video options menu (PowerUp only!). This is hack for the beta, because otherwise it would crash. - There seem to be generally many problems with ChunkyPPC. At the current time, you should avoid this mode, by using -cgfx or -aga options (which are faster too). - First return key is ignored after changing resolution in video options. - Click sounds when loading a map from disk. - Loading a saved game in FantasyQuake gives strange effects, like all dead enemies are standing upright as ghosts in the landscape. - Current video mode is not stored in config file. The last two are expected to be compiler bugs. The video options and ChunkyPPC problems can be avoided by using -cgfx, but you will lose all advantages like double buffering and WB-window, which the library offers. If you want to report bugs, then write to Steffen Häuser for the program parts CD-Audio, chunkyPPC graphics mode, video options menu and joystick/joypad support. Write me (Frank) for all other problems. FUTURE There are still a lot of bugs, waiting for a fix. Parts are compiled with vbcc 0.7d, some files with 0.7c, others with the official 0.7 (mainly M68k). There are also a lot of compiler bugs in these in- official alphas, which make it difficult to get a stable release. Yes, one reason for porting Quake is to debug vbcc, but it will get better. I promise! :) We have still some problems with the StormC port, although the GL-Quake port seems to be running well with it. I hoped to finish a useable Aminet release in a much shorter time, but unfortunately there are still too many bugs, IMHO. Sorry that I didn't put the source code for these beta releases on my home page. I know very well that it's GPL, and it will be released on Aminet, when the port is stable. If somebody is interested in getting the source now, just write me an email. I hope the final release will also include the (Mini-)GL versions. According to Massimiliano Tretene it's already running! :) Frank Wille frank@phoenix.owl.de Steffen Häuser magicsn@birdland.es.bawue.de