Reply
Thread Tools
Posts: 1,522 | Thanked: 392 times | Joined on Jul 2010 @ São Paulo, Brazil
#1
Would it be possible to make a program that would work like video game console emulators, but for Windows programs? Like, you load an specific program, and the emulator makes it think it's on it's native system, but it doesn't actually run the full OS, it just has enough to run the program, requiring much less system resources to run the emulation, but including things like wrappers for DX and OGL when necessary (for games and such).

Last edited by TiagoTiago; 2010-09-26 at 14:02.
 
Posts: 131 | Thanked: 62 times | Joined on Feb 2010
#2
Wine?

rgds
 
Posts: 1,522 | Thanked: 392 times | Joined on Jul 2010 @ São Paulo, Brazil
#3
I don't think Wine works with ARM...
 
Bundyo's Avatar
Posts: 4,708 | Thanked: 4,649 times | Joined on Oct 2007 @ Bulgaria
#4
Think of it this way - how fast are the desktop virtual machines without using the processor virtual extensions (you don't have them on ARM and you won't have anything to run on them even if you had them)?
__________________
Technically, there are three determinate states the cat could be in: Alive, Dead, and Bloody Furious.
 
Posts: 1,522 | Thanked: 392 times | Joined on Jul 2010 @ São Paulo, Brazil
#5
Why is it so much easier to emulate videogame consoles?
 
Posts: 1,522 | Thanked: 392 times | Joined on Jul 2010 @ São Paulo, Brazil
#6
But what if you use the approach i suggested, just running the program itself not the whole OS?
 
Posts: 23 | Thanked: 16 times | Joined on Aug 2010 @ Bolivia
#7
But what if you use the approach i suggested, just running the program itself not the whole OS?
That would be kind of complicated, because you are suggesting implementing several things:

1. A file loader that understands how the .exe and .dll files are written (AFAIK, such format is called PE in windows).

2. A full (or at least, good) reimplementation of Windows API on top of ARM.

3. An abstraction layer to make the apps to believe that they are running on top of Windows (for example, a reimplementation of the Windows registry or other Windows specific infrastructure).

All of these things are in some extent implemented by Wine, but I do not know if it is hightly portable to other platforms different than x86.

Maybe one more feasible thing to do (though not so thin) would be use QEMU or Bochs to virtualize the whole OS; with the obvious performance hits.

Last edited by ebasconp; 2010-09-26 at 16:03.
 
Posts: 23 | Thanked: 16 times | Joined on Aug 2010 @ Bolivia
#8
Originally Posted by TiagoTiago View Post
Why is it so much easier to emulate videogame consoles?
Because you "just" need to emulate the hardware and a "small" API. I say "just" and "small" (using quotes) because I do not mean that doing such tasks is easy or they can do it quickly.

For Windows you need to rewrite a set of huge APIs with thousands of functions (Win32 API is being heavily used from Windows 95); a huge set of platforms (COM, registry, MSMQ, DirectX), so it is a very huge task. Wine project has done it successfully but it is still no compatible with .NET (though to run .NET apps in other platform than Windows you could try using Mono).

See these interesting projects related to this topic:

http://www.winehq.com
http://www.go-mono.com

Last edited by ebasconp; 2010-09-26 at 16:14.
 

The Following User Says Thank You to ebasconp For This Useful Post:
javispedro's Avatar
Posts: 2,355 | Thanked: 5,249 times | Joined on Jan 2009 @ Barcelona
#9
We've been over this a few times already.

- Wine runs under qemu-x86 on the N900. It's "usable". There's a video in youtube even afaik.
- Ideally you'd "patch" a native ARM Wine to only run the actual x86 binary code under qemu. This was done previously but nobody seems to care now with the demise of the PowerPC Mac. It's not trivial, either.

Wine itself might run on ARM as of now actually, but of course it would only run "Win32 ARM binaries" which do not exist (do not confuse with WinCE binaries).
 

The Following User Says Thank You to javispedro For This Useful Post:
Reply


 
Forum Jump


All times are GMT. The time now is 13:10.