GUS

From ZDoom Wiki
Jump to navigation Jump to search

GUS is a MiniWikipediaLogoIcon.pngGravis Ultrasound emulator available as one of the software synthesizers offered by ZDoom. It is based on a trimmed-down MiniWikipediaLogoIcon.pngTiMidity, but is internal to ZDoom (no need to set up an external program) and modified using the UltraMID driver source code as reference to make it sound closer to the original sound card.

Setting up GUS

To use ZDoom's GUS emulator, the midi_config console variable needs to point to a valid TiMidity configuration file. This is used as a fallback option if no DMXGUS lump is found, or if midi_dmxgus is off.

A directory full of GUS patches should exist and be pointed by the gus_patchdir and/or be in the /midi subdirectory of the directory indicated by the %ULTRADIR% MiniWikipediaLogoIcon.pngenvironment variable.

Other options affecting the GUS emulator can be modified from the advanced sound options menu.

Note about memory: By default, the GUS emulator uses unlimited memory to load patches. The original hardware loaded patches in the GUS card's own memory, which was limited. Models were available with multiples of 256 kilobytes of RAM, up to one megabyte. Crashes could happen when trying to load more patches than could fit in the card's memory.

To provide configurations compatible with all cards, several levels of remapping were created. On lower-end hardware, instruments were replaced by other instruments deemed close enough, so as to reduce the number of discrete patches that had to be loaded.

ZDoom's internal TiMidity player uses normal system memory to load patches, which is not so harshly limited. However, if you want, you can use the gus_memsize console variable to use patch remapping nonetheless.

Historically, all DMXGUS lumps known only feature custom values for the 1024K remap level, the other cards still using the driver defaults. Therefore, unlimited sounds best, followed by 1024K, but the other values will generally not sound adequate.

Advantages and drawbacks

  • Easier to set up than TiMidity++, though with less features.

See also

External links