Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

If porting Intel compiled binaries (dll/exe) to ARM is as easy as this article makes it look, then Microsoft has some explaining to do about Windows RT and legacy apps compatibility.


It is similar in a sense to Wine, how it is not a port of Wine. It is currently under development.

It is not an emulator in VMware/VirtualBox's sense of emulation. However it does implement small subset of Windows APIs, so it is a porting layer.

Apparently winulator just translates the windows api calls to the proper (native) android function, however why wouldn't you just port wine to android then? you'd probably just need to add a few missing posix functions, according to: http://mobilepearls.com/labs/native-android-api/STABLE-APIS....


Android lacks things like X11, so it would be non-trivial to port.


Android lacks things like X11

...or does it??

http://my20percent.wordpress.com/2012/02/27/android-x-server...


But then how does it handle running an x86 game on an ARM device?


I don't think MS would deliberately throw away old apps if they could easily save it. Most probably it's too hard or not effective.


I don't know how easy or hard would be to do that for Windows, but I think most x86 Linux programs work on ARM machines by default.


If they were written in a portable language like C, maybe, but you will have to recompile them. I think the point of their WCH tool is to rewrite the machine code from x86 to ARM without having the source code, so it's a much harder problem than recompiling.


If you mean by using qemu user space emulation, it doesn't work very well.


Well people managed to port mips binaries (from nintendo 64 games) to x86 in 1999. I remember using UltraHLE:

http://www.emulator-zone.com/doc.php/n64/ultrahle.html

That was interesting because the typical PC of the time was not exactly speedy.


An emulation is by its very nature not a "port".


It's one thing to port a specific application and work out all of the kinks. It's another thing entirely to claim that millions of different applications will be able to make the transition. Even the article points this out: Winulator isn't compatible with Starcraft: Brood War yet. It's a work in progress (each game requires specialized tweaking in order to work).

Microsoft is not willing to tweak every single application to make sure it works on Windows RT, and neither are the developers of most of those programs.


I agree that making a port to ARM architecture is a process and will never be perfect. What I meant was that making it possible to run legacy apps (even if it is only the top 100 most popular ones) will go a long way towards making Windows RT tablets more popular. If it is possible to make a DirectX audio/video application like SC:BW run (seemingly well) on Android, then it should not be so hard to do normal apps like archivers(winrar/7zip) or media players (VLC).

Perhaps the problem is performance - the original StarCraft ran on a 100Mhz CPU with 16MB RAM.


You just picked two of the more difficult apps to emulate or ahead-of-time translate as your examples of "normal" apps that should be "not so hard!"

Archivers generally have highly optimized compression/decompression routines, which generally means more esoteric instructions and in some edge cases means abusing properties of the microarchitecture to make things faster.

Media players have the same optimized-code issue that archivers do (via codecs), but on top of that demand very accurate audio/video synchronization and support a wide variety of output formats and hardware, which means that media players often add difficult-to-translate display and audio output pipeline hacks on top of difficult-to-translate optimization.

Starcraft I ran on x86 CPUs without MMX or SSE, and I wouldn't be surprised if it didn't use x87 floating point either although I'm venturing into speculation territory there. Plus, Starcaft I used DirectDraw and what amounts to a framebuffer - the easiest possible output device to emulate.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: