According to Hoyle...
Running Classic on Leopard,
Part II
by Jonathan Hoyle
jonhoyle@mac.com
macCompanion January 2008
http://www.jonhoyle.com
Last month we investigated three solutions
to running Classic applications on Mac OS X 10.5 Leopard: SheepShaver, Basilisk & Mini vMac. All three are
free and cross-platform, running on Mac OS X, Windows and even Linux. Of these
three, only SheepShaver emulates a
PowerPC-based Macintosh, whilst the other two emulate a 68K Mac. Since it is
the unusual Classic application which still supports 68K, SheepShaver remains the most important of the three we discussed.
Our review detailed usability, robustness and installation details. We also
started examining performance of these emulators, concluding that Power Mac
users are best served by SheepShaver,
while Intel users will find Basilisk's
performance far superior.
This month, we continue by exploring ways
to improve performance in SheepShaver & Basilisk and consider other
Classic Macintosh emulators, including Mac-on-Mac, PearPC, Executor and SoftMac.
Improving SheepShaver & Basilisk
Performance
When we ended last month's examination of SheepShaver, we discovered that we obtained quite acceptable
performance levels on PowerPC-based Macs (under some circumstances, surpassing
even Apple's Classic Environment),
but found it to be tremendously poor on Intel Macs. The reasons are
understandable considering that SheepShaver's G4 emulator is a simple "pass-through" on
Power Macintoshes, but involve true emulation on Intels. This month, we
continue by examining preference settings which can be used to dramatically
improve Intel performance.
For our tests, we have been using the
Classic application Speedometer 4.0.2,
which we can measure these four areas: CPU, Graphics, Disk and Math, each value
normalized to 1.0 = Quadra 605. Speedometer also allows you to run these same tests under 68K
emulation to see the 68K performance. Since Graphics and Disk performance are
essentially the same across 68K and PowerPC, we will not distinguish between
them for those tests. Also, since the CPU and Math scores tend to be of highest
importance for emulation tests, we will continue to use the convention of a
slash-separated pair of numbers to represent these, eg: 38.973 / 1516.224 for
the screenshot below.
Running these tests several times yields
varying numbers, as it is highly dependent upon other background activity on
your Mac. To average these differences out, we will use Speedometer's facility to average over 10 tests, and use only two
significant digits.
On a Dual 2.0 GHz Power Macintosh G5, SheepShaver scored 35 / 1700 for PPC and 3.2 / 115 for 68K. This
same test run on the much faster Dual 2.6 GHz Duo Core Xeon Mac Pro yielded only
6.0 / 1100 for PPC and a lowly 0.6 / 15 on 68K. Graphics tests also
demonstrated a similar speed penalty, dropping from the G5's score of around 35
down to an embarrassing 3.2 on the Intel. Is there any way to improve the
dismal performance on Mac-Intels?
Fortunately, yes. In SheepShaverGUI, there is a JIT Compiler tab which is a definite answer to prayer. On Intel
systems, there is a checkbox titled Enable JIT Compiler (this is not available on PowerPC). Turn this
checkbox on and restart SheepShaver.
CPU performance is improved nearly eightfold: going from 6.0 / 1100 to 45 /
2850, surpassing the G5's numbers. 68K improvements were even greater, jumping
an order of magnitude: from 0.6 / 15 to 6.0 / 154. Finally, the faster Mac Pro
is outperforming the G5.
Basilisk also has a JIT Compiler option, which will enhance its performance. On the
G5, Basilisk scored 3.0 / 60,
slower than SheepShaver in 68K
mode. With JIT left off, Basilisk on Intel ran significantly, weighing in at about 13 / 190. Turning JIT on, Basilisk now shines at 45 / 875. Below is a list of the
relative comparisons in Speedometer tests, with the highest test results displayed in red:
From these results, it is very clear that
the JIT setting should always be on for Intel users. Why it is off by default
on the Macintosh is a bit of a mystery, especially when considering that it is
on by default on the Windows versions of SheepShaver and Basilisk.
One final point: you may be curious as to
the meaning of SheepShaverGUI's
Enable
built-in 68k DR Emulator (EXPERIMENTAL) checkbox. It is apparently a 68K Dynamic Recompiler, but how it is used is
unclear to me. Mac OS 9 has its own 68K emulator which runs as part of the
operating system, so the need for one by SheepShaver remains mysterious. In any case, it had no impact on
any of the performance tests made.
Other Classic Emulators
Although we spent a great deal of time
last month on SheepShaver and Basilisk (and to a lesser extent Mini vMac), there are other emulators available which can run Classic
Macintosh applications, each of which is free. What are they, and how well do
these operate in Leopard (if at all)? That is the topic for this section of
this column. While the aforementioned "Big Three" run on both PowerPC and Intel Macs, that is not true
with the ones we will examine next. We will first turn our attention to the
PowerPC.
Mac-on-Linux is an initiative to run Macintosh applications on
PowerPC-based Linux operating systems (such as Yellow Dog, SUSE,
etc.). Since it requires a PowerPC-based machine, Mac-on-Linux is more of a virtual machine than it is an emulator. Not only can Mac-on-Linux can host the Classic Mac operating system (8.6
through 9.2.2), it also runs Mac OS X 10, Jaguar, Panther & Tiger flavors!
"But Leopard is not
Linux, so how does this help me?" you are no doubt asking. You are correct that Mac-on-Linux cannot run on Mac
OS X, but Mac OS X does come with an optional BSD installation called X11 that allows you to run Linux-like applications. A
separate branch of this project is a port of Mac-on-Linux onto Mac OS X's X11 environment, and this is called
the Mac-on-Mac project. Mac-on-Mac allows a Mac OS X user on a Power Mac to run another
operating system within a window, including Classic, Mac OS X and PPC-based
Linuxes.
Below is a screenshot of a Mac-on-Mac window with Mac OS 9 running inside:
Unfortunately, active
development of Mac-on-Mac (as well
as Mac-on-Linux) was ceased in
2005 when Apple announced its transition to Intel processors. The last version
of Mac-on-Mac (version 0.2.1 from
7/05) is not compatible with the Power Mac G5, nor will it run under Mac OS X
10.4 Tiger or later. So Mac-on-Mac is not a viable option for the Leopard user. Since Power Mac users running
Panther and earlier already have Classic, Mac-on-Mac's greatest potential appears to be lost.
It is worth mentioning that
since Mac-on-Mac is an open source
project, any Mac programming with sufficient time and interest may wish to jump
in and pick up this project where it was left off. Non-Mac programmers with
extra money and desire, may choose to bribe developers to work on this project
as well.
Classic Emulators for Intel
Although Apple's Intel transition may have
killed off the Mac-on-Mac emulator, it opened the door to a large number of Intel-based emulators already
available for Windows users.
With virtualization software such as Parallels and VMWare,
these Windows applications may now be able to run on your Intel Mac desktop.
Unfortunately, emulators have the habit of exploiting even the smallest incompatibilities
of virtualization software. Knowing this, I began investigating Classic
emulators currently available on Windows XP, and tested to see how they ran on
a Mac Pro running Parallels Desktop 3.
Knowing that SheepShaver and Basilisk were available for Windows as well as the Mac, I began with these. I
expected only a small differential in performance between the Mac and Windows
versions to account for differences between compilers. Imagine my surprise when
the Windows version of SheepShaver outperformed the Mac version in CPU scoring by nearly quadruple!
Turning on the Enable JIT Compiler checkbox setting (on by default in Windows, off by
default in Mac OS X), the Windows version of SheepShaver scored an outstanding CPU-PPC score of 164, eclipsing
the Mac version's score of 45. With JIT turned off, Windows did even better
relatively, beating the Mac score by ~27 to ~6. The same was true of most other
tests, including Math, Graphics and 68K tests. The only test which the Mac
version scored better (albeit narrowly) than the Windows version was the
Math-PPC / JIT On test. Disk tests, unsurprisingly, scored the same across
both versions. Basilisk had
similar results.
On almost all tests, the Windows version
outperformed the Mac version quite handily, on both SheepShaver and Basilisk. Interestingly, when the JIT is turned on, Basilisk is just as fast in 68K emulation as SheepShaver is with G4 emulation. Below are the figures comparing
the Mac & PC, with 1.0 = Quadra 605, best score in red.
In exchange for the better performance
though, these Windows versions have some compatibility issues. Occasionally,
the Graphics test would freeze on the Windows version of SheepShaver when the JIT is turned on. Basilisk for Windows had even more problems, crashing quite
frequently when booting under Mac OS 8.1, although having fewer problems in
System 7.5.5. Basilisk's Disk
tests on Windows frequently returned negative numbers as well.
PearPC
As is the case on the Macintosh, we find
that Mac emulators available for Windows are predominantly 68K-based. One of
the few exceptions is PearPC,
which emulates a "sort of G4, including Altivec". Like with many other emulators, it is open source
(GPL) and thus free to download. However, unlike many other emulators, no ROM
file is needed! Moreover, it is written to run non-Mac operating systems as
well, including Mandrake Linux PPC, AIX and NetBSD for PPC. You can visit PearPC's web site for more detailed information.
Unfortunately, Apple's announced
transition to Intel appears to have taken the wind out of this emulator's sail,
as the last update to PearPC was
in December 2005. This is unfortunate, as PearPC's current state makes it incompatible for our
purposes. First of all, it does not run any version of Mac OS prior to 10.1,
and the web site says only 10.3 Panther. Those wishing to install Tiger or
Leopard need to search the newsgroups for hints from those who have tinkered
with it, as there have been no updates on the web site for two years. PearPC's inability to run Mac OS 9 or earlier appears to be
related to its missing ROMs. Classic Mac OS relied heavily upon these ROMs,
and only operating systems that can be programmed around them are supported.
Even the Classic Environment in
Mac OS X freezes when attempting to use it.
The lack of updates for PearPC has created problems for even the operating systems
it is designed to work with. While trying to install Panther on PearPC in Parallels on a Mac Pro, installation fails:
Although I was unsuccessful in running
this emulator on my Mac, I have read the problem reports of those who have
succeeded in installing PearPC on
their Windows boxes. The chief complaint is that it is horribly slow, running
at (according to some estimates) 1/500th the speed of the host system. Ouch.
With PearPC being open sourced, there is always the possibility
of someone taking a branch to update it to run Classic. Even better would be
for that someone to port it to the Mac so that it Parallels is not needed.
However, there has been no sign of such activity yet.
Executor
Executor by Ardi is one of the oldest Mac emulators still
available, going back over 15 years. Until very recently, Executor was a commercial software product, but as of this
past summer, Ardi Founder Clifford Matthews has now made it freely available.
After downloading the program, you merely need to enter the serial number 99991004 and the authentication key n9rk57f369byp, as provided by Matthews. For more details about Executor, visit its web site.
Given its age, it should come as no
surprise to you that Executor is a
68K emulator. One of the features that sets it apart from the others is its
emulation philosophy. Rather than create an abstraction of the Mac hardware, Executor reverse engineers the Mac operating system so that it
applications run within the OS emulation. For this reason, neither ROMs nor
System Software are required to use Executor (the only Mac emulator I am aware of for which this
is true). I was able to download Executor and launch it immediately.
It is also very fast. Executor comes with prepackaged with Speedometer 3.23 (it has
an incompatibility with version 4), so I ran this version of Speedometer on
both Executor and Basilisk to see how they compare. Executor proved to be 7 times faster in both CPU and Graphics,
and a whopping 14 times faster in Math computations:
Even with all of the performance checkboxes
turned on, Executor still
outperforms the Mac version of Basilisk (although it is slower than the Windows version of Basilisk).
Unfortunately, Executor is extremely old, and showing its signs of age. It
emulates only System 7.0 and that incompletely. By default, it is configured to
emulate System 6.0.7. This is far, far earlier a version of the System Software
than would be reasonably expected for a Classic replacement. Even Mini vMac's emulation of a Mac Plus can fully support System
7.5.5. Executor was last updated
in 2002, and Ardi has announced that no further development will be
forthcoming. Despite its speed and not requiring ROMs or System Software, it's hard
to imagine Executor fulfilling
modern needs.
SoftMac
SoftMac, and its cousin Fusion PC, are a pair of emulators available from Emulators,
Inc., a company which has been selling emulators for some years now, including
Macintosh, 8-bit Atari and Atari ST. SoftMac is a 68K emulator designed to operate with Mac II,
Classic or Quadra ROMs. Version 8.2 was released at the end of 2002, with
rumors of a PowerPC version in development. Unfortunately, no such version was
ever released, and Emulators, Inc. announced that the project was being
discontinued.
Fast forward six years, and Emulators,
Inc. had suddenly revived the initiative and released a beta version of SoftMac version 9. For more information, visit here.
The preference dialogs are fairly straight
forward on SoftMac, allowing for
flexible configuration. ROMs may be accessed either by file (similar to Basilisk and Mini vMac) or through a special card that is designed to accept physical
Macintosh ROMs. It's hard to imagine why anyone would prefer this latter route,
but SoftMac provides it anyway.
Unfortunately, SoftMac never gets past the startup screen on the Mac Pro,
suggesting that there is a compatibility problem against the current Mac Pros
running Parallels. Although this problem dramatically shortens my ability to
review this product, it is worth remembering that it is still in beta, and SoftMac may yet be made to run on Intel-based Macs.
Furthermore, the renewed interest in SoftMac may inspire Emulators, Inc. to complete their PowerPC
version, finally giving SheepShaver a little competition.
Conclusion
Each of the emulators we have investigated
this month are inferior to both SheepShaver and Basilisk.
Since most Classic applications still in existence today are PowerPC-based, it
is SheepShaver which is the most
feasible option for Classic emulation. Power Mac users on Leopard will find SheepShaver's performance quite acceptable. Intel-based Mac users
will want to turn on the JIT compiler to significantly gain on performance. Those who are running Parallels Desktop
may find even better performance from the Windows version of SheepShaver. Likewise, Basilisk remains the clear choice if your application is Fat.
However, many of the projects we discussed this month are open source, so that
interested parties may choose to complete them to run under Leopard. Those that
aren't, such as SoftMac, may
improve as development continues. In any case, story is not yet over.
Coming Up: The final chapter on Classic solutions for Mac OS X
10.5 Leopard. See you in 30!
To see a list of all the
According to Hoyle columns, visit: http://www.jonhoyle.com/maccompanion
http://www.maccompanion.com/macc/archives/January2008/Columns/AccordingtoHoyle.htm