I have a question that isn’t answered in this FAQ or in the documentation. What do I do?
Ask on one of the various internet forums related to Mini vMac.
How do I get my Macintosh programs and other files into Mini vMac?
To use a program or other file with Mini vMac, you need to get it into a disk image. You can either use the ImportFl utility, or else use the host operating system to work with disk images as described in the Disk Image page.
How can I read a floppy disk that was written on a Mac Plus?
Modern machines can’t read the 400k and 800k floppy disks used by the Mac Plus. This a hardware problem, not solvable in software - they lack the variable speed motor of the old drives. I don’t know any reason why some company couldn’t now manufacture a floppy drive that reads the old disks, but I’m not aware of anyone doing so.
So the only way to read such disks is to get an old Mac. A somewhat later Mac than the Mac Plus would be useful, one that can read 400/800k floppies, but has some options for talking to modern machines, such as 1.4M floppies or ethernet.
An alternative is to hire someone to do this for you. See the Old Macintosh Disk Conversion Services page for some possibilities.
How can I print from Mini vMac?
There is no direct support for printing, but you can use the ability built into System 6.0.8 and later to print to a Postscript file. You can then export this file to the host computer, and print it from there.
To print to a Postscript file, select LaserWriter in the Chooser, then print from your application as normal, except that in the print dialog, choose PostScript File as the destination. To transfer the resulting file to the host computer you can use ExportFl. The Preview application in Macintosh OS X 10.4 or later can open and print PostScript files. (The name of the file should end with ".ps" to allow Preview to recognize it as PostScript.) Other operating systems may require additional software to print PostScript files.
ExportPS is a specialized variation of ExportFl that saves a few steps when printing.
Warning : printing to a Postscript file in System 6.0.8 has sometimes been observed to generate invalid Postscript. This problem may be fixed in later System versions. I've not had trouble with my preferred version: System 7.1 with System Update 3.0.
Can you send me a ROM image?
That would be a violation of copyright law. I am not a lawyer, but my understanding is that it is ok to produce a product that might be used for illegal purposes, so long as there sufficient legal use for it. Therefore I try to emphasize that Mini vMac can be used legally. The legal method is to own an old Macintosh (see the Buy Mac page) and extract the ROM image (see CopyRoms) for your own private use. (Some people think that this isn’t legal either, but that isn’t my understanding of U.S. copyright law, though I am not a lawyer, and laws could differ in other countries.)
I own an old Macintosh that I can’t extract the ROM image from (because it is broken, or because I don’t have the means to make it communicate with newer machines). Can you send me the ROM image?
That would still be a copyright violation. It only reduces the chance that anyone would care. (I think, I am not a lawyer.) Speaking of caring, as far as I know Apple doesn’t seem to have bothered lately to stop the various illegal copies of Macintosh 68k ROMs floating around the web. But I expect there would be limits to their tolerance.
Will you tell me where to find an illegal ROM image?
Of course not.
Why do I get a message that the ROM image may be corrupted?
Some of the illegal ROM images floating around the web are in fact corrupted.
Can you provide a bootable disk image?
No. This would require Apple System Software, involving issues similar to those mentioned above for ROM images. Except that System Software may be downloaded freely from Apple.
What System Software versions can be used with Mini vMac?
Mini vMac can currently be used with up to System Software 7.5.5, and any earlier version back to the earliest known prereleases. In theory some (distant) future version of Mini vMac may be able to work with up to Mac OS 8.1, the last version to work on a 680x0 Macintosh. Later system software, starting with 8.5, runs only on a PowerPC Macintosh.
Which emulation should I use (Mac Plus, Mac 128K, Mac SE)?
Which version to use depends on what ROM image you have. If you have all of them then the Mac Plus emulation is probably preferable. There are few detectable differences in the Mac SE emulation, and it’s not as well tested. The Mac 128K emulation can run some very early software that won’t run on a Mac Plus, but a lot of software that works on the Mac Plus won’t work on a Mac 128K (and only 128K of memory is very limiting). The Mac Plus was sold for the longest period of any Macintosh model, and so software written over a long period of time works well on it.
Why doesn’t the ROM from a Mac SE/30 or Mac SE FDHD work in the Mac SE version of Mini vMac?
As described on the Mac 68k page, the Mac SE/30 and the Mac SE FDHD are different machines from the Mac SE, and use different ROMs. I believe the Mac SE FDHD is quite similar to the Macintosh SE, but it has been reported that it is not close enough for the Macintosh SE FDHD ROM to work in the Macintosh SE emulator. The Mac SE/30 is much more different.
How is Mini vMac different from Basilisk II?
The biggest current difference is that Mini vMac emulates the earliest Macs, while Basilisk II emulates later 680x0 Macs. The fundamental technical difference is that Basilisk II doesn’t emulate hardware, but patches the drivers in ROM, while Mini vMac emulates the hardware (with the exception of the floppy drive).
The consequences are that some of the earliest Mac software will run in Mini vMac and not Basilisk II, while much of the later software will run in Basilisk II and not Mini vMac. For software that will run in either, the emulation in Mini vMac can be more accurate, while Basilisk II offers many more features (including color, larger screen, more memory, network access, and more host integration).
Mini vMac aims to stay simple and maintainable. So Mini vMac only has compile time preferences, where as Basilisk II has many run time preferences. And Mini vMac uses a rather simple emulation of the processor, compared to Basilisk II, which could make Mini vMac slower.
Maybe someday. The next computer that I plan to emulate is the Mac II, which has color. Meanwhile, you could try Basilisk II.
It might be possible to hack the ROM of the Mac Plus to support larger screen sizes. (Actually, the original vMac for Macintosh supported larger screen sizes, though in a way that doesn't work for Mini vMac.) But since it would not be emulating any Mac that ever existed, there definitely would be compatibility problems. It would work except when it didn't, which is not very satisfactory. If I implemented this, it would mostly be as a stepping stone to emulating later Macs, which is the preferred solution.
update: This is now implemented in the stable version.
The Mac Plus (and Mac SE) can support no more than 4MB of memory, since the RAM starts at address 0 and the ROM is at address 0x00400000 (4MB).
After figuring out how to patch the ROM to support a different size screen, I investigated whether it would be possible to patch the ROM so that it could function elsewhere in the address space. The answer was no. The Macintosh System software, in particular the part that installs bug fixes for traps that otherwise would be implemented ROM, assumes and depends on the exact address of the ROM. It would not be enough to patch the ROM, any System Software version that might be used would have to be patched as well.
The (incomplete) Macintosh II emulation currently supports up 8MB. The Macintosh II ROM is not "32-bit clean", and so has problems with more memory. But there is a later software update that is supposed to make a Mac II 32-bit clean (I assume by providing replacements for many of the ROM routines.) Unfortunately this doesn't work in Mini vMac yet, for unknown reasons. Maybe in the future. Meanwhile, you could try Basilisk II.
I've received a "report" that there was a third party upgrade for the original Mac that allowed it to support more than 512K of memory. So presumably it is possible for Mini vMac to do the same. I have not investigated this yet.
Mini vMac does not currently support networking. A real Mac Plus can use TCP/IP over a modem. All that software will work in Mini vMac, but there is no modem emulation. Mini vMac emulates the serial ports with nothing attached. In the future, I’m thinking there could be a replacement of the Mac Plus TCP/IP software to run inside Mini vMac, that could use the Mini vMac extension mechanism to talk to the TCP/IP API of the host operating system. But that is likely quite some way away. Meanwhile, you could try Basilisk II.
A real Macintosh has a small amount of memory that is preserved when the computer is turned off. This memory, the PRAM, is used to hold settings such as sound volume, start-up system drive, and printer connection.
vMac saves this information to a file upon quit, and loads this file on launch. Very early versions of Mini vMac also did this, until one day Mini vMac stopped working for me. I eventually realized that it was because the saved PRAM was corrupted. (This was a problem on real Macs too.) To prevent support headaches, I stopped saving the PRAM state.
If you compile your own version of Mini vMac, you can change the initial settings of the PRAM in the source code. A possible future feature for the Mini vMac build system is to make this easier, by providing build options for the more useful PRAM settings.
(For options such as which machine to emulate and how much RAM)
Since the goal is to keep Mini vMac small and simple, easily portable and maintainable, I don’t plan to implement any run time preferences, only compile time preferences. Run time options are more complex to implement than compile time options, and would make the program larger. If implemented in a simple way, having to constantly check what machine is being emulated at run time would make the program slower.
Another major concern is that preference files can get corrupted. (Similar to the PRAM issue mentioned above.) This is a very common problem with a lot of software. Not having a preference file prevents this problem.
I would prefer to continue trying to make it easier to use compile time options. Mini vMac is small enough that you can keep multiple copies of it, each customized to a different use.
Port to Syllable, SkyOS, Palm, BeOS, Amiga, or ...?
Porting to other operating systems is fun, and central to the goals of Mini vMac. However, it takes a while for me to learn enough about programming for an operating system as different as these to port Mini vMac, and relatively few people benefit, so that is not too high a priority for me.
On the other hand, if someone who is already familiar with an operating system would like to port Mini vMac to it, I'd be happy to assist, such as by answering questions about how Mini vMac works. Mini vMac is intended to be portable, has been ported a number of times already, and is relatively simple, so I think it should be relatively simple to learn enough about Mini vMac to be able to port it to a new operating system (compared to me learning enough to program for a new operating system).
Port to Apple II, TRS-80, Atari XL, Commodore 64, or ...?
In theory, Mini vMac can be ported to anything vaguely resembling a computer, so long as it has enough storage. So if you’re willing to do enough swapping of floppy disks, cassettes, or whatever, then it should be possible. However, it would be very difficult to create such ports, and impractical in the extreme. (As in, boot times measured in days, months, or years.)
For a practical Mini vMac port to be possible, a computer should have enough fast memory (RAM) to hold the emulated machine's RAM (minimum 128K for Macintosh) plus the emulated machine's ROM (minimum 64K), plus enough to hold the code of the emulator. A 16 bit computer like those mentioned above can only directly access 64K of RAM total. Some workarounds are possible, but they are complex, and it is hard to imagine anyone would ever bother.
Also, the host computer should preferably be at least 50 times faster than the original Macintosh to allow the emulation to run at a useable speed. The computers mentioned above are slower than the original Macintosh. (Modern computers are thousands of times faster.)
Emulation of a Mac LC475 or Quadra650 or IIci or ...?
Maybe someday. I’d like to eventually add emulation of other Macs, starting with the Mac II. I can’t work on emulating the machines in any order; each is a stepping stone to the next. For example the Mac SE was much like a Plus except for having to figure out ADB. The Mac II will be a much bigger step, having a 68020, a 68881 FPU, graphics card, and a new sound chip. But at least I have good documentation for it; I don’t have as much for later machines. Later machines also tend to use a 68030 or higher, which means having to deal with virtual memory.
Emulation of a PowerPC Macintosh?
No. PowerPC emulation will never be in Mini vMac, no matter how long I maintain it. It is “Mini” vMac, so one has to draw the line somewhere. Mini vMac is about preserving early Macintosh software. Such software, when written properly, will run efficiently on any 680x0 Macintosh. A PowerPC Macintosh runs this software by emulation. Emulating an emulator is much slower than just one level of emulation. (A PowerPC processor is faster than a 680x0 processor, but an emulation of a PowerPC processor is no faster than the emulation of a 680x0 processor.)
Instead, see “SheepShaver” or “PearPC”.
Emulation of a Lisa?
In theory, emulation of a Lisa running MacWorks is within the scope of Mini vMac. But it is not a high priority, since a Lisa is complex to emulate, and emulating it would not greatly advance the primary goal of preserving early Macintosh software. Instead see Ray Arachelian’s “Lisa Emulator Project”.
Emulation of an Apple II?
No. An Apple II has no real similarity to a Macintosh. This is “Mini” v“Mac”, if you want one emulator for everything, see “MESS”.
Open source ROM replacement?
No. While on some computers the ROM is relatively simple and just used to load the operating system, on an early Macintosh the ROM contains all the core software that makes it a Macintosh. The earliest system software doesn't have much more than a few bug fixes. (Which, by the way, is possible because the code in ROM is accessed through a dispatch table in RAM.) A replacement for the ROM would be much more complex than the whole of Mini vMac, and there would always be compatibility issues, so long as it wasn't identical to Apple's ROM.
It has been done though. See “Executor”.
What format is the Mini vMac source code in, and why don't you use something more standard?
It is a zipped hfs disk image. The "Building Mini vMac" page describes how to use it.
The "real" Mini vMac is not an emulator, but a program that generates source code for various Macintosh 680x0 emulators for various development tools. This is the Mini vMac build system. The build system is a program that runs on a Macintosh 680x0, which allows it be used by anyone who has Mini vMac (or any other real or emulated 680x0 Macintosh). The source code for the build system is in a format suitable for using with a Macintosh 680x0 C compiler. The build system is not made to be portable to other kinds of computers, as that would add much more complexity.
Even if the build system were not needed for generating all the various variations of Mini vMac, it would still be needed for supporting the various development tools. There are no standard source formats that are directly usable on all computers and development tools that Mini vMac is ported to.
What should I do with my old 680x0 Macintosh?
Keep it, of course. Owning an old Macintosh allows you to use Mini vMac legally. Even if Mini vMac doesn't emulate your specific 680x0 Macintosh model, it may at some future date, or a different emulator may.
If you really can't keep it, then some of the places listed on the Buy Mac page could also be used to sell one.