minivmac.sourceforge.net/doc/options - feedback
copyright (c) 2011 Paul C. Pratt - last update 12/6/2011

Mini vMac 3.2.3

Options


Language

Model
Memory
Screen Size
Screen Depth
Full Screen Mode
Magnify
Sound
Number of disk images
Checksum disk images
Disk images file tags
Disk Copy 4.2 format
Command Control Swap
Alternate Keyboard Mode
Mouse Emulation Accuracy
Speed
Emulated CPU
Timing Accuracy
Mininum Extensions
Icon Master


The main Download page provides the standard variation of Mini vMac. But much of the power of Mini vMac comes from the many other possible variations.

Mini vMac has no preference settings that persist across quitting and relaunching. This helps to keep the program small and fast, and the source code simple. But Mini vMac does have options that can be chosen at compile time.

For each of the options described on this page, there are links for example variations, such as (mnvm0020). The example variation pages provide downloads of compiled applications, and also sometimes additional documentation.

The example variations are only a tiny subset of the possible variations. You can compile your own variations with precisely the combinations of options you want, following the instructions on the Build page. Or, I can compile a custom variation for you.

Mini vMac does not create preference files or change registry settings or make any other changes to your computer. So there is no problem in having multiple variations of Mini vMac installed.

Language

By default, the user interface of Mini vMac is in English. Other languages can be chosen with one of these lines:

-lang eng { (default) English }
-lang fre { (mnvm0060) French }
-lang ita { (mnvm0061) Italian }
-lang ger { (mnvm0062) German }
-lang dut { (mnvm0063) Dutch }
-lang spa { (mnvm0064) Spanish }

If you would be interested in translating the user interface into some other language, see the Localization page for more details.

Model

By default, Mini vMac emulates a Macintosh Plus. But it also can be compiled to emulate a few other computers, with one of these lines:

-m 128K { (mnvm0020) Macintosh 128K }
-m 512Ke { (mnvm0022) Macintosh 512Ke }
-m Plus { (default) Macintosh Plus }
-m SE { (mnvm0023) Macintosh SE }
-m Classic { (mnvm0025) Macintosh Classic }
-m SEFDHD { (mnvm0024) Macintosh SE FDHD }
-m II { Macintosh II * }
-

* The Macintosh II emulation is incomplete, and will remain incomplete for all 3.2.x releases. This is not a matter of bugs - some critical pieces of the hardware are just not emulated at all, and any software that tries to use them will crash. Bug reports about what doesn't work are of no help to me.

Here is a mostly usable Macintosh II variation:

-m II -depth 3 -sound 0 { (mnvm0026) }

Since a Macintosh II can be hard to find, the Macintosh II emulator will accept the ROM from Macintosh IIx. The Macintosh IIx ROM appears to work with Macintosh II hardware. The Macintosh IIcx, the Macintosh II FDHD, and the Macintosh SE/30 all have the same ROM as the Macintosh IIx.

Memory

By default, Mini vMac emulates a Macintosh with 4M of memory. But it also can be compiled to emulate other memory sizes, depending on model:

Macintosh 128K and Macintosh 512Ke :
-mem 128K { 128 Kilobytes }
-mem 512K { 512 Kilobytes }

Macintosh Plus :
-mem 128K { 128 Kilobytes }
-mem 512K { 512 Kilobytes }
-mem 1M { (mnvm0130) 1 Megabyte }
-mem 2M { (mnvm0131) 2 Megabytes }
-mem 2.5M { (mnvm0132) 2.5 Megabytes }
-mem 4M { (default) 4 Megabytes }

Macintosh SE, Classic, and SE FDHD :
-mem 512K { 512 Kilobytes }
-mem 1M { 1 Megabyte }
-mem 2M { 2 Megabytes }
-mem 2.5M { 2.5 Megabytes }
-mem 4M { (default) 4 Megabytes }

Macintosh II :
-mem 1M { 1 Megabyte }
-mem 2M { 2 Megabytes }
-mem 4M { 4 Megabytes }
-mem 5M { 5 Megabytes }
-mem 8M { (default) 8 Megabytes }

The build system checks that the memory size you specify is supported by the Macintosh model you have chosen to emulate.

Another example:

-m 128K -mem 512K { (mnvm0021) Macintosh 512K }

Screen Size

You can choose the emulated screen size with lines such as:

-hres 640 { horizontal resolution }
-vres 512 { vertical resolution }

Mini vMac requires that the horizontal resolution be a multiple of 32.

For the Macintosh Plus, and other Macintosh computers without Color Quickdraw, this is a hack implemented with numerous ROM patches. It emulates a computer that never existed, so there will definitely be compatibility issues with some software. Also keep in mind that most games that will work on the Macintosh Plus are designed for 512x342, and don't benefit from a larger screen. You can also set the emulated screen smaller than 512x342, which could be useful on portable devices, but that will really cause compatibility issues.

