Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 24 Mar 2000 12:46:13 -0600
From:      Jeremy Falcon <jeremy@intersurf.com>
To:        cuallo@hotmail.com, freebsd-questions@FreeBSD.ORG
Subject:   Re:
Message-ID:  <00032415213801.00479@local.imputek.com>
References:  <000701bf95b2$6cd551e0$cf651ece@oemcomputer>

next in thread | previous in thread | raw e-mail | index | archive | help
You cannot run Windows/DOS applications on FreeBSD at all, without the
assistance of an emulator.  Windows' thing is using DLLs (kernel32.dll,
system32.dll, user32.dll, gdi32.dll, etc.).  For a program to run in Windows it
has to first establish itself as a valid Win32 program and then start calling
some Win32 APIs (i.e. CreateWindowEx) or in this case DirectX APIs, which loads
those DLLs in memory (well, most of the time the core DLLs are already in
memory, like gdi32.dll) to resolve the function called.

You'll never get to that point on another OS b/c it will not recognize the
EXE header/format, etc.  You can't even run a Win32 program in DOS.  The header
of a Windows EXE contains info on which platform it will run.  A good
example of this is to use debug (in DOS or DOS32) and dump the contents of a
Windows app and you'll see (in the header of the EXE) in the ASCII
representation on the right the same error string you'd get on a DOS prompt when
trying to run it; "This applicaton cannot be run in DOS mode."

Things may be a bit different in the UNIX/Linux world (I just recently started
to learn more about it, like a.out, ELF, COFF, etc., instead of just chmod 755
for CGI :o) ), but I'm willing to bet it's going to be close to the same.

Anyway, Direct3D is proprietary and Microsoft will never port it to another
OS.  They'd prefer you using Windows to use it., and it's not going to work on
top of an emulator unless Direct3D is emulated itself -- too slow.  Our only
hope of using Direct3D on another platform was via Fahrenheit (the MS and SGI
project to combine OpenGL and Direct3D), but Microsoft always gets their way
so now it's Windows only.  Somehow I think SGI was paid serious $$ for that. 
Hmm.

Your only hope for using Glide right now for mult-platform gamming is porting
it yourself to FreeBSD, don't bother with Linux or DOS runtime support on
FreeBSD, b/c emulation is too slow for a graphics engine (that's assuming it'll
even work -- doubt it).  I heard that Glide went open source (correct me if I'm
wrong), so that may make it a good choice if you feel like a lot of work.

Your best best (assuming your actually developing) is to use OpenGL by
Silicon Graphics b/c it's supported natively by just about every OS out there,
Windows, OS/2, Mac OS, BeOS, XFree86 (not a full OS, but a good X server), etc.

Of course, if you're not a developer then the answer to your qeustion is a
lot shorter, "no."  :o)

Finally, if you want to play Windows games, your best bet is to just add FreeBSD
in it's own partition and keep Windows installed too.  Of course, WMware might
work, I don't know the internals and I haven't used it to tell you more.  My
guess is, if it's runs the entire OS instead of just emulating a program for
that OS, it could run DirectX on top of the OS too.  Maybe a WMware user can
help with that one.

Hope this helps,

Jeremy L. Falcon

P.S.  Most of the guys (and gals) here are not affiliated with the FreeBSD
project.  We are users willing to lend a helping hand from time-to-time.

> Dear FreeBSD team,
>  
> I am interested in getting free BSD. I would like to know if I can run Windows
> applications that use 3D APIs like Direct 3D, Glide, et cetera. 
>           
>                                                                               Thanks,
>                                                                               cuallo@hotmail.com 
> 

----------------------------------------
Content-Type: text/html; name="unnamed"
Content-Transfer-Encoding: quoted-printable
Content-Description: 
----------------------------------------


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?00032415213801.00479>