Next Version of Virtual PC for Mac to Suck Less
Anomalous Coward writes "According to Apple Insider, it seems that the next version of Virtual PC for Mac will at long last have native support for decent graphics cards. Microsoft's XBox development team is developing this shiny new feature. Macs equipped with ATi cards will be able to emulate an original Radeon, while Macs with nVidia cards will be able to emulate a Geforce 3. Since the XBox uses a graphics core based on the Geforce 3, this may explain how Microsoft plans to include backward compatibility for the XBox in the XBox2."
Not only does it have a problem with video cards, but it is dog slow. I don't think that this is a problem with the mac in general, but rather a problem of emulating another architecture in software on the cpu that is not designed to run those instructions.
.app if they want to have real compatibility, but then you'd still have to have a VM for the other x86 applications.
When I run xp pro on vpc on a mac( for some physicians who have it here and have to use it for hospital applications ), it takes FOREVER even to bring up internet explorer on a brand new powerbook g4.
I'm not sure why MS even ships xp with vpc. It seems like something that still works with most stuff, like Windows 98, would be better because it's real cpu requirements are MUCH lower.
I don't think the video card issues are the real problem. MS needs to just release a version of windows for the mac that can run as a
Chris
What hardware were you running it on? A 180MHz G3?
I run VPC on my G4 733 Tower with a Win98 image and on my iBook G3 900 without any slowdowns whatsoever, in fact I run the first Baldur's Gate on my iBook. However I've got plenty of PCs so I don't use it that often, only when checking webpage compatability in IE when I'm working on a Mac.
The only product I've found superior on a PC instead of the Mac version (Office is sooooo much better on the Mac) is SPSS. That is the biggest piece of shit software I've ever seen. Minitab, SAS, hell even Excel is a better option. AVOID SPSS on Mac & PC as well.
Since the XBox uses a graphics core based on the Geforce 3, this may explain how Microsoft plans to include backward compatibility for the XBox in the XBox2.
This doesn't take into account the fact that the Xbox 2 has been announced to use a brand-new ATI video chipset. As near as I can tell, this has nothing to do with cross-compatibility between ATI and nVidia, which it would have to be if there's any relation to Xbox 2 backwards-compatibility. Just thought I'd mention it.
"The gods do not protect fools; fools are protected by more capable fools." -Larry Niven's "Ringworld"
That's probably because of the HAL. I imagine that being able to dump instructions onto the graphics chip would require a patch to the HAL to allow an application direct access to the hardware. This would also explain why it magically runs faster on MAC OS Classic and Windows (MS has the ability to patch their own HAL, and I don't think that non OS-X MAC OS's require a HAL.)
You need to restart your computer. Hold down the Power button for several seconds or press the Restart button.
AFAIK, part of the problem is endian-swapping. The Mac and PC versions of the graphics cards have slightly different firmware and driver configurations that account for this. If a emulated PC application is running on a Mac, the graphics commands and texture info will be generated as little endian data with memory accesses assuming x86/Windows conventions. This will be different from what the OS X graphics drivers are expecting, which want big endian data and PPC-style memory accesses.
Even if the GPU is always running in little-endian mode regardless of the CPU's byte order, the communication pipeline between the original x86 app and the final OS X driver communication will possibly involve a redundant little-to-big-to-little endian swap. (Especially if this swap actually is occuring in hardware via a bridge chip or clever bus wiring or something. This is just outside my scope of expertise.) In other words, to get maximum performance, the VPC host must take on some of the responsibilities that are normally handled by OS X graphics drivers.
Those who complain about affect & effect on
Check out my sci-fi/humor trilogy at PatriotsBooks.
VirtualPC on my iBook 500 with 640MB RAM emulated a 266MHz PC. (That's better than 50% of native speed.)
VirtualPC on my wife's iBook G4 800 with 640MB RAM emulated a 290-300MHz PC.
VirtualPC on my Powerbook G4 1.5GHz with 512MB RAM emulates a 290-300MHz PC.
Now...I am starting to suspect that something isn't right with those numbers, since it feels faster on the Powerbook (as one would expect it to). It may be thaht VirtualPC 6 simply won't report an emulated PC speed above 300MHz to things under Windows... and I don't think it'll report an emulated speed in excess of 4x the bus (my iBook 500's bus is 66MHz * 4 = 266).
That said, I wonder what someone running it on an iBook G3-900 with a 100MHz bus would get... 300? Or 400?
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _>8
Too many errors in one post (make fewer).
Since version 7.0 has a few more days before it ships to customers, from a customer standpoint, version 7.0 is the "next" version, but it lacks the improved graphics support. Just so potential buyers of VirtualPC 7.0 aren't surprised, the AppleInsider article suggests a future (>7.0) version of VirtualPC will offer improved support for graphics cards, but 7.0 does not. (BTW: Don't buy software for a feature it might have in the future!)
For example, VPC would be a -lot- faster if instead of allocating a ton of RAM to VPC, you instead had a VM plug-in for Windows that caused it to ask the emulator (through a trap of some kind) to request RAM from the Mac OS X VM system.
Hmm that seems like a good idea as far as VM handling goes and I think I've heard it come up before, I think they are probably going to just rely on people throwing physical RAM at the problem for now.
On the issue of being optimised for Windows, I could swear that Virtual PC 4.0 had hooks for Windows 95/98 that speeded up performance for those systems under Mac OS Classic (given the comparison between how fast a Windows 98 install behaved and how a Linux w/ X11 or a Windows 2000 system behaved on the same Mac).
Similarly, if more games and stuff used OpenGL instead of DirectX, they could make OpenGL calls pass straight through to Mac OS X's implementation in much the same way that X11 OpenGL apps do. To some extent, the same tricks could be done with DirectX, I think. That should be a much cleaner solution than trying to mimic a much more limited graphics card.
Yes, that's actually exactly what it used to do in Version 3.0 but that feature was dropped (I assume it became no longer commercially viable to support).
Personally, I think that MS will end up doing some sort of hybrid pass through vrs 'emulation' for the graphics card.
As consumer graphics cards for Mac have different firmware (presumably/hopefully for something like alternate endianness so they are more Mac friendly rather than just to lock customers in...) that pass through might have issues so some function mangling might be necessary in which case it would be easier for them just to support a lower 'base' set of specifications for all Nvidia and all Radeon cards than to keep releasing new VPC versions/drivers each time a new Mac comes out. It would also seem to simplify doing support across the existing Mac range, so while performance / features are going to be reduced it could make it 'more cost effective' for them to add this feature.