README for QuakePatch V0.4 YOU USE THIS PROGRAM AT YOUR OWN RISK! I MAKE NO GUARANTEES ABOUT ITS RELIABILITY OR FITNESS FOR PURPOSE. I TAKE NO RESPONSIBILITY FOR ANY DAMAGE OR LOSS THAT MAY OCCUR AS A RESULT OF USING THIS PROGRAM. But, hey, it works ok for me... Short Description: ================== This is a small patch program that may make Quake Amiga run up to 20-50% faster framerate when using a 68040/68060. It will also work with QuakePlayer V0.96. It does not modify any program files. For those who never read readme's longer than 3 lines: Run QuakePatch before Quake. See if it makes a difference. If not, read this file. What Is This? ============= If you haven't got a 68040 or 68060, this program is no use to you. The FPU you are using (you have got an fpu, haven't you?) will be a 68881/2 and will not have the problems outlined below. Trying not to be too techy, basically the 68040 and 68060 do not have full support for all the FPU instructions which were in a 68882. Quake uses a lot of FPU code and it has been written for a 68882. Your 68060.library will cover for the missing instructions by emulation, but this is very slow compared to real in-line code. To improve performance you can run CyberPatcher or OxyPatcher which real-time patch running programs in memory with calls to fast replacement routines. Unfortunately, my version of CyberPatcher (V1.152) does not catch all of the problem instructions in Quake. QuakePatch can be considered to be a very small and specific CyberPatcher-type program for use only with Quake Amiga. It will only react to Quake and will not affect other programs. It replaces specific instruction *sequences* with optimised code which performs a similar function. The code surrounding the problem instructions has been examined to see exactly how accurate the replacement code needs to be so it does not waste time doing an unneccessarily precise emulation. QuakePatch code is written in assembly language for speed. I have tested this program with my A1200, Blizzard'060, 16Mb, AGA, but I am not able to test it with '040 or gfx cards. If there's a problem, tell me what it is in as much detail as possible and I'll try to fix it. How To Use: (Ah, at last..) =========== I haven't thought of a simple way to activate the patch on a per-game basis which would be easily installable, yet. Probably the best way to use it is to copy the QaukePatch program into your C: directory (or anywhere else you feel like) and execute it as part of the startup. Edit your S:User-Startup to include the line: C:QuakePatch Assuming you put it in C:. No "run" or "<>nil:" is required. OR you could run it manually before starting Quake. You may wish to try out the patch to ensure it works ok before installing it permanently. NOTE: To gain full benefit, so that QuakePatch can catch all the instructions it deals with, it should be started AFTER Cyberpatcher/Oxypatcher and BEFORE Quake. (The above S:User-Startup installation may not meet those conditions, for eg, if you are starting Cyberpatcher in WBStartup.) On the other hand, the majority of the speed increase is gained in those parts NOT dealt with by Cyberpatcher, in which case QuakePatch can be started anytime, including when Quake is running. DO NOT give the QuakePatch program a Workbench tool icon, because this version is *CLI ONLY* and will crash your computer if run from WB. The next release of this patch will include possibility to start it in the WBstartup drawer, but for now.... not. Trying It Out: (The whole point..) ============== To get an idea of what sort of improvement you get with your machine configuration, try the following: 1) DON'T install or run QuakePatch. Just copy it somewhere on your harddrive. 2) Open a Shell window on Workbench. 3) Run Quake in the normal way. 4) Start a Single Player New game. 5) Move to some place in the Start Room 6) Get the Quake Console to pop down. (The ~' key) 7) Set screensize to 100% by the menu. 8) Type TIMEREFRESH in the quake console. 9) Wait a few seconds, then note the Frames Per Sec. reading. (About 4-7) 10) Flip back to WB by pressing Left-Amiga-M. 11) Run QuakePatch from the Shell window. 12) Flip back to Quake. 13) Do a TIMEREFRESH again. 14) Note the (hopefully) improved reading. (About 6-10) Some Points to Note: ==================== 1) On my 64MHz (overclocked) Blizzard '060 on AGA, I get a framerate increase from about 6.5fps unpatched to 9.5fps patched (45% increase) on average. This permits me to play on an 80% size 320*200 NTSC screen at about 10fps ave. 2) Timerefresh is a pretty poor way of judging framerate. It is highly dependent on where you're standing, since it rotates your view 360° and times it. If you look straight down at the floor and try it you will get a very high framerate compared to standing in a complex room and viewing the walls. Walk about and try different places to see what sort of speeds you get. 3) Timerefresh seems buggy with some screensizes less than 100%. It sometimes trashes memory, so don't blame me or Quakepatch if this happens when doing this test! 4) Although the computer reports these numbers, the subjective increase is quite slight. Perhaps it would be more apparent for those users with fast graphics cards because there may be too much C2P overhead on AGA. (If someone could tell me about that at all, please?...) 5) You really must run Cyberpatcher or similar in addition to this patch as there are a number of other emulation overheads to take care of. If not you are really not getting the performance you could. 6) You cannot remove the QuakePatch once it has run. If you run it again, it will install itself again. This will not harm anything (hopefully) but will consume approx 1K of ram and fractionally slow down any non-cyberpatched 68060.library emulations. 7) Users of OxyPatcher may not notice any significant speed increase since the offending instructions may be patched already. I have no way of testing this. 8) If ClickBOOM release update patches for Quake that modify the sections of code that QuakePatch uses, then QuakePatch will no longer work. This wont prevent Quake from running, it just may slow it down again. ======================================== I would like to congratulate ClickBOOM/PXL for producing an excellent port of Quake to the Amiga. The presentation, with the nice packaging, easy install script, instructions/poster and full original CD audio really makes it worth buying. Distribution/Usage Conditions: (The usual stuff) ============================== 1) This program remains Copyright the author. 2) It is in the popular concept of "Freeware": You may copy the program and accompanying file(s) for free, but it is not Public Domain: you may NOT reverse-engineer and modify it. 3) You MUST distribute this readme file when you distribute the program file. 4) You may NOT sell or otherwise distribute this program for profit. Nor may you include it as part of a profit-making package. 5) You may NOT distribute modified or incomplete versions of this program. 6) You may not impose modified distribution conditions when you copy this program. 7) RIGHTS TO USE OR DISTRIBUTE THIS PROGRAM IN CONJUNCTION WITH ILLEGAL COPIES OF QUAKE AMIGA IS EXPRESSLY DENIED. 8) ClickBOOM/PXL have special rights with regard to this program: They may include it with any distribution of Amiga-related material, and they may contact me for the sourcecode if they so wish. 9) Quake Amiga is Copyright ClickBOOM, Pxl Computers and ID Software. 10) I do not have any connection with the producers of Quake: do not direct any queries or bug reports to them; do not direct queries about Quake to me! ======================================================================== If you want to send bug-reports or (civilised!) comments to me, I am: Ian Greenway 7 Tolwin Walk Norwich NR3 4TP UK