v i r g e d e s c e n t ========================= That's it. The first ever game to support the CV64/3D' Virge chip. Please read this text carefully before running the game for the first time. requirements ------------ - A ViRGE chip :-) In addition to owning such a thing, it should also be attached to a CV64/3D and plugged into your amiga ;-) - CyberGraphX 3. Picasso 96 will most likely not run due to the library. Sorry 'bout that, there's nothing to be done at the moment, but it *might* change in the very distant future. - cgx3dvirgin.library. It's available in the new demo archive on www.vgr.com's ViRGE page. Final version of VDescent will come with the library. Look at the link on our home page. what's in it ------------ The game is now 15 bit screen depth, this means that you'll need a 320x200 or 320x240 mode with 15 bit, and one with 320x400 for the automapper. There's a new entry in the config file, "VirgeNumTextures". The value for this will depend on the system you are using. For ZII, the maximum value is 63, but you should use something like 60. On Z3, you may go as high as 127, but keep it to 125 or less. The meaning of this is the size of the texture cache on the card. Each texture is 64x64 pixels in size and has 15 bpp texels, hence each takes 8192 bytes of memory. The Z2 version of the CV64/3D can, for technical reasons, only addess 3.5 MB of memory, so there's only room for 64 textures. This is, however, enough for Descent. Bilinear filtering is, by default, turned on. You can toggle it with ALT-F1 during the game, but the impact is so small that it can be safely kept on. Texture filtering looks very neat, especially when close to a wall. I have not included MIP mapping, since the texture themselfes aren't MIPmapped either, and creating them by filtering yields the same result as the hardware filtering the card does anyway. Sometimes, when you reach a new part of the maze, you might notice a severe drop in performance (on my system, it gets as low as 4 FPS). This is due to the fact that new textures must be uploaded to the graphics card memory, and this takes some time. Additionally, I convert those textures on-the-fly from LUT8 to ARGB1555, which is reasonably fast, but also takes it's chunk of time... I would also like to add fogging, but so far have no idea how this works with the ViRGE chip. Might show up, but don't hold your breath. speed ----- All right, this is what will interest you most, I suspect. It is noticably faster than the original version, although not as fast as you might expect. This has a number of reasons: - The ViRGE does /not/ accelerate 3D calculations. This takes about 60% of the computing time. This version already includes some of the accelearations that my brother has build into the baseline sources, but not all of them. - Everything is 15 bpp now. This means that for explosions and stuff, more data has to be transfered over the bus (explosions and fireballs are still drawn by the processor). Doing those in assembler will obviously be a goal for future versions. - There is still some stuff going on in the background that does not make it to the screen, i.e. there's still an offscreen buffer that gets painted over. This stuff is hard to track down, but will eventually vanish. Speed will get better than this. I do get around 20 FPS in small rooms and corridors, and around 12-15 elsewhere. Textures are cached on the card, and the current hit ratio will be printed at the end of the game. It should be anywhere beyond 96%, else something is wrong... workbench support ----------------- ADescent and VirgeDescent now can be started from an icon, and read the tooltypes from the icon and add them to the command line. Basically, you can either enter OPTION=value or just OPTION The first form specifies a value for the option. To enter "-volume 100" into the icon, you would enter "VOLUME=100" into a tool type. To specify "-verbose" you would enter "VERBOSE" all by itself. Items may be commented out by a "*" or "(" as the first character. new options ----------- -texcache Specifies the number of cache entries to be used by the texmerge system. This defaults to 10, but should be raised (up to 50) if you can afford it, memory-wize. This will speed up the normal game (from 0.4 onward) as well as this Virge version. -640x480, -320x400 Use higher screen mode for the game. 320x400 is reasonably fast on my setup (A2000, 060, CV64/3D). 640x480 isn't really playable (yet?) -fpu Use optimized FPU-routines. See the main archive's readme for additional info... known bugs ---------- Quite a lot. The game might occasionally go into an endless loop, which can be interrupted by sending it a break signal. Textures distort horribly when close to walls. I am currently working on this. Perspective correction is not implemented yet, but might come in a later version. The automapper is dreadfully slow. This is due to the fact that 320x400 pixel worth of data must be converted to 15 bit. I will replace this with direct draws to improve speed. Sometimes, powerups and/or text from the headup display might vanish. This is due to the fact that the chip works in parallel to the CPU (if you didn't believe it until now, here's the proof). This results in parts of the other stuff being written before the texture is actually written. This will be fixed. conclusion ---------- This is a very early beta version. There's still a lot of glitches in it, and the replacement of the texture mapper hasn't solved all speed issues. Just watch this space for updates.