Message-ID: From: Shawn Hargreaves 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) Content-Type: text/plain; charset="iso-8859-1" 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.