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
...why they need to _emulate_ the graphics cards? They are the same chip architecture isn't that the same instruction set, why can't they just dump it onto the chip?
Is there anything better than clicking through Microsoft ads on Slashdot?
Finally, VPC will be only 5 years out of date! Sweet!
How long before the XBox folks are forced to go work on XP SP3?
It's quite possible that Microsoft will use this to emulate older versions of their OS on their own architecture. It cannot be easy to build a new version of Windows and still allow people to run some crap they bought 6 years ago and refuse to upgrade. At least with VPC on Windows, they could finally move to Longoverdue, er, I mean Longhorn, and not have to "officially" say, "screw you, little guy!"
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.
Virtual PC is actually pretty fast running on Mac OS Classic on a ~ 500 Mhz G4 or better (it compares very well to a low end entry level Intel notebook certainly), it's just that it's slow on Mac OS X. Obviously now you can't boot newer Mac's in classic it's a problem as under OS X Virtual PC is complete dog. I am really pissed off that the latest G4's don't support Mac OS Classic specifically because I used to like being able to run Windows at a good speed too. I can't help thinking it would have been great on my new 1.5 Ghz PowerBook if only I could boot it into Mac OS Classic...
Virtual PC on Mac OS 9 is an order of magnitude faster on even a 400 MHZ G4 under Mac OS Classic than Virtual PC is on a 1.5 Ghz G4 under OS X. Virtual PC (and OS X) are in need of significant optimising.
I would point out though that the biggest significant factor is RAM. You need to assign the Virtual PC 256 MB of RAM and you want to have 1 GB of RAM in your system. I have 1 GB of RAM in my current PowerBook - without 1 GB of physical RAM and without assigning 256 MB for the Virtual PC itself Windows XP in Virtual PC is fairly unusable.
Windows 98 used to be particularly fast with Virtual PC and the recommended OS. Sadly, something in the switch to Mac OS X made Windows 98 become much slower than Win 2K + under VPC in OS X and that was never addressed. Bascially the situation currently sucks. Now you need 1 GB of RAM, and at it's best it's still 1/4 the speed of VPC on Mac OS Classic.
I think that graphics card emulation is important though. It *really* speeds up the perception and responsiveness of the system, because it lowers the CPU load on your Mac, leaving it free to consentrate on the actual x86 emulation. For the lucky few that had 3D cards back when Virtual PC 3.0 (which *did* have hardware pass through support) you could play Quake at full speed inside Virtual PC.
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"
While the addition of the virtualized graphics cards will certainly help speedup some operations, I'm curious if the Virtual PC team would be able to make ".NET" applications work better with VPC. It seems that the VPC team could write a "G4" and "G5" CLR JIT compiler, which would be faster than purely trying to emulate the x86 instructions...
Just a thought...
Doh!
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.
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.
And I'm surprised VPC (last I checked) doesn't save its working set translations to a cache file that persists across launches. VPC does do working set detection and cached recompilation during execution, right?
Check out my sci-fi/humor trilogy at PatriotsBooks.
VPC was dog slow no matter what version I used on my 500 mhz iceBook. However, I did only have 256 mb of ram at the time.
I wonder if they will be able to leverage Quartz Extreme (with good video cards of course)?
Another poster kind of said this. But what would be really smart would be taking out those features in Windows that ultimately are useless to the Mac user. Don't have a separate desktop and what not, but instead run the OS inside of OS X. Like X11 works, no need for Windows wall paper, just put a task bar on the bottom or side, and label the start button with a VPC logo or something. I would probably buy VPC... maybe, if it weren't simply Windows in a box.
Microsoft - Stuff that doesn't suck as bad as it used to...
IANAL, but I've seen actors play them on TV
The only reason I have VPC installed (aside from testing pages in WinIE) is for StreamBox Ripper, so I can convert Real Audio lectures to MP3 format and play them on my MP3 player. I've searched high and low for an app that could convert Real Audio files without doing so in real-time, but I've found nothing that will run natively in OS X. Are there any open source projects that could be compiled in OS X to accomplish this; anything for OS 9 even?
BTW: WinNT 4 runs nicely in VPC.
This is interesting...
The article implies that the guy who got fired a year or so ago for posting pictures of a Microsoft loading dock full of Powermac G5s may have been fired not because of petty Mac - Windows jealously (or whatever the explanation was at the time), but because those G5s were a tool for the development for Xbox2.
DO NOT LEAVE IT IS NOT REAL
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!)
Virtual PC on Mac OS 9 is an order of magnitude faster on even a 400 MHZ G4 under Mac OS Classic than Virtual PC is on a 1.5 Ghz G4 under OS X.
That's BS.
I have used VPC a lot under OS 9 and OS X on my Powerbook (800 Mhz G4). Yes it is faster under 9, but the difference is nowhere near an order of magnitude. And I would bet you good money that a 400 Mhz machine will not run it faster than a 1.5 Ghz machine under ANY OS.
I think at the end of the day, MS wants VPC to be slow.
There are so many obvious things they could of done to make VPC faster, yet they chose not to. Every idea mentioned here MS knows about, but they chose not to implement.
The MacBU has been on an amazing roll of late--Office 2004 for the Mac is far better than the PC version in every review out there--but they still work for a Windows company.
If VPC was fast, it would be a massive boost to a non-Windows platform. OSX is a superior platform on all measures, except compatibility.
A solid and fast VPC implementation would remove the only advantage Windows has left as an OS.
So, I think for Mac and Linux folks are going to have to wait for a non-MS emulator for speed.
Or as a better idea, only buy from vendors who have native apps for the programs you want to use. It encourages them to support non-MS platforms because they see Linux and Mac sales increasing. That's the best of both worlds.
I haven't played with it much but it seems to do what it says (which is to record any audio playing on your Mac.)
my password is private, but unchanged.
They actually were going to go with this slogan, but they were worried about being sued by Bare Bones.
Yeah I know about Audio Hijack, Wiretap, and its ilk. I listen to a lot of very long lectures (an hour or more), and like to fill my MP3 player up with them about once a week. Doing it in real-time isn't a viable option.
There's an app called SoundConverter for OS X that claims to convert Real Audio files, but every time I feed it one it crashes. Oh well, I guess NT 4 isn't so bad in VPC; stuff like encoding MP3s could be so much faster though if it could take advantage of the G4.
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.
From a hardware perspective, Mac graphic cards should behave exactly as their PC counterparts do. PCI/AGP devices always have the same endianness on Macs and PCs because PCI is a natively little-endian bus. See Writing PCI Drivers, and in particular, the section on endianness and addressing. At the very least, it's good for a migraine. :-)
The PCI/AGP card firmware does on a Mac basically does two things:
- It provides information about the card to OpenFirmware for the purposes of setting up basic memory mapping apertures and device identification. You might use this to override the info stored in the PCI declaration ROM, say to change the device or vendor ID to a different device or vendor ID.
- It provides an NDRV driver, which is used to allow OpenFirmware to display stuff on the card before the OS comes up.
I've used certain carefully-chosen PC graphics cards on a Mac before. If the OF on the machine has an NDRV for that card, and if Mac OS X has a compatible NDRV for that card, the card will work (albeit possibly unaccelerated, depending on which driver matches against the card, even without a Mac ROM.Check out my sci-fi/humor trilogy at PatriotsBooks.
Well, that's what they always say about Windows and it never became true, so why should we believe them this time?
There are two rules for success:
1. Never tell everything you know.
Dont' forget VRAM!
This makes a huge difference:
Go to your OS:
- Win XP Pro
- select SETTINGS button
- select PC MEMORY:
You have two options:
- Total Ram in PC: if you've got the memory, 1 gig or more: give it the max: 512MB
- Total VRAM in PC:
Give it 16MB!
This makes a huge difference!
Windows open snappily! ( is that a word ? )
The MS Doc is wrong, in that more VRam DOESN'T JUST help you use higher resolutions, but, it greatly speeds up Window opening and closing.
It could be argued that the MS Install package should read your hardware setup and give you better guidance here. We are not getting good performance from VPC here because the default settings are too low.
So someone FINALLY realized that there is a market for proper emulation of the video hardware on a computer emulator (or virtual machine, I guess Virtual PC for Windows will have this too). Poor video performance and lack of hardware rendering features has always been the major drawback on those things IMHO.
:( Hey VMWare, I hope this rang a bell to you. When your Linux virtual machine will support native graphics passthrough of my (nvidia) video hardware, I swear I'm buying it ASAP.
Too bad it's Microsoft though.
I agree that VPC is dog slow. In fact, I much prefer a cheap, old PC and VNC over router ethernet. It'll be pretty hard to get a system slower than VPC if you do VNC, even with really old hardware that are you can get for dirt cheap. If I'm going to get an x86 PC, why bother with VNC, you say? Well, A) extra monitor takes up desk space, extra PC takes up space, makes noise - stow the IBM compatible in the closet - B) switching seats between computers is fairly annoying. Finally there's a use for that dinosaur PC.