Slashdot Mirror


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."

30 of 86 comments (clear)

  1. vpc is slow by alatesystems · · Score: 4, Informative

    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.

    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 .app if they want to have real compatibility, but then you'd still have to have a VM for the other x86 applications.

    Chris

    1. Re:vpc is slow by snuffdiddy23 · · Score: 3, Interesting

      better still, assuming that you are not using it for testing internet explorer, use 98 lite

    2. Re:vpc is slow by Goyuix · · Score: 4, Insightful

      Well, in an effort to feed the troll - virtualizing the graphics card WILL give a huge benefit to the speed of the application. Assuming you run at 800x600 (Which XP likes to default to), that is an awful lot of computations being TRANSLATED (not virtualized) from x86ish to PowerPC and then the result spit back. Just being able to VIRUTALIZE that will in fact give a noticeable speed boost I would imagine. Certainly VPC and the running applications will feel a lot more responsive if nothing else.

      And the thought of Microsoft releasing "a version of windows for the mac that runs as a .app" - I think the community at large knows that isn't going to happen for simple reasons like marketing and more complex reasons like trying to run an OS as a native .app. Right....

    3. Re:vpc is slow by polyp2000 · · Score: 4, Interesting

      MS needs to just release a version of windows for the mac that can run as a .app if they want to have real compatibility, but then you'd still have to have a VM for the other x86 applications.

      I think that this ... is far more interesting ...( and along a similar track to what you are suggesting)

      nick ...

      --
      Electronic Music Made Using Linux http://soundcloud.com/polyp
    4. Re:vpc is slow by DLWormwood · · Score: 4, Interesting
      needs to just release a version of windows for the mac that can run as a .app if they want to have real compatibility, but then you'd still have to have a VM for the other x86 applications.

      This sounds a little like what Apple did during the 68k/PPC transition. Apple wrote an emulation system that allowed Apple to port parts of the OS to PPC at their leisure, while the rest of the OS and legacy apps ran through the emulator. My understanding was that an early PC-on-Mac emulation package (SoftWindows?) tried to do something similar.

      The problem with this approach is, since the legacy code is naive about the real hardware it is running on, all the "intelligence" of the coexistence of the two ISAs must be handled in the native code. Early Mac OS's used a "Mixed Mode Manager" as well as a weird "Universal Procedure Pointer" structure to handle context switches and memory accesses. This foundation hung around even after the OS and all current apps were ported to PPC completely, adding unneeded cruft to OS 9. They were finally removed during the transition to OS X and Carbon.

      If Microsoft were to try this, VPC users would only get improvements at maybe the UI level, since there is a snowball's chance in Hell that any of the Windows developers would go through the same experience that Mac developers did to support "fat" binaries. This limits speed improvement, since much hardcore processing functionality would still be in x86-land and would require context switches between PPC and x86 on a regular basis.

      --
      Those who complain about affect & effect on /. should be disemvoweled
    5. Re:vpc is slow by Watson+Azfor · · Score: 4, Informative

      I totally agree that VPC is dead-dog slow on OS X.

      However, it may be that VPC has seen its last days anyway if this stuff has any merit. Let's hope.

      From the press release:

      "Los Gatos, Calif. - September 13, 2004 - Transitive Corporation, the leading provider of software that enables transportability of applications across multiple processor and operating system pairs, today launched its QuickTransit(TM) product line, a family of products that allows software applications compiled for one processor and operating system to run on another processor and operating system without any source code or binary changes. The company's breakthrough hardware virtualization technology is unique because it provides 100% functionality, transparent interactive and graphics performance, near-native computational performance, and allows virtually any processor/operating system pair to be supported.

      The first products available in the QuickTransit(TM) product line are:

      QuickTransit for Itanium®: with support for MIPS®, POWER(TM)/PowerPC®, x86, and mainframe binaries
      QuickTransit for Opteron®: with support for MIPS, POWER/PowerPC, and mainframe binaries
      QuickTransit for x86: with support for MIPS, POWER/PowerPC and mainframe binaries
      QuickTransit for POWER/PowerPC: with support for MIPS, x86, and mainframe binaries"

      It's also interesting to note that they are saying:

      "Transitive has signed agreements with six of the world's largest computer OEMs to date."

      Find out more at:

      http://www.transitive.com/index.htm

    6. Re:vpc is slow by IvanXQZ · · Score: 2, Informative

      I use XP in VPC on a PowerBook G4 12-inch 867. It ain't fast. Win 98 is much faster. (NT and 95 are faster still, but I don't use them.) However, when XP shipped it was even worse, and some tweaks improved things. (These are from memory, so some of it might not be perfectly accurate.)
      - Right-click on the desktop, choose Properties, choose Themes, and go with the Windows classic desktop. Just giving it a solid blue desktop (part of the theme) seems to speed things up a lot.
      - Right click on My Computer and somewhere in there are performance settings which you can customize for UI prettiness. Turn them all off.
      - Right click on the Toolbar and find where it gives you the option for Classic style menus. This really seems to make a big difference.

      Ivan.

    7. Re:vpc is slow by b-baggins · · Score: 4, Interesting

      It's the disk access in XP that's a pig. If you tweak the VPC settings, you can get pretty decent performance out of XP, except where it hits the disk to load programs and swap, then it slows to a pig crawl. Maybe there's some disk features you can tweak in XP to speed up disk access.

      I've tweaked my VPC and actually get pretty acceptable performance out of it. I run it on a 1.3 GHz Powerbook with 768 MB of RAM.

      I've tweaked it for XP and for Win98. I currently use Win98 because of the lower memory requirements and faster disk access and get speed about equivalent to a 400 MHz PC with no graphics acceleration (no doom 3 guys, but the original Doom, Descent, etc. play fine.).

      XP is about the same performance except when the disk gets accessed at which time it slows to a painful crawl.

      Here's my tweaking:

      • Fixed Size disk (do not use dynamic sizing).
      • Convert the volume to NTFS if you're running XP, VPC makes the disk image Fat32 by default.
      • 128 MB RAM for 98, 384 MB RAM for XP.
      • Make sure the video RAM slider is set all the way to 16 (it makes a huge difference).
      • Disable dock integration.
      • Disable USB.
      • If you can, disable networking (this makes a big difference in XP)
      • Set background CPU priority to medium
      • In Windows, turn off all the eye candy.
      • Set color depth to 16 bit in windows.
      • Run windows at the smallest screen you can tolerate. I run at 800x600.
      • In Windows 98, uncheck the audio setting for simultaneous playback and recording on the sound card driver.

      I use VPC for playing old Windows games that I still enjoy (alpha centauri, risk) and for running that odd windows program here and there, and this configuration works well for me.

      --
      You can tell a great deal about the character of a man by observing those who hate him.
    8. Re:vpc is slow by GrahamCox · · Score: 5, Insightful

      Early Mac OS's used a "Mixed Mode Manager" as well as a weird "Universal Procedure Pointer" structure to handle context switches and memory accesses. This foundation hung around even after the OS and all current apps were ported to PPC completely, adding unneeded cruft to OS 9. They were finally removed during the transition to OS X and Carbon.
      While you're not wrong, just to clarify: The Mixed Mode Manager came in with System 7.2, which was not really an "early" mac OS - sort of middling. UPPs weren't "weird", they were in fact a very elegant and inspired piece of design - for 68K code, UPPs were just pointers, plain and simple. So existing 68K binaries still worked. But for PowerPC code, they became a small transparent wrapper to a trap mechanism that determined whether the caller required the use of the 68K emulator, and if so, started it up. The result was that code of either flavour "just worked". It has been noted that this is possibly the only time that a dual ISA has ever been successfully implemented without having a separate emulation "box" on the system. The great thing was that as a programmer, if you just used the UPP macros, there was nothing special you had to do to support this dual architecture - 68k and PPC code could be mixed more or less freely. Neat.

    9. Re:vpc is slow by gidds · · Score: 3, Insightful
      that isn't going to happen for... reasons like trying to run an OS as a native .app

      What do you think /System/Library/CoreServices/Classic Startup.app is doing?

      --

      Ceterum censeo subscriptionem esse delendam.

    10. Re:vpc is slow by DLWormwood · · Score: 4, Interesting
      While you're not wrong, just to clarify:

      You deserve a mod-up, but since I don't have points, I'll just reply instead to draw attention...

      The Mixed Mode Manager came in with System 7.2, which was not really an "early" mac OS - sort of middling.

      7.1.2, IIRC. The time it took Apple to reach that from the 128k was about 6-7 years, while the time it took Apple to reach end of the Classic line was closer to ten. From most user's standpoint, System 7 was an "early" Mac OS. (My first Mac ran 7.0.1, but could run 6.0.5, to give an idea of my history here.) Apple quickly gunned through 7 "major" revs (all released for free!) early on, then slowed to only 3-4 revs late in the OS life cycle.

      It's interesting, but there is a parallel here with OS X. Apple quickly gunned through 4 major revs (with the first being free), but has announced that Tiger will slow the curve down. I wouldn't be surprised that either Tiger or 10.5 will go down in history as the "System 7" of the OS X legacy.

      UPPs weren't "weird", they were in fact a very elegant and inspired piece of design

      To most PC developers, "elegant" is "weird." (-;

      The notion that a "pointer" wasn't implemented as an memory address, but as a data structure, was a strange thing at that time. (Now-a-days, we just call them "references" and no longer treat memory addresses as something "safe" to work with.) Despite having an easier to grok assembler language, this complication made it harder to write low-level code on the Mac, cementing the need to use a language like C to write all Mac software afterwards. Also, the heavy dependacy on macros in the "Universal Interfaces" to hide UPPs made continued support for Pascal as a application development language difficult.

      --
      Those who complain about affect & effect on /. should be disemvoweled
  2. Can someone explain to me... by fsterman · · Score: 5, Interesting

    ...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?
    1. Re:Can someone explain to me... by Slime-dogg · · Score: 3, Informative

      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.
    2. Re:Can someone explain to me... by DLWormwood · · Score: 4, Informative
      They are the same chip architecture isn't that the same instruction set, why can't they just dump it onto the chip?

      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 /. should be disemvoweled
    3. Re:Can someone explain to me... by dgatwood · · Score: 4, Informative
      Most apps don't send direct instructions to the GPU, though. They use DirectX or OpenGL. OpenGL calls can be trivially passed to... get ready for it... OpenGL on Mac OS X. DirectX calls should be able to be translated to OpenGL calls, I suspect.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

  3. I disagree completely. by BoomerSooner · · Score: 2, Informative

    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.

    1. Re:I disagree completely. by prockcore · · Score: 4, Funny

      in fact I run the first Baldur's Gate on my iBook.

      System requirements for Baldur's Gate:
      Pentium 166
      16 Megs of ram
      DirectX 3.0

      Recommended:
      Pentium 200
      32 Megs of ram
      DirectX 5.0

      Not exactly a glowing portrayal of VPC.

  4. Re:vpc is slow - but it *was* fast :( by @madeus · · Score: 4, Interesting

    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.

  5. Doesn't necessarily apply to Xbox 2 by Bollenator · · Score: 5, Informative

    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"
  6. .NET speedups? by Smitty825 · · Score: 4, Interesting

    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!
  7. Re:vpc is slow - but it *was* fast :( by dgatwood · · Score: 4, Interesting
    Part of the reason VPC is so slow is that it runs a stock version of Windows. While it is noble that VPC is capable of doing that, it isn't the best way to get good performance.

    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.

  8. What They Should Do by The+Lost+Supertone · · Score: 5, Interesting

    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.

  9. New Microsoft Slogan by feloneous+cat · · Score: 5, Funny

    Microsoft - Stuff that doesn't suck as bad as it used to...

    --
    IANAL, but I've seen actors play them on TV
  10. Re:Slow on my iBook 500 by dbirchall · · Score: 4, Informative
    According to "BGINFO" from SysInternals (a nice little freeware app that puts up various information about a windows system on the desktop background):

    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?

  11. Re:Slow on my iBook 500 by Pope · · Score: 3, Interesting

    I did some speed tests on a couple of Windows apps when I upgraded to VPC 6. In both OS 9 and OS X the results were very comparable, compared to VPC 4 or 5 where the OS 9 version blew away the OS X one.

    It may be emulating a 300MHz chip, but it'll obviously run faster on the PowerBook :)

    --
    It doesn't mean much now, it's built for the future.
  12. Fascinating quote by babbage · · Score: 3, Interesting

    This is interesting...

    In February, Microsoft released the Software Development Kit (SDK) for its forthcoming Xbox 2 video game console. Since the Xbox 2 will utilize IBM processors similar to the ones used in today's Macintosh systems, the SDK was seeded to developers on dual Apple Power Mac G5 systems running a custom Windows NT Kernel.

    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.

  13. Re:Seriously though.. by phillymacmike · · Score: 2, Informative
    That's exactly why the bought the company, Connectix, which had developed this functionality. See Virtual PC for Windows

    --
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _>8
    Too many errors in one post (make fewer).
  14. The "next" version of Virtual PC is 7.0! by Anonymous Coward · · Score: 5, Informative

    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!)

  15. I heard.... by commodoresloat · · Score: 2, Funny

    They actually were going to go with this slogan, but they were worried about being sued by Bare Bones.

  16. Re:vpc is slow - but it *was* fast :( by @madeus · · Score: 2, Informative

    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.