www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1999/11/11/08:05:10

Message-ID: <F77915E7F086D31197F4009027CC81C90800A5@probe-2.as-london.acclaim.com>
From: Shawn Hargreaves <SHargreaves AT acclaimstudios DOT co DOT uk>
To: djgpp AT delorie DOT com
Subject: DirectX under DOS?
Date: Thu, 11 Nov 1999 12:06:56 -0000
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2650.21)
Reply-To: djgpp AT delorie DOT com

Kevin P. Soucy writes:
> Well, this morning, both ideas crashed into each other.
> Run DirectX games under DOS using a translator/emulator
> similar to Bleem.  Does anyone think this idea is possible?

Sure, you could emulate the Windows API on some other platform, if
you wrote code to handle all the possible system interfaces (that
is what the Wine project is trying to do on Unix, for instance).
But there are several reasons why I think this is a bad idea:

- Windows is a very large, bloated, and badly designed system. Hence
there are a _lot_ of things to emulate, making this a very difficult
job.

- Windows is a constantly shifting target, and MS are working very
hard to make sure it stays that way. So it isn't enough just to
emulate it once: you have to constantly keep up with all the
latest things they've changed, or you won't be able to run the
most recent programs in your emulator.

- Windows sucks because it is huge, bloated, and badly designed.
If you emulated it, your emulator would necessarily also be huge,
bloated, and badly designed, so what do you gain from that? You'd
end up with a large and unwieldy system running over the top of 
DOS, but we already have a perfectly good one of those, called
win98 :-)

- What are you going to do about the hardware drivers? (that's the
main reason why people write games using DirectX: nobody has the
resources to write their own drivers for all possible hardware, so
they have to use the drivers that are provided by the manufacturers,
which are almost always for DirectX). If you start writing your
own drivers, you'll have the same problem as any other DOS code,
that you don't support all the latest and greatest cards. But
to use existing DirectX drivers, you'd have to emulate the rest
of Windows not only at the API level, but right down to the
deepest internals, in which case why not just run Windows itself?

IMHO a better option is to write games using standard interfaces
like OpenGL. That way you can compile one version for Windows,
and another version for Linux, with minimal effort. DOS is still
left out in the cold, but I don't see any way around that: there
is no chance that hardware companies will ever start writing DOS
drivers for their latest 3d boards, and I find it impossible to 
believe that there are enough DOS hackers around to do all that
work ourselves (even today with all the attention it is getting,
Linux is only just starting to catch up with 3d graphics support,
and that is because the manufacturers are starting to take notice
and put resources into developing drivers for it).


	Shawn Hargreaves.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019