For the Macintosh II emulation, these options specify the resolution of the external monitor, and shouldn't cause compatibility problems, at least if you choose values that were common on real monitors of the era. On the other hand, the Macintosh II emulation is unfinished, and not really usable yet.

Some example screen sizes:

common old Macintosh screen sizes

-hres 512 -vres 384 { (mnvm0100) }
-hres 640 -vres 480 { (mnvm0101) }
-hres 800 -vres 600 { (mnvm0102) }
-hres 1024 -vres 768 { (mnvm0103) }

common current screen sizes, but divided by two, so can use Magnify in full screen

-hres 512 -vres 384 { (mnvm0100) half 1024 x 768 }
-hres 640 -vres 400 { (mnvm0110) half 1280 x 800 }
-hres 640 -vres 512 { (mnvm0111) half 1280 x 1024 }
-hres 704 -vres 450 { (mnvm0112) half 1440 x 900, width constrained }
-hres 832 -vres 525 { (mnvm0113) half 1680 x 1050, width constrained }
-hres 960 -vres 540 { (mnvm0114) half 1920 x 1080 }
-hres 960 -vres 600 { (mnvm0115) half 1920 x 1200 }

Screen Depth

You can choose the emulated screen color depth with lines such as:

-depth 0 { black and white (the default) }
-depth 1 { 2 bit color (4 colors) }
-depth 2 { 4 bit color (16 colors) }
-depth 3 { 8 bit color (256 colors) }
-depth 4 { 16 bit color (thousands) }
-depth 5 { 32 bit color (millions) }

These options only work for Macintosh models that support Color Quickdraw, which currently means Mac II emulation only:

-m II -depth 0 -sound 0 { (mnvm0170) }
-m II -depth 1 -sound 0 { (mnvm0171) }
-m II -depth 2 -sound 0 { (mnvm0172) }
-m II -depth 3 -sound 0 { (mnvm0026) }
-m II -depth 4 -sound 0 { (mnvm0174) }
-m II -depth 5 -sound 0 { (mnvm0175) }

Color is currently only implemented for Macintosh OS X and Windows.

Color depth is a compile time option, instead of run time option, to help keep Mini vMac simple and small. However, regardless of the chosen color depth, Black and White is also available, and can be selected from the "Monitors" control panel. (In fact, you may not see color until selecting it from the "Monitors" control panel.)

Full Screen Mode

-fullscreen 0 { (default) start with Full Screen Mode off }
-fullscreen 1 { (mnvm0162) start with Full Screen Mode on }
-var-fullscreen 0 { Full Screen Mode is constant }
-var-fullscreen 1 { (default) Full Screen Mode is variable }

"-var-fullscreen 0" combines with -fullscreen like so:

-var-fullscreen 0 -fullscreen 0 { (mnvm0163) Never run in Full Screen Mode }
-var-fullscreen 0 -fullscreen 1 { (mnvm0164) Always run in Full Screen Mode }

In both cases, the "F" control mode command disappears.

Magnify

-magnify 0 { (default) start with Magnify Mode off }
-magnify 1 { (mnvm0165) start with Magnify Mode on }

Sound

The Macintosh and Windows versions have sound emulation on by default. The Linux version has sound off by default.

-sound 1 { Emulate sound }
-sound 0 { (mnvm0150) No sound emulation }

Emulating sound in Linux requires ALSA (sound is not part of the standard X11 protocol).

Number of disk images

By default, Mini vMac can mount up to 6 disk images (but for the Mac 128K/512K emulation the default is 2). This is because the replacement disk driver is trying to match the size of a data structure used by the real disk driver (on the Macintosh 128K/512K this structure is smaller). You can at compile time choose to support more disk images, up to 32, which makes this data structure larger, at some slight decrease in authenticity, and some slight memory and time overhead. Use a line such as:

-drives 1
-drives 2
-drives 3
...
-drives 6 { (default) }
...
-drives 16 { (mnvm0153) }
...
-drives 32

According to Apple’s Technical Note FL530, some versions of the System Software will not work correctly with more than 20 mounted volumes. The Standard File dialogs will corrupt the stack and may crash.

One reason for using the “-drives” option is that the installer programs for some Macintosh applications don't cope very well with multiple floppy drives, and insist on constantly ejecting the boot or destination disks rather than the install disks it has finished with. Some installers with this problem work much better if all installation disks can be mounted at once before starting.

Checksum disk images

-sony-sum 1

