OESF Portables Forum

General Forums => General Discussion => Topic started by: sigmaX on December 06, 2004, 09:48:52 pm

Title: Emulating I386
Post by: sigmaX on December 06, 2004, 09:48:52 pm
Hey people

I always wondered why are i386 emulators so scarse, difficult and SLOW (particularly for our zaurus) ...

I mean, 400MHZ for a C860 (which can be forced to 471 with no such big deal) ... and the processor is "INTEL" actually (maybe that helps a little  ) anyway, I would LOVE to see a windoze boot up in my zaurus, to make some friends go crazy ... call me lame but it would be cool for me ...

What happens with our little PXA255 processors ? if You where to place them in a scale head to head with "pentium" processors ... where should you place them ?

Why is it so difficult to decode DIVX ? computing intensive work  is a "nono" for these small processors ?

I would love to read some clear text no nonsense discussion about all these questions
Title: Emulating I386
Post by: Foxdie on December 07, 2004, 01:07:23 am
It puzzles me too. Some ROM's can play Quake with a comfortable 20~ Frames Per Second but cannot decode DIVX in realtime, but others are the exact opposite.

You'd think we'd have a ROM that could do everything by now
Title: Emulating I386
Post by: arniel on December 07, 2004, 05:30:32 am
Hi,
AFAIK, emulating an i386-class processor is a nasty business, and in any event the PXA series lack floating point units (remember the days of maths co-processors?).  The architectures are completely different (CISC vs. RISC) so it's not just the instruction set that needs emulating, it is also the hardware that makes a PC... a PC.
Guessing, I would imagine a 400MHz PXA could emulate a 486SX33.  With JIT compilation, that might get faster, but there is still an OS to get in the way.
And we know what it's like running Windoze on a 486SX

Arnie
Title: Emulating I386
Post by: arniel on December 07, 2004, 05:33:09 am
As for decoding DIVX, without floating point in hardware, it has to be either emulated (v slow) or the decoding routing rewritten for integer operation, if possible.  Processors with MMX-type instructions (PXA263?) can be much faster for the same clock speed.
Perhaps the difference between OS's is down to how well the maths routines are written.
Title: Emulating I386
Post by: ThC on December 07, 2004, 05:39:25 am
Before discovering the zaurus I've had a winCE device running a PXA255 and it was able to read divx and to play quake and even playstation games ... I've tested it with sandra 2004 and seen it can compare to a pentium 200 (except for the FPU part wich was more about a pentium 100 or so)
Btw since I have my zaurus things are getting better and better ... now we can run quake, warcraftII, we're close to read divx (let's hope problems with xvidix drivers will be fixed soon) and fpse should compile if some code guru out there would like to take a look at it as I've ran into problem compiling the gpu part but my coding knowledge is near from zero
What puzzles me actually is the fact I've recently seen a post from mickeyl telling there's still one only coder who bother porting the 2.6.x kernel to our beloved Z's when there must be a lot of good coder out there ... I hope one day I'll improve my coding skill enough to help him  (actually learning...)
Title: Emulating I386
Post by: dz on December 07, 2004, 06:00:52 am
You play Warcraft II on your Zaurus?  That's awesome!  Please do tell how.. I love that game.

On second thought, I have a lot of work I need to do.  Nevermind, don't tell me how until after January!
Title: Emulating I386
Post by: ThC on December 07, 2004, 06:43:41 am
LOL okay so I won't tell ya ... btw you could find it easily searching in the forum as it have been discused here many times

Quote
Processors with MMX-type instructions (PXA263?) can be much faster for the same clock speed.

btw I dont think they are /will be supported in kernel prior to 2.6.x (sl-c3000 use such a processor and no noticeable performance increase have been detected while playing divx or whatever...) and it don't even seem to motivate sharp in porting their kernel patches to 2.6.x ...too bad  ... btw let's hope it will gather more developper in the movement of porting the 2.6.x kernels to Z
Title: Emulating I386
Post by: kahm on December 07, 2004, 07:51:52 pm
A major stumbling block wih DIVX seems to be the audio decoding. The Zaurus seems to like 48khz encoded audio. Making sure you use 48khz rates seems to mean less work and better sync rates. I use 600kbps Divx encoding with 160kbps mp3 stereo audio at 320x200, 24fps without issue. Haven't tried 29.97 fps or larger resolutions yet. 320x200 seems to work pretty well, especially if you re-encode from a 640x480 source with a good filter. I have no problems reading subtitles on the Z.

