Thread: Amiga GL Quake
View Single Post
Old 13 July 2010, 02:25   #27
Join Date: Jan 2010
Location: Kansas
Posts: 1,284

The Warp3D demos probably crash with an unimplemented fpu instruction trap if you were to decode the guru. The reason for this is that the Avenger (Voodoo) drivers are compiled for a 68040. This is not very optimal code for a 68030 but worse is that the 68040 has a few fpu instructions that the 68881/68882 does not. The offending instructions would be fsmove/fdmove, fsmul/fdmul etc. They are basically used to do single precision and double precision rounding. Most of the time the fsmove and fdmove instructions can be converted back to fmove with the most common side effect being better precision. Hyperion should have compiled for 68020-68060 which would have helped the performance on the 68060 also as there are trapped 64 bit integer instructions slowing down the 68060, and the code would still run on a 68030. The code would probably be fast enough for some 68030 3D programs (like ADescent Warp3D and the Vague magazine) on the Voodoo3+ if it were optimized well. I don't think you would ever get more than a Quake slide show even on a fast 68030 and 68882 with optimal drivers in very low resolution. It would be nice to get it working on the 68030 though. The only problem is that the 1200 Mediator uses special mmu and no mmu versions of the Avenger drivers. You should be using the special version of Warp3D from the Mediator CD with a 1200 and not the one on Aminet. The latest version on Aminet is fine for a Zorro based Mediator. The warp3D.library in the package, interestingly enough, is compiled for 68020/68030+68881/68882 and would work well on a 68030+68882. I may change the main Avenger libs to work with a 68030 since I know the Mediator works in 2D with the 68030 now but I will probably never get around to modifying the 1200 Mediator mmu and no mmu versions. Cosmos might be convinced to do the modification though. I think you had a problem installing the data files in Blitz Quake too. Blitz Quake may have the same 68040+ fpu instructions if it's compiled for 68040 or 68060 too. I have never disassembled BlitzQuake to see. I'm afraid you would run into the problem of some Warp3D programs using these missing fpu instructions even if the Avenger drivers were modified to work. The Virge specific drivers should work on a 68020/68030+68881/68882 by the way. Here is a link to our Amiga Warp3D/Mesa project...
matthey is offline  
Page generated in 0.05328 seconds with 9 queries