With the above line, Mini vMac will update the checksum in a Disk Copy 4.2 disk image when it is unmounted. This prevents other programs that deal with such images from complaining about an invalid checksum. (I didn't include this by default, because it makes Mini vMac slightly bigger and slower.)

Disk images file tags

-sony-tag 1

With the above line, Mini vMac tries to support file tags, for disk image formats that support them. There are an additional 12 bytes for each 512 byte block on a 400K or 800K floppy disk, containing some additional information that was supposed to aid in recovering damaged disks, but was never actually used much. The Disk Copy 4.2 disk image format can support these tags. (The more usual raw format, such as found in Blanks, does not.)

For full support of Disk Copy 4.2 format, enable both checksums and tags:

-sony-sum 1 -sony-tag 1 { (mnvm0155) }

Disk Copy 4.2 format

-sony-dc42 0 { (mnvm0156) }

The above line completely disables support for disk images in disk copy 4.2 format. This could be useful when trying to compile the smallest and simplest version of Mini vMac possible for some specific purpose. It should not be used when compiling a version of Mini vMac for general distribution, because a primary goal of Mini vMac is that disk images that work with any past version of the program should also work with the current and any future version (at least when default compile options are used).

Command Control Swap

You can swap the emulated Command and Control keys with:

-ccs { (mnvm0158) Command Control Swap }

This could be useful for people who are used to Windows, so that you can use Control-C to copy instead of Command-C (or actually Alt-C, as Alt is located where the Command key is on a Macintosh keyboard).

It can also be useful for people used to Macintosh who have remapped the keys on their Windows machine to swap Control and Alt. Using '-ccs' will swap them back for Mini vMac.

Linux is the same as Windows in this way, as far as I have seen.

The '-ccs' option does not affect F1 and F2, but should affect any other keys that get mapped to Control and Command.

Alternate Keyboard Mode

-akm { (mnvm0152) enable Alternate Keyboard Mode }

Some commonly used keys, such as the arrow keys, are a bit of a stretch to reach, and more importantly, their positions can be different on different keyboards. The Alternate Keyboard Mode provides an alternate way to type some of these keys.

Mouse Emulation Accuracy

-emm 0 { (mnvm0167) less accurate emulation in Full Screen Mode }

This option disables the more accurate mouse emulation normally used in Full Screen Mode, which looks at the motion of the real mouse rather than its absolute position. This allows Mini vMac to work somewhat better on tablet computers without a mouse. But such computers are still not really supported.

Speed

You can use one of these lines to set initial speed:

-speed z { 1x }
-speed 1 { 2x }
-speed 2 { 4x }
-speed 3 { (default) 8x }
-speed 4 { 16x }
-speed 5 { 32x }
-speed a { (mnvm0151) All out }

You can use one of these lines to set initial value of the Run in Background option:

-bg 0 { (default) start with Run in Background off }
-bg 1 { (mnvm0166) start with Run in Background on }

You can use one of these lines to set initial value of the AutoSlow option:

-as 0 { (mnvm0169) start with AutoSlow disabled }
-as 1 { (default) start with AutoSlow enabled }

Emulated CPU

Most computers emulated by Mini vMac have a 68000 processor. But you can force Mini vMac to emulate a 68020 processor with:

-em-cpu 2 { (mnvm0154) 68020 }

Timing Accuracy

Mini vMac estimates the number of clock cycles used by each instruction excuted. There are three levels of accuracy.

-ta 0 { (mnvm0160) least accurate timing }
-ta 1 { (default) }
-ta 2 { (mnvm0161) most accurate timing }

In "-ta 0" all instructions are assumed to take the same number of cycles. This closely matches Mini vMac 3.1.3 and earlier.

For "-ta 1", Mini vMac assigns an average number of cycles for each of the 65536 primary opcodes. This table is generated using timings from Motorola documentation. When a range of timings are possible for a primary opcode, an average was just guessed. In some future version of Mini vMac, this table should be tested and calibrated by comparing to real hardware.

For "-ta 2", Mini vMac supplements the cycles table by computing more accurate estimates for certain instructions depending on the current data. It is still not completely accurate. Completely accurate timing would be exceedingly difficult. For example, the CPU and video output conflict for accesses to RAM, and that would seem very complex to model.

Currently 68000 timings are used even in the 68020 emulation. More accurate timing for 68020 should be added in a future version. Truly accurate timing for 68020 would be much more difficult than for the 68000 because of pipelining and caching, probably to the point of being unfeasible for Mini vMac. But more accurate averages should be possible.

Mininum Extensions

-min-extn { (mnvm0157) Mininum Extensions }

This option turns off all but the minimum Mini vMac extensions, such as importing and exporting the clipboard, and creating new disk images and files, leaving just what is needed for the replacement disk driver to operate.

This makes the program smaller, and perhaps reduces potential security concerns. So it could be worth doing for when the extensions aren't needed, such as for most games.

Icon Master

-im 1 { (mnvm0168) Icon Master }

When compiled with the "Icon Master" setting turned on, Mini vMac will try to take ownership of Disk Image files and ROM Image files. It is better to have at most one copy of Mini vMac compiled with '-im 1' on a single computer. It may be preferred to have no copies of Mini vMac compiled with '-im 1', to avoid possible conflicts with other programs.


minivmac.sourceforge.net/doc/options - hosted by Get Mini vMac at SourceForge.net. Fast, secure and Free Open Source software downloads