The Z couldn't keep up with the same file encoded the same file at half the bitrate and framerate with 44khz or 22khz audio at all. Change nothing but the audio bitrate - *Bam* Smooth as butter.

I'm using Kino2 with the ATI w100 extensions, so YMMV.
Title: Emulating I386
Post by: ciro on December 10, 2004, 06:10:00 pm
I was able to run wine on top of qemu. It was capable of running some simple applications (calc, notepad, etc.). They ran quite slow on SL5500. Actually, I've no idea if there's any use for that.
Title: Emulating I386
Post by: spartan on December 10, 2004, 11:23:03 pm
Never forget that Intel is in bed with Microsoft: Windows CE will always run better in those sort of obscure places, such as DIVX decoding.

To solve the integer issues, do not use the GLIB/GNU compiler. Get a specialized XScale (not necessarily PCA) ARM compiler. I have read in these forums of compilers that automatically optomize for the lack of floating point units, and produce great results.
Title: Emulating I386
Post by: arniel on December 13, 2004, 06:13:29 am
Quote
Never forget that Intel is in bed with Microsoft: Windows CE will always run better in those sort of obscure places, such as DIVX decoding.
Nonsense!
It's all down to decent compilers/libraries.
See how Microsoft are pissing Intell off with their support of Opteron ahead of Itanium.  Intel's interest is to get their CPUs in as many places as possible, including areas that Micro$oft can't or won't dominate.
Micro$oft's goal is to get their shiteware running on as much hardwarae as possible, whoever makes it.
If anything, the incentive is to get people upgrading continuously, not making the most efficient use of what has already been sold.
Title: Emulating I386
Post by: enlightened_j on December 13, 2004, 11:40:53 pm
Quote
Micro$oft's goal is to get their shiteware running on as much hardwarae as possible, whoever makes it.
I doubt it's Microsoft's goal to get ther shiteware running on as much hardware as possible.  Ever since they stop the support for Alpha, have you see them releasing OS for platform other than x86 and arm?

Just like any other business, making as much money as possible is their goal.  
Title: Emulating I386
Post by: arniel on December 14, 2004, 09:10:14 am
Quote
Quote
Micro$oft's goal is to get their shiteware running on as much hardwarae as possible, whoever makes it.
I doubt it's Microsoft's goal to get ther shiteware running on as much hardware as possible.  Ever since they stop the support for Alpha, have you see them releasing OS for platform other than x86 and arm?

Just like any other business, making as much money as possible is their goal.  
You're right there!
however, I meant as many types of product i.e. phones, pcs, set top boxes etc.  Remembers "Windows Everywhere"?
Title: Emulating I386
Post by: xatax on December 14, 2004, 09:26:23 am
Quote
"Before discovering the zaurus I've had a winCE device running a PXA255 and it was able to read divx and to play quake and even playstation games ... I've tested it with sandra 2004 and seen it can compare to a pentium 200 (except for the FPU part wich was more about a pentium 100 or so) [...]"
What device with a PXA255 and WinCE where you using? Why do you switched to the Z?
Title: Emulating I386
Post by: sigmaX on December 19, 2004, 08:27:52 pm
Just to go into a different direction ... if we cannot succesfuly emulate I386 .... with our zauriis....

COULD IT BE EASY ENOUGH TO DO A WRAPPER SO WE CAN ALSO HAVE SOME LAUGHS RUNNING WINCE SOFTWARE ?

I feel that such a thing could certainly be done ! but ... is there a LEGAL problem ?

It could prove fun to have a couple of libraries providing winCE base to execute wince software ...
Title: Emulating I386
Post by: ThC on December 20, 2004, 05:27:15 am
@xatax : I was using an ASUS MYPAL A620 which was on of the most powerfull of it's generation according to the tests i've read about it before buying... I switched to the Z for the swiveling screen, the 640x480 resolution, the choice of programs (you can run virtually any opensource program you want to), the multithreaded environment (x11) ,being able to learn c++ during my transport times etc ...
I didn't meant winCE devices are superior in any way ... just being surprised by the lack of optimisations in a few usages where PDAs can be quite good...

@sigmaX : right, some kind of "wineCE" could be fun  hope we'll see it one day