"Lee K. Seitz" wrote:
> 
> Jim Leonard boldly stated:
> >
> >U6 definitely sounds
> >best on an MT-32 -- that's where the music was composed originally, and all
> >other versions (Adlib, Tandy, etc.) were derived from the MT-32 soundtrack.
> 
> Speaking of using different sound cards with the same game....  Has
> anyone here ever gotten Monty Python's Flying Circus (a Nintendo-style
> platformer/shooter from the early '90s) to work with a non-Adlib card?
> The SoundBlaster's supposed to be 100% Adlib compatible, right?
> 
> When I first got this game, I tried it on my roommate's IBM PC with an
> Adlib card and it sounded great.  When I got a 286 with a SoundBlaster
> Pro, it wouldn't play through the card, just the PC speaker.  It was
> the same on my Pentium 133 with some kind of SB card.  (I forget which
> one now.)  I haven't tried on my current computer, but I'm betting
> it'll be unplayable at 700 MHz.  IIRC, Adlib was the only card the
> game supported.

It is, and the Sound Blaster is 100% compatible with the Adlib.  The problem
you're running into is, again, a speed problem.  I'll explain:

The game supports Adlib but relies on its auto-detection routines to determine
if an Adlib is in the machine.  Those routines follow Adlib's documentation for
detecting the Adlib:  Write an identification byte to 0x388, then wait 35 ns,
then read back a result byte.  The common method of waiting was to do a short
JMP -- think of it as a "busywait" or a "for-next loop" method of waiting.  If
you didn't get back the byte, there was no Adlib.  

Now what happens on a faster machine?  The detection routine whips through the
35 short JMPs much quicker than it is supposed to.  When it tries to read the
ID byte, the Adlib isn't ready to supply it yet.  So no byte is read, and no
Adlib card is detected.

Adlib revised their tech docs at least 4 times from 1987 to 1990, supplying
different methods of fixing this.  The end result they came up with (looping 35
INs from the port, if memory serves) works fine on all machines, but it came
too late for early adopters of the Adlib who followed their earlier routines to
the letter and already shipped their programs.  The detection stuff isn't too
bad; you can usually patch or force a program to detect the Adlib easily
enough.  What's worse is that controlling the Adlib -- actually playing sound
effects and notes -- is susceptable to the same crap.  So the game sounds
horrible even if it works.  Windwalker by Origin is one notable example of this
as it suffers pretty badly; others include Budokan and Indy 500 (both by EA).

The only way to fix such programs, other than patching them, is to slow down
your hardware.  You can usually get them to work if you go into your BIOS and
turn off all caches and set your CPU speed to "slow" or similar.  That
combination will bring most boxes down to the speed of a 386, and it's a smooth
slowdown unlike using programs like at-slow or moslo.
-- 
http://www.MobyGames.com/
The world's most comprehensive gaming database project.



----------------------------------------------------------------------
This message was sent to you because you are currently subscribed to
the swcollect mailing list.  To unsubscribe, send mail to 
[EMAIL PROTECTED] with a subject of 'unsubscribe swcollect'
Archives are available at: http://www.mail-archive.com/swcollect@oldskool.org/

Reply via email to