home *** CD-ROM | disk | FTP | other *** search
- Notes on memory:
- ----------------
-
- Heretic II requires at least 64 Megabytes of memory. Depending on the
- size of your workbench or workbench replacement, there might not be
- enough memory available, especially if you use the GL renderer. If
- this is the case, try to free up as much memory as possible. You can
- try to
-
- - Open just a shell, then quit workbench (works with DirectoryOpus)
- - Remove the background image if you have one
- - Disable all sounds
- - Boot with no startup sequence and just load what is absolutely
- required
- - Disable WBStartup
-
- Try to get free memory to about 60 megs. The full game will include an
- AREXX program that automatically sets up a reset-proof Ramdisk and
- boots from there.
-
- Additionally, there is a caching system for sounds and images/textures
- that allows you to restrict the amount of these items that may remain
- in memory at any time. This yields a slight performance penalty as
- this data must be reconstructed from the disk representation on the
- fly during the game, but will ensure that the game may be run with 64
- Megs of memory.
-
- These caches get their size from "console variables". There are two
- ways to set a console variable, either from the command line of your
- shell, or from the in-game console.
-
- To set a variable from the command line, use the following when
- starting Heretic II:
-
- stack 600000
- heretic2 +set variablename value
-
- "variablename" is the name of the variable, and "value" is the value
- you want to set this to. Multiple "set" commands can be issued this
- way, each with a "+" in front:
-
- heretic2 +set var1 value1 +set var2 value2
-
- The following variables control the size of the caches:
-
- ami_soundcache
- Controls the size of the sound file cache. This is preset to a
- reasonable value by default, but setting it to something bigger,
- like 5000000 will greatly enhance playing on a machine with more
- than 64 megabytes.
-
- ami_imagecache
- This controls the size of the texture cache in the *software*
- renderer only. This is preset to 2500000, meaning it will use
- approximately 2.5 Megabytes of memory for textures, which should
- be enough for most systems. Setting this to a bigger value is
- recommended for machines with more memory.
-
- gl_texturecache
- This variable controls the size of the texture cache in the GL
- renderer. Since the textures are bigger in the GL version, this
- defaults to 4000000. You may try to reset this to a lower value,
- but anything below 3000000 will most likely provoke in-frame
- swapping of textures, which might slow the game down
- considerably.
-
- As an example, lets set the sound cache to 5 megs and the imagecache
- to 3 megs:
-
- heretic2 +set ami_soundcache 5000000 +set ami_imagecache 3000000
-
- The alternative way of setting the variables is from the in-game
- console. To open the console during the menu, either select the "Go to
- console" from the options menu, or press the ESCAPE key. During the
- game, press the "tilde" key to drop down the console.
-
- Once in the console, you can enter commands. To verify the contents of
- a variable, just enter its name and press Return. To set a variable,
- enter the same sequence you would have entered from the command line,
- but without the "+", for example
-
- set ami_soundcache 5000000
-
- Further notes on reducing memory consumption for the GL renderer:
- -----------------------------------------------------------------
-
- Heretic II uses high-resolution textures, especially for model
- skins. These tend to take up large amounts of memory (for example,
- Corvus the elf's texture is 256x256 pixels in size, that's 128 KB of
- memory for a single texture). There are two console variables that are
- responsible for controlling the size of textures. These are named
- "gl_picmip" and "gl_skinmip", respectively. gl_picmip controls the
- size of normal (level) textures, while gl_skinmip controls the size of
- skins.
-
- Their contents is a numerical value that specifies how many mipmap
- levels are to be skipped. Both are pre-set to "0", meaning that no
- levels are skipped and the full texture resolution is used. Anything
- bigger than 0 will skip this many levels.
-
- If you just want to accept that this can reduce your memory, it is
- sufficient to say that the higher the gl_picmip or gl_skinmip level,
- the less memory a texture map will require. As a drawback, the higher
- the value is, the more will you downgrade the visual appearance. It is
- not advisable to set either value to anything above 3.
-
- If you want to know what is happening, read on. Otherwise, you might
- skip to the next section.
-
- To understand how this works, you should know what a mipmap is. A
- Mipmap is a collection of multiple texture maps with different sizes
- that are used to prevent loosing details when a polygon is further
- away. For any texture, there are subsequent texture maps with the same
- image, scaled to half the size, so that a 256x256 texture map will
- have subsequent images of 128x128, 64x64, 32x32, 16x16, 8x8, 4x4, 2x2
- and 1x1 Pixels. Of course, a 256x256 texture map looks better than a
- 128x128 texture map, but you might want to accept this fact and go
- with less memory consumption; in this case, setting gl_picmip or
- gl_skinmip to 1 will skip the first level (256x256 in this case) and
- start with the second level (128x128 in this case).
-
-