home *** CD-ROM | disk | FTP | other *** search
- ┬┬──┐ ┬┬──┐ ┬┬──┬──┐ ┌┐ ┌┬──┐
- ││ │ ││ ││ │ │ ││ │ ││
- │├─┬┘ │├── ││ │ │ ││ │ └┴─┬┐
- ││ └┐ ││ ││ │ │ ││ │ ││
- └┘ └ ┴┴──┘ └┘ ┴ ┴ └┴──┘ └──┴┘
- ─────────────────────────────────────────────────────────────────────
-
- Written by Roman Dolejsi (RDOS of DIMENSION)
-
- January 1, 1997
- Last update: January 1, 1997
-
-
- This is the documentation belonging to and explaining the use of
-
- REMUS version 0.04e
- Universal sound card emulator for MS-DOS
-
-
- TOPICS covered in this document:
-
- DISCLAIMER
- APOLOGIZE
- PURPOSE OF REMUS
- REQUIREMENTS
- INSTALLATION OF REMUS
- REMUS IN ACTION
- DIALOG LINE
- AVAILABLE BASE CARDS
- AVAILABLE EMULATIONS
- GLOBAL EMULATION TABLE
- SOUNDCARD AND EMULATION INFO
- FUTURE PLANS
- FREQUENTLY ASKED QUESTIONS
- COPYRIGHT
- WHERE TO FIND REMUS
- THANX
- CONTACTING ME
-
-
-
- DISCLAIMER:
- -----------
- Although REMUS has been tested on several systems, I cannot guarantee that it
- is bugless. Therefore I do not take responsibility for any damage directly or
- indirectly caused by REMUS as a result of known/unknown errors in it or errors
- caused by its access to your devices.
-
-
- APOLOGIZE:
- ----------
- Sorry, english is not my native language. However, I wrote this nice docy in
- english without any help. I APOLOGIZE for any mistakes in the document. Take it
- easy... Nobody is perfect.. :-)
-
-
- PURPOSE OF REMUS:
- -----------------
- REMUS is a sound card emulator for IBM PC and compatibles running MS-DOS. By
- emulation it will allow you to use products created for sound card you don't
- have. It is programmed to be used on as many cards as possible, but it is still
- in fairly alpha stage and don't expect any miracles.
-
-
- REQUIREMENTS:
- -------------
- REMUS is coded in protected mode 386-assembler. You'll then need manager-free
- MS-DOS environment (ie. without Emm386, Qemm, 386max or such memory managers).
- REMUS will run only on computers with at least 2MB and less that 16MB RAM. I'm
- really sorry for the higher limit but currently my manager will freeze due
- to unknown reason. You may also find useful to have some supported soundcard.
-
-
- INSTALLATION OF REMUS:
- -------------------------
-
- - first you have to make some directory on your drive. Then you have to unpack
- there archive file RMSxyyz.ZIP.
- (you probably did all this when you read these lines :-)
-
- - REMUS pack should consist of these files:
-
- REMUS.EXE - Main file - OPL player
- REMUS.DOC - Documentation for REMUS (this file)
- REMUS.REV - REMUS changes/revision history file
- FILE_ID.DIZ - quick info file
-
- - now you have REMUS successfully installed :-)
-
-
- REMUS IN ACTION:
- ----------------
- For emulation are used protected mode features. When REMUS starts protected
- mode memory manager is initialized and takes control over memory, I/O, IRQ, DMA
- and Timer mechanisms. When REMUS is running, your sound card is used for
- emulation of some other sound card. In that time your original sound card is
- not available. Instead, you can even have emulated sound card on the ports
- where normally sits your real card. It's because your card is internally
- managed by REMUS's emulation routines and vm86 client's accesses are remaped
- into REMUS. REMUS can't be stopped, you have to reboot the computer after
- using it.
-
-
- DIALOG LINE:
- ------------
- Dialog line looks as following:
- REMUS.EXE [/opt] base_card [/card_params] emu_card [/card_params]
-
- options:
- /b - list of supported base cards
- /e - list of available emulations
-
- Current list of base cards will tell you what to put instead base_card
- parameter and same for emu_card.
- When you want for example Gravis Ultrasound with 768KB on port 240
- to be emulated on Sound Blaster on port 220, you have to use these params:
- REMUS.EXE sblr /p220 gusc /p240 /m3
- and so on...
-
-
- AVAILABLE BASE CARDS:
- ---------------------
- These cards can be used for playing:
-
- [adlb] - Adlib (OPL2)
- Sound is generated by simulating 5-bit D/A converter. Sometimes sounds
- really weird.. accepts parameter /p (port), default value is 388.
-
- [dacm] - D/A Converter
- This is an 8-bit mono D/A converter. Can be created with minimal effords
- and its quality is not so bad. It's even very fast board. Accepts /p,
- default is 378.
-
- [gusc] - Gravis Ultrasound
- WaveTable board with noiseless sound. In REMUS are used only two voices
- offering stereo 16-bit D/A. Wavetable will be used later. It's quite fast
- board. Accepts /p (port + 100), default is 320.
-
- [pcsp] - PC Speaker
- Original beeper available on every system. REMUS uses it as primitive 6-bit
- mono D/A converter. Accepts /p (port), default is 42.
-
- [sblr] - Sound Blaster
- Board offering 8/16-bit mono/stereo sound depending on type. Here it's used
- as very slow mono 8-bit D/A converter (only minimal support now). Accepts /p
- (port), default is 220.
-
-
- AVAILABLE EMULATIONS:
- ---------------------
- More info about REMUS's emulation capabilities will come later, but now list
- of emulations would be fine:
-
- [adlb] - Adlib (OPL2) .. default: /p388
- [dacm] - D/A Converter .. default: /p378
- [gusc] - Gravis Ultrasound .. default: /p220 /m4
- * /mX - memory size of emulated GUS in 256k banks
- * on the base side there may be also /fX parameter for frequency
- [pcsp] - PC Speaker .. default: /p42
- [sblr] - Sound Blaster .. default: /p220
- [ston] - Stereo-on-1 DAC .. default: /p378
-
- There is option common to all of the emulations:
- /pXXX - port number for emulated card
-
-
- GLOBAL EMULATION TABLE:
- -----------------------
- * - fully working (at least with most progs)
- # - nearly fully working (port/irq) except DMA emulation
- q - sound card is sometimes switched off and then no emulation works
- w - emulation engine is in progress but is useless right now
- ┌──────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- │what │ P │ D │ D │ 2 │ A │ A │ S │ S │ S │ P │ P │ T │ S │ V │ W │ G │ G │ I │ A │ G │ M │ S │ M │
- │ ──>│ C │ / │ / │ x │ D │ D │ B │ B │ B │ A │ A │ U │ N │ O │ S │ C │ U │ W │ W │ M │ T │ C │ A │
- │ │ S │ A │ A │ D │ L │ L │ │ P │ 1 │ S │ S │ R │ D │ C │ S │ O │ S │ A │ E │ I │ 3 │ C │ U │
- │ │ P │ │ S │ / │ I │ G │ │ R │ 6 │ 8 │ 1 │ T │ M │ M │ │ D │ │ V │ 3 │ D │ 2 │ 1 │ I │
- │where │ K │ │ T │ A │ B │ │ │ O │ │ │ 6 │ B │ 2 │ S │ │ │ │ E │ 2 │ I │ │ │ │
- ├──────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- │PCSPK │ *q│ *q│ *q│ │ wq│ │ #q│ │ │ │ │ │ │ │ │ │ #q│ │ wq│ │ │ │ │
- ├──────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- │D/A │ * │ * │ * │ │ w │ │ # │ │ │ │ │ │ │ │ │ │ # │ │ w │ │ │ │ │
- ├──────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- │D/AST │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- ├──────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- │2xD/A │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- ├──────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- │ADLIB │ * │ * │ * │ │ * │ │ # │ │ │ │ │ │ │ │ │ │ # │ │ w │ │ │ │ │
- ├──────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- │ADLG │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- ├──────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- │SB │ * │ * │ * │ │ w │ │ # │ │ │ │ │ │ │ │ │ │ # │ │ w │ │ │ │ │
- ├──────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- │SBPRO │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- ├──────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- │SB16 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- ├──────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- │PAS8 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- ├──────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- │PAS16 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- ├──────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- │TURTB │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- ├──────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- │SNDM2 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- ├──────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- │VOCMS │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- ├──────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- │WSS │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- ├──────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- │GCODEC│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- ├──────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- │GUS │ * │ * │ * │ │ w │ │ # │ │ │ │ │ │ │ │ │ │ # │ │ w │ │ │ │ │
- ├──────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- │IWAVE │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- ├──────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- │AWE32 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- ├──────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- │GMIDI │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- ├──────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- │MT-32 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- ├──────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- │SCC-1 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- ├──────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- │MAUI │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- └──────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
-
-
- SOUNDCARD AND EMULATION INFO:
- -----------------------------
-
- ───═══ AWE 32 board ═══───
-
- This is name of wavetable board created by a company Creative Labs, Inc.
- It consists of standard Sound Blaster 16 board (refer to SB section) and
- advanced wavetable processor EMU-8000 made by a renomed company E-MU, Inc.
- Chip is capable of managing 32 16-bit independent voices, each with
- its own 2 LFOs (low frequency oscillator), 2 EGs (envelope generator),
- low pass filter and reverb and chorus effects. Sounds are created from
- samples stored in internal memory space. EMU8000 can access up to 32MB of
- memory, however in AWE32 there is only 1MB dedicated for ROM (expandable
- to 4MB ??) and 512kB for RAM (expandable to 28MB). All voices are running
- at constant speed 44.1kHz, while their LFO's speed may vary from 0.042Hz
- to 10.72Hz and low pass filter's frequency from 100Hz to 8kHz. Whenever
- EMU accessess RAM data or is drived to pass FM music from OPL chip, it uses
- 2 voices to refresh RAM memory and for FM throughpass. In that case only 30
- voices are available for wavetable playing.
- All effects for every voice and also some overall effects are made by
- an effect engine, which is right now UNDOCUMENTED. These effects include
- various Chorus, Hall and Reverb effects (for today, because effect engine
- probably offers some programmability for myriads of new effects).
- AWE 32 hasn't dedicated MIDI engine managing EMU-8000 and therefore it
- has mechanisms for generating an NMI when something tries to access MIDI
- ports. Software driver running in memory can then simulate missing MIDI
- engine.
-
- ───═══ AWE 32 emulation engine specification ═══───
-
- Right now only some very basic port mechanisms are emulated. No sound
- yet nor any EMU-processor dependent function (EG/LFO/Filter counting etc.).
- Apart of everything mentioned I can say effect engine will probably be
- never supported because of lack of ANY documentation and this task will
- also surely eat very much CPU power.
-
- ───═══ AWE 32 emulation engine compatibility ═══───
-
- Name Author Type Status Checked by Comp Ver
- ────────────────────────────────────────────────────────────────────────
- FXTweak Infinity util ok run/quit RDOS 4/160 .03a
-
-
- ───═══ D/A converter on LPT port ═══───
-
- This is very simple board offering one D/A converter accessed via
- paralel port. It's not detectable and is simple to use. There are many
- circuits which can serve as D/A converter compatible boards. One of them,
- so-called "resistor DAC" is very very inexpensive. It's sound quality is
- not so bad. It's probably the best solution for REMUS users without any
- sound card. Its circuitry is described below.
- Also some more advanced boards offer D/A compatibility. These boards are
- sometimes detectable and some games use their detection for enabling sounds.
- One of these boards is Covox Speech Thing and another one is called Disney
- Sound Source (this one probably offers something more but I have not info
- about it at all).
-
- ───═══ Circuitry of the D/A converter on LPT port ═══───
-
- You need one plug for your amp, one for your parallel port and 9 20k
- and 9 10K resistors. Use 1% resistors if possible ─ and 20k sound much
- better than 22k. The 100nF capacitor may not be needed, try removing it
- if this circuit sounds poor.
-
- Paralel Port:
-
- signal pin 20k 20k
- D0 2 >───███─┬─███──0v
- 20k █ 10k
- D1 3 >───███─┤
- 20k █ 10k
- D2 4 >───███─┤
- 20k █ 10k
- D3 5 >───███─┤
- 20k █ 10k
- D4 6 >───███─┤
- 20k █ 10k
- D5 7 >───███─┤
- 20k █ 10k
- D6 8 >───███─┤
- 20k █ 10k
- D7 9 >───███─┤
- 20k █ 10k 100nF
- ├──────┤█────> To amplifier
- █ 10k
- GND 20 >───────┼────────────>
- 0v
-
- ───═══ D/A converter emulation engine specification ═══───
-
- Fully working D/A emulation. Standard init port is 378h (LPT1).
- Some check functions of Disney Sound Source are implemented.
-
- ───═══ D/A converter emulation engine compatibility ═══───
-
- Name Author Type Status Checked by Comp Ver
- ────────────────────────────────────────────────────────────────────────
- DMP 3.01 Otto Chrons player ok RDOS 4/66 .02a
- Power Replay M. Grof player ok RDOS 4/66 .02a
- Another World Delphine game ok RDOS 4/66 .02a
- AnotherW Intro TDT intro ok RDOS 4/66 .02a
- Fascination Koktel game ok RDOS 4/66 .02a
- Gobliins Koktel game ok RDOS 4/66 .02a
- Visual Player many ppl player ok RDOS 4/160 .03a
- ModPlay Pro Mark J.Cox player ok RDOS 4/160 .03a
-
-
- ───═══ Gravis UltraSound board ═══───
-
- This is name of family of wavetable boards created by a company called
- Advanced Gravis Computer Technology Ltd.
- Onboard pipeline chip named GF1 is capable of managing up to 32 16-bit
- independent voices (D/As) using samples stored in onboard RAM (256k-1MB).
- Sampling frequency depends on number of used voiced (14..32) and may
- vary from 44kHz down to 19kHz. Current voice position pointer in memory
- has fraction part and resulting sample is interpolated using that number.
- This leads to very high quality of produced sound even when using low
- frequency samples. For transfering samples to/from GUS's RAM, board's
- ports or DMA can be used. However, ports are not so fast as DMA that
- many products prefer DMA uploading.
- Basic board had no sound source mixer while later versions came with
- ICS or other mixer. Later boards (Gravis UltraSound MAX) came also with
- special chip named CODEC for Digital Signal Processing. The newest card
- (Gravis UltraSound PnP) uses only one chip with built-in GF1, mixer and
- CODEC chip. This is AMD's InterWave chip and offers except standard GUS
- also up to 16MB ROM / 16MB RAM locally adressable memory, digital mixer
- for mixing voices together, 64 LFOs for tremolo/vibrato effects, effects
- processing for chorus/reverb/flange..., stable native frequency 44kHz.
- PnP's CODEC has independent sampling/playing rates, freqs up to 48kHz,
- very large FIFOs and more... GUS PnP (Pro) ships with 1MB ROM and
- 0kB (512kB) RAM expandable to 8MB (8,5MB) (via 30-pin SIMM slots).
- All boards are not compatible with any other standard but are able to
- generate NMI (Non Maskable Interrupt) when some program access permitted
- ports. This process is used for emulating other platforms (namely
- Adlib (OPL2), Sound Blaster DAC or Roland MT-32/SCC-1 and General MIDI).
-
- ───═══ Gravis UltraSound emulation engine specification ═══───
-
- ALL functions of GF1 are emulated. Except this also onboard timer and
- IRQ generator are emulated. There is no DMA emulation now (buggy REMUS
- DMA manager !?!).
- Sound is created via software GF1 pipeline emulation engine offering
- all features of GF1 (16-bit, uni/bidirectional loops, volume ramping,
- interpolation). Stopped voice is not emulated for speed reason (on
- original GUS it may be used as a simple D/A converter - but nearly isn't).
- Software mixing of all voices is done at the same frequency as GF1 or
- at its multiplied derivate. Multiplication factor can be choosed during
- REMUS startup and may vary from 1/4 to 9/4 (Freq 11kHz- to Freq 99kHz-).
- Standard factor is 1=4/4 (Frequencies 44kHz - 19kHz like those found in GF1).
- IRQ/DMA numbers are changeable using ULTRINIT (GUS utility). Standard
- setting is IRQ 11, DMA 5 (note that DMA manager in REMUS doesn't work now!).
- Standard GUS port number is 220h.
- GUS Memory is selectable (1-4: 256k, 512k, 768k, 1MB) and is allocated
- from available extended memory during REMUS inicialization. Standard value
- is 1MB memory (value 4).
- NMI is not emulated (MEGAEM / SBOS don't work).
- ICS, CODEC or whole InterWave chip are not emulated.
-
- ───═══ Gravis UltraSound emulation engine compatibility ═══───
-
- Name Author Type Status Checked by Comp Ver
- ────────────────────────────────────────────────────────────────────────
- Scream Trck 3 FC medit ok RDOS 4/160 .01b
- GusPlay 1.5 Cascada player ok RDOS 4/160 .01b
- Cartoon MiST 64k ok RDOS 4/160 .01b
- Debut DarkZone demo ok RDOS 4/160 .01b
- Bill G Force Complex 64k ok, slow!? RDOS 4/160 .02a
- Oops! Elf 64k ok RDOS 4/160 .02a
- Louise Karma 64k ok RDOS 4/100 .02a
- Second Reality FC demo ok, 1/2 spd RDOS 4/160 .01b
- Big Deal Acme demo - vcpi/dpmi RDOS 4/160 .01b
- Cyboman 3 Hnut Loop demo - vcpi/dpmi RDOS 4/160 .01b
- Flight Sin demo ok RDOS 4/160 .01b
- Arrow Grid 64k ugh, chip?! RDOS 4/160 .01b
- Shadow Team Hirmu! 64k ok RDOS 4/160 .01b
- Res. Rangers Live! 64k ok RDOS 4/160 .01b
- Shamaan Complex demo ok RDOS 4/160 .01b
- Mind Plr 1.0 Nght Brkr plr ok RDOS 4/160 .01b
- Amoeba Plr 0.9 Amoebasoft plr ok RDOS 4/160 .01b
- Disorder 2 Statix trckr - vcpi RDOS 4/160 .01b
- Extreme 0.97b Extreme trckr - vcpi RDOS 4/160 .01b
- GusDrive II CCS-prod. ramdsk - blockdev RDOS 4/160 .01b
- C64S Emulator M.Peternel emultr - silent RDOS 4/160 .01b
- PolyPlay AcmE plr ptrn skip RDOS 4/100 .02a
- Crystal Player S.Grandjoux plr ok RDOS 4/100 .02a
- DMP 4.01 Otto Chrons plr ok, w/o dma RDOS 4/100 .02a
- Digital Plr Pro plr - irq/dma RDOS 4/100 .02a
- Impulse Tracker Jeffrey Lim trckr ugh, lo spd RDOS 4/100 .02a
- SSS Legend Des. plr ok RDOS 4/160 .02a
- SidPlay 1.40a M.Schwendt plr - Exception RDOS 4/160 .03a
- BBStro Dig.Design intro ok RDOS 4/160 .03c
- BNP Blue Nose intro ok RDOS 4/160 .03c
- The One Eclipse intro ok RDOS 4/160 .04d
- TDU Jam Dream Dsgn intro ok RDOS 4/160 .04d
- Joe Mix TPOLM demo ok RDOS 4/160 .04e
-
-
- ───═══ PC Speaker ═══───
-
- Although PC compatible systems are equipped with no sound board at all,
- the simple thing that makes your PC beep, can also be programmed to
- substitute weird D/A (6-bit) to produce digitized sound. Some programs
- (the older ones) have used this capability to produce digitized sounds or
- some music.
-
- ───═══ PC Speaker emulation engine specification ═══───
-
- Emulated PC Speaker is always switched to digital which is fully emulated.
- No beeping can be done. Digital PC Speaker emulation is not as bad as someone
- may believe, because it's often done on real D/A converters and 6-bit Speaker
- value is expanded to 8/16-bit equivalent instead.
-
- ───═══ PC Speaker emulation engine compatibility ═══───
-
- Name Author Type Status Checked by Comp Ver
- ────────────────────────────────────────────────────────────────────────
- DMP 3.01 Otto Chrons player ok RDOS 4/66 .04a
- ModPlay Pro Mark J.Cox player ok RDOS 4/160 .04a
- Inertia Player Inertia player ok RDOS 4/66 .04a
-
-
- ───═══ Sound Blaster board ═══───
-
- This is name of family of boards created by Creative Labs, Inc.
- Sounds are made via onboard D/A converter. To make things easier there
- is a DSP (Digital Signal Processor) which accepts some commands. These
- commands are used to set up some parameters on the card or send digital
- data to the D/A converter. When multichannel music is needed, it's up to
- the program to mix channels together and then send result to only ONE
- D/A converter on the board. Some new boards of this type use two D/As,
- every of them assigned to one side (left/right) for stereo music. Basic
- board is capable of making 8-bit mono sound while the newest can cope
- with 16-bit stereo samples (two 16-bit D/As). The board also supports
- so-called DMA channel for sending data to D/A without CPU usage. 16-bit
- board has to have two DMAs, one 8-bit and one 16-bit. For proper work
- of DMAs, an IRQ is needed (It informs computer that DMA process has ended).
- On 8-bit boards DMA and IRQ numbers are set with onboard jumpers while
- on 16-bit boards DMA and IRQ numbers are runtime changeable.
- On some 16-bit boards there is another chip called CSP (old ASP). It is
- short term for Advanced Signal Processor which is mainly used to compress
- recorded stream of data or for voice recognition. Documentation for this
- chip has never been released and therefore it will never be support for it
- in REMUS (probably).
- Apart of this, there is also an onboard OPL2 chip for Adlib compatibility
- (refer to FM/OPL emulation). On SB Pro 1 there were two OPL2 chips for stereo
- music available, each of them for one side. Since SB Pro 2 there is only
- one OPL3 stereo chip capable of more advanced, 4-operator FM music.
- All boards are backward compatible down to Sound Blaster 1.0.
-
- These board versions are known:
-
- ──══ Name ══── ───═══ DAC specification ═══─── ─═ DSP ═─
- ┌───────────────────┬────────┬────────┬─────────────────────┬─────────┐
- │ Sound Blaster 1.x │ mono │ 8-bit │ up to 11kHz │ 1.0x │
- ├───────────────────┼────────┼────────┼─────────────────────┼─────────┤
- │ Sound Blaster 2.0 │ mono │ 8-bit │ up to 22kHz │ 2.0x │
- ├───────────────────┼────────┼────────┼─────────────────────┼─────────┤
- │ Sound Blaster Pro │ stereo │ 8-bit │ up to 22kHz / 44kHz │ 3.0x │
- ├───────────────────┼────────┼────────┼─────────────────────┼─────────┤
- │ Sound Blaster 16 │ stereo │ 16-bit │ up to 44kHz │ 4.xx │
- └───────────────────┴────────┴────────┴─────────────────────┴─────────┘
-
- ───═══ Sound Blaster DAC emulation engine specification ═══───
-
- Right now only port and IRQ emulation works. Emulated DSP version is
- 1.01 with some check functions from 3.xx DSP (SBPro's DIAGNOSE works :-).
- IRQ number is not selectable and is permanently set to IRQ10 (lower IRQs
- do not work for some strange reason - ie. REMUS IRQ manager bug??).
- Don't even think about DMA emulation. REMUS's DMA manager is unusable.
-
- ───═══ Sound Blaster DAC emulation engine compatibility ═══───
-
- Name Author Type Status Checked by Comp Ver
- ───────────────────────────────────────────────────────────────────────
- SBPro Diagnose Creat.Labs util ok (DMA-) RDOS 4/33 .03a
- Another World Delphine game ok RDOS 4/33 .03a
- AnotherW Intro TDT intro ok RDOS 4/33 .03a
- ModPlay Pro Mark J.Cox player ok RDOS 4/160 .03a
-
-
- FUTURE PLANS (Global targets):
- ------------------------------
- * EMS support
- - memory paging manager for RPMMM needed first
-
- * DPMI support
- - probably 32-bit clients only
- - minimal functions, but at least those needed by Tran's PMODE extender
- - at the beginning buggy stack management (I don't understand it now)
-
- * complete move in protected mode
- - right now are base card inits in real mode (really messy, isn't it? :)
-
- * total modularity
- - one code for one emulation target at the binary level (now only on
- source level, during compilation distributed throughout bases)
-
- * online settings menu
- - with runtime-changeable emulations, memory options, maybe disassembler
-
- * coprocessor usability
- - FPU is now detectable, but generates Divide by zero error when accessed
-
- * Pro-Pack error solving
- - now Pro-packed files definitely hang computer (why?! not under debugger!)
-
- FUTURE PLANS (Emulation targets):
- ---------------------------------
- * full Sound Blaster emulation
- - DMA manager is not functional - DMA support is not possible now :-((
- - stereo
- - 16-bit
-
- * Adlib (OPL2) emulation
- - realtime FM digital emulation is very very hard thing to do :-)
-
- * OPL3 emulation
- - Depends on OPL2 emulation, would probably need the most CPU power
- ever seen.
-
- * Gravis Ultrasound DMA/IRQ handling emulation
- - should work but doesn't now .. flame must go to REMUS DMA Manager
-
- * Gravis UltraSound PnP emulation (AMD InterWave wavetable chip)
- - synthesizer part will be probably first
- - time for work... (have very complete documentation)
- - its digital mixer is very interesting thing (and hard to emulate)
-
- * Sound Blaster AWE32 emulation (EMU8000 wavetable chip)
- - time for work... (have documentation for main pipeline processor)
- - some documentation for EMU's effects engine needed
- (dummy chaos of data arrays sent to card really does not tell anything)
- - probably the hardest emulation I've ever seen
-
- * Roland MT-32 / Roland Sound Canvas / General Midi emulation (wavetable chips)
- - documentation for SYSEXes needed
- - really explaining documentation for all the wheels and other effects
-
-
- REMUS FREQUENTLY ASKED QUESTIONS:
- ---------------------------------
- * REMUS hangs up after initialization
- - if you have more than 16MB RAM, REMUS will not work (for now)
- - if you have some memory manager incompatible with INT15 or HIMEM running,
- REMUS will not work
- - if you don't have XMS driver loaded and some application uses Xmemory
- via INT15 BIOS services, computer hangs when REMUS starts and this
- application will try to access that Xmemory (for example Norton Cache)
-
- * REMUS does not want to run with PM driver (EMM386/QEMM/Win) installed in mem.
- - REMUS is clean 32-bit PM manager. It needs completely free environment to
- operate. Therefore other PM managers will NEVER be supported in REMUS.
- REMUS is from the beginning meant as a complete memory manager so it's
- internal functionality is absolutely incompatible with anything other
- (even VCPI's ProtMode level 0).
-
- * When I install REMUS there is no EMS memory in system. Some of my programs
- don't want to run at all.
- - EMS services are not yet supported by REMUS, sorry...
-
- * My application told me I have no VCPI compatible environment and refused
- to run when I started it under REMUS.
- * My application refused to run with exit message about impossibility to enter
- DPMI protected mode.
- - VCPI/DPMI are 32-bit Protected mode interfaces allowing your applications
- to run 16/32-bit protected mode code under other 32-bit PM environment
- installed in memory. Although these ifaces are not yet supported under
- REMUS, there exist light of hope that DPMI will be supported in far far
- future. Right now DPMI interface is provided to ensure clients using it
- won't hang computer via their lame PM detection (ie. Borland's dpmiload).
-
- * How much system memory takes REMUS for its work ?
- - REMUS takes about 1k of conventional mem. In fact, everything is now in
- Xmemory (above 1MB) and takes there about 25kB-1050kB depending on current
- running emulation. But Xmemory requirements probably don't bother anyone.
-
- * GUS emulation is sometimes STRANGE !! often "ultraclicks" or noise occurs !!
- - The noise is generated due GUS emulation sampling frequency. Try to use
- at least 75% (33kHz) or more of GUS real sampling speed. Emulation engine
- is rather old and I'll probably try to make completely new engine some day.
- Maybe then also those painful ultraclicks disapper.
-
- * emulations on SB are really slow, sometimes computer hangs up.
- - Because of SB port speed emulations work fine up to about 20kHz. Above
- this limit SB reply is too slow and machine often hangs up. This problem
- will disappear after making DMA manager and DMA-using SB support.
-
- * all emulations on PCSP are sometimes useles (quiet).
- - In some programs PC Speaker is switched off and then no emulation works
- (speaker is simply quiet).
- - This is fault of my PCSP-driver and will be corrected in one of the next
- versions of REMUS.
- - example: Fascination game by Koktel vision.
-
- * I've heard Disney Sound System sound card is something like D/A converter.
- Is it right ? And what about Covox Speech Thing ?
- - Those cards offer standard DAC on LPT compatibility, but they have
- probably also some DMAs or other things for faster playback. I have no
- documentation about them and also some good programs to test functionality.
- - Already working example: Another World game by Delphine software (DAC LPT)
- - Not working example: Wolfenstein 3D game by ID software (DMA DAC ??)
-
- * I've seen there are some strange emulations (for example: D/A on D/A). What
- are they for ?
- - these emulations are for people owning the right sound card but on another
- port / IRQ / DMA they need...
-
- * Could I use D/A -> D/A emulation for redirecting printer to another LPT ?
- - No, generally not. Emulation works only for D/A output, LPT control port
- emulation is designed to work moreless like Covox/Disney Sound Source's
- LPT DACs, not like I/O ports of standard printer port.
-
- * Some emulations are generally quite slow. What's the problem ?
- - With some soundcards emulation could not be fast because of their speed.
- - Some emulated sound cards are so hard to emulate (example: GUS) that the
- emulation is getting to be quite slow.
- - Protected Mode system exception handling eats some system resources
- so even simple emulations are slower than should be.
- - example: D/A converter on D/A converter.
-
- * I've realised that all IRQ and DMA emulations don't work. Am I right ? Why ?
- - yes, they don't work. Some nasty bugs in REMUS's IRQ/DMA manager cause
- that all emulations which need some IRQ or IRQ/DMA don't partially or
- completely work. IRQ/DMA is currently needed for emu_GUSC and emu_SB.
-
- * Hey guy, where is my card in the list of supported soundcards ? How you dare
- my soundcard is not supported ?
- - That's not my fault. Your card will be supported if I get enough info
- about it and some program which uses it (for testing). Then I would
- probably include it in REMUS. Also one piece of that card borrowed would
- greatly improve implementing.
-
- * Ugh, why is some card listed in emulations but is not supported as base ?
- - That's simple. I would probably not include any sound card support as base
- until I get it for testing. But emulation fuctionality I can easily test
- in available programs by setuping them to that card.
-
- * Hey boy, I wanna emulation of XY$@#325 sound card and there is none. What
- should I do for it ?
- - First you should look in the FUTURE section to know the status of that
- card. If you find no progress of that card there, you should look for
- some programming info about that sound card and then you can send me this
- info and the program which works with that sound card (for testing).
- If you don't find any programming info you can still send me the program
- that uses it and i'll try luck and debug that piece of code.
- But in both cases don't expect fast response - I'm really really lazy :-)
- Basic block of emulation takes me about 2-3 days to complete but really
- powerfull and featured emulation takes me about next half year of my lazy
- programming :-)
-
-
- WHERE TO FIND REMUS:
- -----------------------
- Each time I have a new version of REMUS available, I'll upload it to:
-
- ftp://sorry.vse.cz/dimension (Dimension FTP site in Prague, Czech Republic)
- http://sorry.vse.cz/dimension (Dimension Inet HeadQuarters, Czech Republic)
-
- REMUS will be probably also available at ftp.cdrom.com and ftp.sunet.se
- FTP archives.
-
- Ask your local Internet or FTP expert on how to reach them.
-
- Another way is to visit REMUS's homepage at address:
-
- http://sorry.vse.cz/dimension/rdos/remus (Http site in Prague, CZE)
-
-
- THANX:
- ------
-
- Although I did all the programming, there are few friends which helped me with
- some things about this program. Thanx go to:
-
- Ondrej Stasek (Ondar/Dimension) - testing and suggestions
- David Voracek (Assassin/Dimension) - - || -
-
- and other friends for their (mostly) betatesting and suggestions..
-
-
- CONTACTING ME:
- --------------
- If you want to contact me, write to address listed below. If you want to send
- me suggestions, tips or simply greets, send it freely. Also some money would be
- good as a power and motivation for further work :-) If you find any new sndcard
- and its programming info you can also send it to me (the info). Nice would be
- also any report of success in functionality of REMUS. Don't forget many
- reactions will bring me in new effort in this rather old project.
-
- My address: E-Mail: (non-commercial)
- Roman Dolejsi (RDOS) roman@sorry.vse.cz
- Husova 419, Vcelna roman@romeo.pf.jcu.cz
- 37382 Ceske Budejovice
- Czech Republic
-
- Please do not send me E-mails longer than 150kB (because of our local smtp
- server limit).
-
- *** end of REMUS documentation ***