minivmac.sourceforge.net/oldnews - feedback
copyright (c) 2007 Paul C. Pratt - last update 12/1/2007

OLD NEWS

November 7, 2007

Mini vMac for PowerPC Macintosh OS X is not compatible with Leopard, as pointed out in this bug report. I've figured out the problem, and will make a new beta soon. The version for Intel is not affected, and as far as I know works fine.

October 24, 2007

I've added a universal binary for Mac OS X to the download area for the Mini vMac 3.0.3 beta, as requested by Jason Townsend. (Actually he requested replacing the separate PowerPC and Intel versions, which I haven't done.) The universal version is useful for people who use both PowerPC and Intel Macintosh computers, and for people who don't know which they have. It is made by simply gluing together the separate versions with the 'lipo' tool. The executable code is not changed, which I why I'm willing to do this at the last minute before official release.

I've also made an '-im 1' version of this universal binary, and installed David Sibley's icons into it. This is available for download from the icons for Mini vMac page. (For Macintosh OS X, the '-im 1' option doesn't change the executable code, so again, this should reasonably safe to include at the last minute.)

October 23, 2007

David Sibley has created a very nice set of true Mac OS X style icons for Mini vMac.

October 3, 2007

AutQuit7 version 1.1.0 can now open a document as it launches an application. And if either the application or the document is on a disk that hasn’t mounted yet, it will now wait up to 15 seconds for it to mount.

September 27, 2007

I've updated the software for Macintosh Plus list. I added the 4 Ray's Maze adventure games, thanks to “Martin” for pointing them out. The recent HappyPlusClock is also added.

September 20, 2007

TestMnvM is the start of a utility for testing Mini vMac.

September 6, 2007

There is now a Mini vMac 3.0.3 beta. Beta means no new features will be added before the official release, which will hopefully be soon. Many more features could be added, but it has been too long since the last official release.

There aren’t too many changes in the default compile since the last alpha. The main one being that by default, the Macintosh versions of Mini vMac will not claim ownership to disk image and ROM image files. So double clicking on disk images will not launch Mini vMac. This is because when you have lots of copies of Mini vMac around, all of which claim ownership of disk images, it is unpredictable what happens when you double click on one, making the feature useless. Instead there is a compile time option, -im 1, to make Mini vMac claim ownership as has been done previously. You can then make sure to have only one copy of Mini vMac compiled this way on your computer.

The Windows version also will now claim to own disk image and ROM image files when compiled with '-im 1'. This feature had been removed from Mini vMac as of version 1.0, to avoid potential conflicts with other programs.

The Windows and Linux version will now attempt to do character set translation when importing and exporting the clipboard, and for the names of imported and exported files. The Windows version will now removed illegal characters from the default name for exported files (the Linux version already did this).

Most of what is new in Mini vMac 3.0.3 are compile time options, such as -bg, -speed, -no-asm, and -min-extn.

As previously mentioned, the optional sound in the the Linux version may now be more reliable.

August 23, 2007

AutQuit7 assists in “wrapping” an application for the Mac Plus that requires System 7.0 or later, so that you can use it with Mini vMac more as you would a native application for your machine.

August 17, 2007

DoLaunch is a trivial application that makes it possible to “wrap” programs that will not work as the Start Up application in System 6 or earlier.

August 14, 2007

I’ve revised the code for sound in the the Linux version (originally by Stephan Kochen), in response to a patch from Anonymous, with the help of what little documentation I could find on the web, and referring to the SDL code.

This new code seems to work reliably in Ubuntu 7.04 in Parallels, and will be included in the next Mini vMac release (alpha or first beta). If anyone would be interested in testing it before then, let me know.

August 11, 2007

ClockFix is a utility to keep the emulated clock accurate in System 7 or later. (It should work in any version of Mini vMac, not just the current alpha.)

I have updated ClipIn and ClipOut to provide the desk accessories in a second format, packaged as a system 7 style desk accessory, with icon and version resources. The desk accessory code itself is identical, and hasn’t changed since the previous version.

My original intention was to repackage ClipIn and ClipOut as applications for system 7, so as to better handle memory management, and since desk accessories are only supported in system 7 for backward compatibility. But it turns out that due to some quirks of how the scrap manager works and how desk accessories are handled in system 7, a desk accessory works better than an application can for the purposes of ClipIn and ClipOut.

August 4, 2007

There are new archives for ImportFl, ClipIn, and ClipOut, to fix mistakes in the README files. There are no other changes. Thanks to Anonymous for reporting the problem in ImportFl on the Proofreading tracker.

August 2, 2007

There is now a Mini vMac 3.0.2 alpha, with an assortment of bug fixes, new compile time options, and few changes to behavior.

The main change to the behavior of the default compile is that the stopped mode toggle is now Control-S-D instead of Control-S-S. Before I had wanted to make it quick to type, but now I think it is more important to prevent hitting it accidentally.

Another change is that the variation name displayed in the about message, and used for file names, no longer includes the development environment used to compile it or the debug status, but only has the program name abbreviation, the version number, and the target. Such as minivmac-3.0.2-imch, for the the Intel Macintosh version of Mini vMac 3.0.2.

When switching back to the Mini vMac application, previous versions would always ignore keys that were already held down. There is now a special case such that immediately after a drag and drop on Mini vMac, it will not ignore keys already held down. This makes it easier to rebuild the desktop of disk images by holding down command and option. However, the keys that map to command and option can have special meanings in other operating systems. (For example, in OS X, clicking on the window of another application with command and option down will hide all other applications.) So it usually works better to press command-option right before dropping, instead of before dragging. (Thanks to a complaint by David Sibley for this feature.)

An obscure change is that when entering the control mode, or the open dialog, or switching to another application, all the emulated keys (except for caps lock) are released immediately, instead of waiting until normal emulation resumes. An even more obscure change is that in the control mode, changes to the caps lock key take effect immediately, instead of waiting until leaving the control mode.

There is now a compile time option, “-ccs”, to swap the emulated Control and Command keys. And there is an experimental option, “-akm”, for making some keys more convenient to use.

The build system now supports more versions of Xcode. (Thanks to complaints from David Mullin.)

The build system now includes targets for Solaris, for use by Luc Pauwels port. So far the only change to the generated source from the linux target is to include the 'posix4' library. (And also the different target means the variation name, used in the about message, is different.)

The build system now has an option, “-pk”, to package the compiled application in a format suitable for distribution.

The biggest bug fixed in this version is that in OS X the clock could be off by some hours because the time zone wasn’t taken into account correctly. This happened because I was recently updating the OS X specific code to remove deprecated calls, which now seems to have been a waste, since now it seems the entire carbon API is basically deprecated.

Another bug fixed in OS X, and also earlier Mac OS, is that dragging and dropping onto the open file dialog would also immediately try to mount that file in Mini vMac.

A call to XFlush was missing in the X version (such as the linux port), and the most noticeable effect was the lack of drawing when Mini vMac was in the background with the run in background option on.

The Windows and X versions now support the PageUp, PageDown, Home, End, Help/Ins, and ForwardDelete keys.

An obscure bug fixed is that the mouse position could shift slightly when leaving full screen mode (or entering the open dialog in full screen mode). A more obscure bug fixed in the Macintosh versions is that {mouse down, control-o, mouse up, type escape key} would leave the emulated mouse stuck down.

July 26, 2007

I’m back from traveling and have released new versions of ExportFl, ImportFl, and binUnpk.

ExportFl and ImportFl will now quit when told to on shutdown, and now check that the needed Mini vMac extensions are available. The common source used in all 3 programs have been synchronized, along with a few additional minor cleanups.

I’ve moved the news from the alpha page to the Mini vMac main page. All Mini vMac related news will now go here. I’ve also moved the downloads to a separate page.

(Update: a few minutes after releasing binunpk-1.0.1.zip, I noticed that the disk image was missing the desktop file. This is fixed in binunpk-1.0.1b.zip)

July 12, 2007

I have minor updates to ImportFl and ExportFl about ready to release. (They don’t quit when told to on shutdown.) But I’m leaving in an hour to travel two weeks, so this will have to wait until I get back.

July 8, 2007

binUnpk is a utility to unpack MacBinary files. The ImportFl application is mostly useful for importing archives, since it will lose the Macintosh specific information of other kinds of files. Then you need a program such as Stuffit Expander 4.0.1 to unpack the archives. But Stuffit Expander itself comes as an MacBinary archive. binUnpk allows you to get started, since it doesn’t need to be imported into a disk image, it comes already in a disk image.

July 2, 2007

ImportFl is an application to use in Mini vMac (version 3.0.0 or later) to import files into the emulated computer from the real computer.

June 29, 2007

ExportFl is an application to use in Mini vMac (version 3.0.0 or later) to export files from the emulated computer to the real computer.

June 23, 2007

There is now a Mini vMac 3.0.1 alpha. Mini vMac 3.0.1 has basically no changes to the default compile, so only source code is provided. The main change is in the system for building the program from the source code.

To keep Mini vMac small, simple, and reliable, the design has been to have no run time preferences, only compile time options. The new build system is designed to make this more practical, to make it easier for people to compile a custom version.

The build system is now a Macintosh program that runs in Mini vMac (it would also work on a real 680x0 Macintosh). After you specify the options, the program generates an archive containing all the files needed to compile Mini vMac with those options in the selected development environment. If the build system is running in Mini vMac 3.0.0 (or later), then this archive will then automatically be exported to the real computer, where you can extract the files and compile the program.

For the documentation (so far) of the build system, see here.

Beside the build system, the other main change in Mini vMac 3.0.1 is the inclusion of a Dutch translation from Luc Pauwels (option “-lang dut”), and a Spanish translation by “Chir” (option “-lang spa”).

Also, thanks to “Lazyone” complaining that Mini vMac’s simple emulation of the 68000 processor was too slow for his Nintendo DS port, I’ve tried out a slightly different approach, which makes it around 5 to 20 percent faster. Which might not be enough to matter. But this approach also made it possible to be more accurate about illegal instructions without speed penalty, and it also makes the code a bit cleaner. However, this code is too new for me to trust it yet, so it is not used by default. Using it is a compile time option. (“-alt-cpu”)

December 25, 2006 I’ll be travelling and out of touch for a few weeks. My current location the last month or so didn’t work out so well for working on Mini vMac, with so much else going on. Maybe next year.

November 29, 2006

Luc Pauwels has now compiled and packaged Mini vMac 3.0.0 for Solaris 10 on SPARC and x86.

After traveling and other events the past couple weeks, I’ll now get back to Mini vMac, once I catch up a bit on sleep.

November 19, 2006

Sorry for the delay as I’ve started travelling again. I hope to regain some momentum in a week or so.

November 12, 2006

DAFKEY is a set of simple FKEYs to open items in the Apple menu. They provide a quicker way to use ClipOut and ClipIn.

November 11, 2006

ClipIn is a Desk Accessory that imports the clipboard of the real computer into the clipboard of the emulated computer (in Mini vMac 3.0.0).

November 10, 2006

ClipOut is the first software to go with Mini vMac 3.0.0. It is a Desk Accessory that exports the clipboard of the emulated computer to the real computer.

November 9, 2006 There is now a Mini vMac 3.0.0 alpha. It has no immediately obvious new features over version 2.8.2. Instead it provides certain capabilities for software running within the emulated machine.

I hope to provide some such software over the next few weeks.

October 17, 2006 Luc Pauwels has now also compiled and packaged Mini vMac for Solaris 10 on x86.

October 6, 2006 Luc Pauwels has compiled and packaged Mini vMac for Solaris 10 on Sun SPARC.

September 20, 2006 Mini vMac 2.8.2 is now officially released, with no change from the June beta. It includes localized versions for French, Italian, and German, and has a native Intel Macintosh version. More minor changes include an improved stopped mode, and some better error reporting.

The overlong beta period was mainly due to delay in writing up documentation for the new build system. But lately, on getting back to looking at this, I feel the current form isn't appropriate for Mini vMac. It may be powerful and easy to use, but it fails to be simple and maintainable. And I think I have a better idea, which can be based of the current code. But this will need to wait for a future version, and so I'm releasing Mini vMac 2.8.2 now.

Pierre Lemieux provided the French translation of the program strings. Gaël Coupé assisted by proofreading (an earlier version). Pierre Lemieux has also translated much of the Mini vMac documentation, available on his website at http://pages.videotron.com/plemieux/minivmac/.

Fabio Concas and Gianluca Abbiati provided the Italian translation. (Fabio Concas has previously ported Mini vMac to Pocket PC, available on his website at http://digilander.libero.it/jpdefault/mvm_index.html.)

Detlef Kahner provided the German translation. (He maintains the website Classics For X.)

The localizations are a compile time option. Now that the work has been done on Mini vMac to support French, Italian, and German, it wouldn't be too hard to support other languages, that use a similar character set, if anyone wants to volunteer to provide translations. See the Localization Page and the Localization Forum.

Mini vMac now has a 'Stopped' mode as an on/off toggle, instead of stopped being one of the set of speeds. So you can stop the emulation and then resume it, without having to remember what speed you were running. The implementation of Stopped mode is improved; the emulation is truly stopped, which fixes a potential issue with spurious sounds. The native cursor of the real machine is now shown while in stopped mode.

The ROM not found message now tells the name of the file it is looking for. There were many reports that indicated this was needed. It also gives a web page address for further information.

This message, and other error messages and informational messages are now displayed using platform independent code similar to the control mode. This improves the X version, which previously would just write messages to stderr or stdout, which could easily be missed, or be lost entirely depending on how the program was launched. It also means the non ascii characters (such as accented characters used in the French and Italian translations) are displayed more reliably across all versions.

If the ROM isn't found the program now doesn't immediately quit, but enters the stopped mode. This allows the error message to be seen using the new display method.

A number of other error messages have been added or improved. If the ROM file is too short, Mini vMac gives an error saying so, and a different error if there was a some other problem reading the ROM. In the X and Windows versions, if it doesn't recognize a command line argument, it will give a warning.

There are numerous refinements to the user interface strings, many of which were suggested by Pierre Lemieux.

The Windows version should now work better when the real computer isn't fast enough to emulate at 1x speed, allowing other programs and the computer as a whole to remain responsive.

In the Windows version the function keys F3 through F12 are now passed through to the emulated machine, to match the Mac and Linux versions. (F1 and F2 are used for the option and command keys.)

In the X version, the open command has been removed, instead of having a command that just gives a message saying not implemented (because an 'open a file' dialog isn't part of basic X). This is possible because of the more flexible way of displaying the help screen which was needed for the French and Italian localizations.

In the X version, switching between normal mode and Magnify mode and Full Screen Mode may now work more reliably on more operating systems, though it may sometimes flicker a bit more.

July 26, 2006 Lazyone” has released a Test/Alpha version of his port of Mini vMac to the Nintendo DS.

July 22, 2006 “Lazyone” is making progress porting Mini vMac to the Nintendo DS. For details and pictures see the Lazyone DS Development page.

June 9, 2006 Natalia Portillo has contributed versions of Mini vMac compiled for Microsoft Windows XP x64. They are available from the download area on this page. (I don't have an x64 machine, so I've not tried these myself.)

May 25, 2006 The public beta of version 2.8.2 is available.

March 1, 2006 The public beta of version 2.8.1 is available.

January 31, 2006 The first public beta of version 2.8.0 is available.

January 13, 2006

I've started a FAQ (Frequently Asked Questions) page.

January 12, 2006 "Daniel" has volunteered to do the Spanish translation. I've started a Localization Forum to coordinate translation work.

January 11, 2006 The new Localization page shows the current French and English strings to be used in the next version of Mini vMac. If anyone wants to volunteer a translation to another language (that uses a similar character set) in the next couple weeks, I'll include it in next version, which I intend to release a beta for by early February. The plan is to include a version compiled for Intel Macintosh, which is why the hurry. (I expect to get access to an Intel iMac within two weeks, and I believe the port should be trivial.)

January 10, 2006 Pierre Lemieux recently volunteered to translate the user interface strings of Mini vMac into French. He also went much further than that and has started to translate the documentation. The current version of the French documentation may be found on his website at http://pages.videotron.com/plemieux/minivmac/. Gaël Coupé has assisted Pierre Lemieux in this work by proof reading.

In other news, I have recently become aware of Xmac by "Darcelf", a port of Mini vMac to the Microsoft Xbox. I'm not providing a link to it here, because as far as I can tell after some hasty research, downloading the compiled program would not be strictly legal in most countries. (The Xbox is sold below cost, with Microsoft trying to profit from licensing developers, and therefore Microsoft tries to prevent unlicensed software, I think.) It should be completely legal to download the source code, and legal to compile it if one happens to be a registered Xbox developer.

January 2, 2006 I seem to be receiving email as normal at my regular account, so I've revised the Feedback page to say that sending email is fine, since it is clear that many people prefer it, but using the SourceForge Trackers and Forums is still preferable.

I'm now using Gmail to send email while travelling, thanks to an invitation from Dmitri Popov. And also thank you to one other person who sent an invitation (identified only by email address, which I won't list here).

December 6, 2005 I'm travelling again, and so again using Yahoo to send email. Unfortunately it seems that some ISPs blacklist Yahoo, so I can't reply to some people. (Hi John!) Also I seem to be having problems receiving email at my regular account. A few days ago their status page mentioned being "under a continuing DDOS attack". Because of this, and past problems with email, I now want to recommend that people use the SourceForge Trackers and Forums if at all possible. I've tried to revise the Feedback page to make this easier.

I've added a new Glitches Forum for reporting irreproducible problems that might, or might not, have been due to bugs in Mini vMac. It's listed on the Feedback page.

November 22, 2005 version 2.7.1 officially released. (There is no change from the beta.) Mini vMac now has more advanced control of speed, superseding the previous 'limit speed' option. Other highlights are an experimental compile time option for sound in the Linux version (thanks to Stephan Kochen), and that the Windows version is up to 40 percent faster by simply using a better c compiler.

Here are the rest of the release notes, copied from the beta page:

I've lately had the opportunity to test Mini vMac on a 2.7GHz Power Mac G5. (While doing other work for the company Scientific Imaging. The use of this machine and other help made Mini vMac 2.7.0 possible.) Mini vMac 2.6.1 was not really usable on the G5, the moment it ran the fans would go wild. I've had previous reports of such problems (such as from Ryan Schmidt), but I couldn't fix it without a machine to test solutions on.

The first change is that when 'limit speed' is on, Mini vMac will no longer try to monopolize the processor. I hadn't done this before because Mini vMac needs time each and every 60th of a second for smooth emulation, especially of sound, and I wasn't sure that operating systems could slice up time that fine. But after a bit of experimentation it now seems to work adequately in Mac OS X, Windows, Linux, and even Mac OS 9. It can actually be smoother because some operating systems will penalize programs for trying to take all the processor time.

The next change is to replace the simple 'limit speed' toggle with a bigger range of choices: 1x, 2x, 4x, 8x, 16x, 32x, and "All out". The 'L' command of the Control Mode is replaced with an 'S' command, that leads to another screen with more options. (The 'Limit Speed' toggle is also removed from the menu bar, in Macintosh and Windows.) So you can choose how fast you want the emulated machine to run, and thereby what percentage of the processor to take. I had previously thought that perhaps Mini vMac could automatically try to detect when the emulated machine is idle and slow down if it is. But there is no right way of doing this, there could only be guesses that would often be wrong. And it turns out that even if this could be done correctly, I still wouldn't like the result on a Power Mac G5 (running OS X 10.4.2). Within less than a second of the processor usage reaching 100 percent, the fans speed up. I can't think of any way to automatically guess that the emulated machine is idle much faster than that. By making the speed control manual, the fans stay constant no matter what the emulated machine is doing. This isn't just a problem for Mini vMac, it is a problem for any software not carefully written with the issue in mind. (For example, dragging a scroll bar in Mozilla 1.7.8 turns on the fans.) Hopefully, future versions of Mac OS X will improve the fan control. I think running the fans a bit louder always would be preferable than to having them always changing.

Since Mini vMac no longer needs to monopolize the processor there is now an option to allow it keep running even when it is not the active window. This is toggled by the 'B' command of the Speed Control screen. So you can set some computation going in Mini vMac and then use other programs on your machine. You can even have two copies of Mini vMac running at once. (Note that this is probably not legal unless you own a real Macintosh for each virtual machine running at once.) You can set Mini vMac to run in the background with the speed set to "All out", but this isn't recommended, except on a dual processor machine (Mini vMac can only use one processor).

There is now a command to stop Mini vMac (when it's the active application), the 'S' command of the Speed Control screen. This can be convenient, such as to pause a game. The implementation isn't yet satisfactory. The emulation needs to keep partially running so the Control Mode will work, which can result in some spurious sound output. I'll try to fix this in a later version.

Mini vMac will by default start at 8x speed, fast enough to feel reasonably snappy, but not so fast as to stress modern machines (which can go up to 20x to 50x). The '/l' command line option of the Windows version, and the the '-l' command line option of the X version, will still work, causing Mini vMac to start at 1x speed.

The minimum emulation speed is now 1x instead of 0.5x, to reduce possible compatibility issues and to simplify the code. If the real machine isn't fast enough to do 1x, the emulated machine will still think it is running at the normal number of instructions per time, but it's sense of time will not match the real time.

The Control Mode help screen will now display the current speed setting, and in addition will also display the Full Screen, Magnify, and emulated Control Key option settings.

The implementation of limiting speed is different for each operating system, and the behavior may vary a bit between them. In OS X, the emulation will now continue running (but only at 1x) while dragging the Mini vMac window, selecting from a menu, or while a dialog is up. In OS 9, the emulation will stop at all of these times. In other operating systems, the emulation may stop at some these times. In Mac OS 9, which uses cooperative multitasking, Mini vMac will only run smoothly if all other running programs are very cooperative.

I had thought that modern compilers couldn't cope very well with an emulation loop. But it turns out that the compiler in the free "Microsoft Visual C++ Toolkit 2003" does pretty well, better than the very old Microsoft compiler that I previously used. This speeds up the Windows version by up to 40 percent. (The OS X version uses hand tweaked PPC assembly, originally based from the the output of the MrC compiler.)

Mini vMac now includes the patch from Stephan Kochen that adds support for sound in the Linux version using ALSA. Unfortunately I haven't been able to test the merged version, since I haven't gotten sound to work at all in any version of Linux running in virtual PC. I did try installing one version of Linux (Ubuntu) on a real PC, where sound worked, but the very first call in Mini vMac that opens the audio device fails saying busy. Perhaps I didn't get the ALSA development files installed correctly. I made a number changes from the original patch to match Mini vMac formatting and error handling conventions, and to try to make it use non blocking, so I'm not sure if the current source would actually work at all on any machine. So I've not enabled it by default, it is a compile time option. [update: Stephan Kochen reports that it works for him. There was also one report of it not working.]

However, compiling with sound enabled in the Linux version involves more than just adding a line to the CNFGGLOB.h file. It needs an additional file header and library file. To deal with options like this I have added to the build system. There is now a collection of simple scripts, for various scripting languages, that take optional command line arguments and compile "setup.c" and use the result to compile Mini vMac. Unfortunately this isn't documented yet, so for 2.7.0 I've still generated the "projects" folder, which can be used as in the previous version. But for now I can say that to compile the Linux version with sound, open a terminal window and change the current directory to the 'source' folder. Then type 'bash build/bash MySoundEnabled' (and press return). When it finishes, there should now be a program called 'minivmac' in the 'output' folder, created within the 'source' folder. (Or you can use 'bash build/bash MySoundEnabled -keepmake', which will keep the make file, so that you can make changes and recompile.)

In the Mac OS X version, if you create a folder called "mnvm_dat" inside the "Contents" folder within the application bundle (control click on the application and choose "Show Package Contents"), then Mini vMac will look for the "vMac.ROM" file, and the disk1.dsk, disk2.dsk, etc files within the "mnvm_dat" folder. This allows you to make a self contained Mac OS X application that runs an application for the Mac Plus (especially when used with the AutoQuit software.)

In the Mac and Windows versions, the name of the Mini vMac window will be taken from the name of the application file, instead of just being "Mini vMac". So you can change the application name to change the window name, which also affects things like the Dock (OS X) or the Taskbar (Windows).

Mini vMac can now when launched automatically mount more than just three disks. It can also mount "disk4.dsk", "disk5.dsk", up to "disk9.dsk" (If Mini vMac is recompiled to support that many disk images. The default is 6, the maximum is 32).

The Windows version now supports "Shortcut" files (The Windows equivalent to Macintosh "Aliases".) The "vMac.ROM" and the "disk1.dsk", "disk2.dsk", etc files may be Shortcuts. It must be "vMac.ROM", not "Shortcut to vMac.ROM". Actually, the file is really named "vMac.ROM.lnk", but what you see is "vMac.ROM".

The Macintosh version now supports drag and drop of aliases. It is simply a bug that it didn't previously work.

The Macintosh OS X version now uses the recommended SetSystemUIMode to enter Full Screen mode when it is available (10.2 or later). The main noticeable difference is that Command-Tab is no longer intercepted by the operating system, but passed to the emulated machine. (The intended only way to exit Full Screen mode is to type "Control-F".)

The "About" command of the Control Mode ("A") no longer displays copyright holders, since the complete list is too long to fit here. It now only displays the maintainer name, immediately followed by the web page, where the complete list can be found (on the Credits page). Anyone maintaining a fork of Mini vMac (such as Fabio Concas) can change kMaintainerName and kStrHomePage in "setup.h".

Mini vMac now has some code for 68020 emulation as a compile time option. (The Mac Plus ROM supports the 68020, and vMac for Macintosh emulates a 68020 instead of a 68000.) Much of the implementation is adapted from the "UAE Amiga Emulator", mostly as found in the vMac source. The Mini vMac 68020 emulation works well enough to boot up with the emulated machine thinking it has a 68020, with the operating system and MacsBug working correctly, and most software that doesn't require a 68020 working normally. It is hard to test the 68020 emulation because most software that requires the 68020 also requires color quickdraw. The little software I've found that seems like it ought to work all crashes, so I'm pretty sure there are bugs in this 68020 emulation. The main reason for emulating a Mac Plus 68020 is as a stepping stone to emulating the Mac II. Having the Mac Plus 68020 working as well as it does so far will make it easier to write testing software to make a correct 68020 implementation.

This were some bugs in the VIA timer 1 emulation and the delayed task mechanism. Fixing these allows Mini vMac to pass the tests of Apple's MacCheck program when running faster than 1x (2.6.1 would pass only if 'Limit Speed' was on).

There was a bug in the PPC asm version of the 68000 emulator, where a routine wasn't preserving all registers it should. This doesn't seem to affect previous versions of Mini vMac, but it definitely affected the current version.

The 680x0 emulator emulated the Fline trap incorrectly. This doesn't previously seem to have had any effect, but it prevented MacsBug from working with the 68020 emulation.

The MoveS instruction has been removed from 68000 emulation, since it isn't a legal 68000 instruction. Also the implementation wasn't correct anyway. A possibly correct version is now in the 68020 emulation.

Mini vMac for OS 9 and earlier (PPC) will now work back to OS 8.1. It should work in earlier versions of Mac OS, but I haven't tested this yet. (Mini vMac for Macintosh 680x0 seems to work back to System 2, though it's not too thoroughly tested.)

October 10, 2005 The public beta of version 2.7.1 is available.

August 1, 2005 The first public beta of version 2.7.0 is available.

May 25, 2005 I'm getting back to Mini vMac development, after some weeks of travelling. Meanwhile, Stephan Kochen has implemented sound in the Linux version, using ALSA. His patch is available from the Patch Tracker. At his request, and also prompted by Michael Juneau, I've turned back on the SourceForge Trackers for Mini vMac. See the new Feedback page. Every other page on this web site now has a link to the Feedback page at the top.

I'd like to thank "gianluca69" for donating to Mini vMac development.

April 15, 2005 I've created PAD (Portable Application Description) files for the convenience of software news sites.

April 13, 2005 version 2.6.1 officially released. (There is no change from the beta.) Mini vMac now has a variation that emulates the Macintosh SE. Another highlight is that the window position is restored when leaving Full Screen mode.

The main benefit of emulating the Macintosh SE is that people who own a Macintosh SE can now use Mini vMac legally. (They can use "CopyRoms" to acquire a ROM image.) There is little observable difference from the emulation of the Macintosh Plus. The other motivation was to figure out the emulation of ADB for keyboard and mouse, since that will also be needed to emulate any later machine. There are a number of things that still need to be looked into for the Macintosh SE emulation, but it seems to work as is. Future versions may improve the accuracy of the emulation, as is usual for Mini vMac.

The Macintosh Plus emulation now has a more accurate emulation of the keyboard and of VIA timers, using a new mechanism for delayed tasks. There is little observable difference, except that Mini vMac can now pass the tests of Apple's MacCheck program, if 'Limit Speed' is turned on for the 'Clock/Interrupts' test.

When leaving Full Screen mode, Mini vMac now returns to previous window position and magnify state. And when Full Screen mode is re-entered, it remembers the magnify state from last time. This works on Macintosh, Windows, and X. However the last was probably a bad idea, as X window managers seem to think that window positions are none of the application's business. I was able to wrestle X into submission, but it will probably take revenge later with obscure compatibility problems.

The source code for the Pocket PC port by Fabio Concas is now merged in. The intent is to make it easier for him to update his port when there is a new version of Mini vMac. I cannot offer any support for this port myself, as I don't own a Pocket PC, and don't know how to program it.

The version for Macintosh OS X now uses native Carbon Events, and no longer uses GetKeys, which might not work reliably in some versions of OS X. I received one report of such trouble from John Siracusa. With that, and figuring out to remove default command key equivalents from the Mini vMac menu, the ugly 'Command-Q' and 'Command-H' menu item kludge is no longer needed.

The Caps Lock key now works in Windows XP in full screen mode. This was broken in 2.5.0.

The documentation now has a page for compile time options, such as which machine is emulated.

This version was intended to have faster drawing in OS X for Full Screen mode. However, at the last minute I discovered that on an older machine (a PowerMac G3), when combined with Magnify mode, it was much, much slower. So I've disabled the feature, though it is still available as a compile time option. The idea is to use OpenGL, which seems to be the only way to avoid the double buffering done by OS X. This made drawing much faster on my development machine (though still nowhere near the speed of the OS 9 version). Unfortunately, on the older G3, the magnify by 2 operation doesn't seem to have been optimized, making it unusably slow.

I'd like to thank Lil and Sherm Sundet for recently donating a Macintosh IIcx to Mini vMac development. Yes, I intend to extend Mini vMac to emulate some later machines with color, though this will take some time. I've added a page listing 680x0 Macintosh models, sorted by date, which is also roughly the order I might try to emulate them. I've also expanded the page listing places to buy a Macintosh Plus.

March 29, 2005 The public beta of version 2.6.1 is available, with 2 minor bug fixes.

March 16, 2005 The first public beta of version 2.6.0 is available.

January 14, 2005 I just got back a few hours ago, and found some neat news in my accumulated email. Fabio Concas has ported Mini vMac to Pocket PC - see "http://web.tiscali.it/moustar/ppc_index.html". I don't have a Pocket PC to try it with, but I can look at the screenshots.

December 23, 2004 A few more programs have been added to the list of Macintosh Plus software. The online documentation has a correction from Ryan Schmidt - the 'v' disk icon (for disk images that aren't 400K or 800K) shows up not just in System 7, but also in earlier systems. (I think this didn't work in some early development version of Mini vMac.)

I will be disconnected from the internet for about 3 weeks. I'll respond to any emails when I get back.

December 10, 2004 I've started a page to list places to buy a Macintosh Plus. (Mini vMac requires a ROM image file to run, and so can be legally used only by those who own a Macintosh Plus.) I've added a tip from Orion Sky Lawlor on how to transfer files into a Macintosh disk image in Linux to the Disk Images page.

December 2, 2004 Added a page with MD5 checksums. I've put back in the alternate download page, please only use this if the main SourceForge downloads don't work. I've also added a little more detail to the Disk Images page.

December 1, 2004 Some refinements to the documentation and the rest of the web site. I've started a new page about working with Disk Images, thanks to a question from Chuck Iverson, and many previous indications that it's needed. It needs more work, especially needing more detail for Windows and Linux. I've tried to clarify what to do with '.sea' files in the Start page, thanks to a question from Roger Kenyon. I've put in a "What Next?" section at the end of that page. And there is now a separate page for each of the Mini vMac Extras.

November 24, 2004 version 2.5.0 officially released. (There is no change from the beta.) Some highlights are emulation of the extended Parameter RAM, assorted fixes, and more speed in the Macintosh version.

Mini vMac now emulates the extended Parameter RAM of the Mac Plus, thanks to code contributed by Philip Cummins. Previously only the 20 byte PRAM of the original Macintosh 128 was emulated. The larger 256 byte PRAM stores additional information such as the time zone, latitude, longitude, and the alert sound. So now the Map and Sound control panels will work. This information is not saved on quit. The Macintosh version will initialize the time zone, latitude, and longitude from the real machine's information. The Windows version only initializes the time zone. I have some code that can find the time zone for the X version, but I'm not sure how portable it is, so it is disabled.

The emulation of the SCC chip is improved a bit, so that booting with AppleTalk turned on won't hang, and printing to the imagewriter will successfully do nothing. The SCC code from the Windows version of vMac was used as a starting point, with permission from Weston Pawlowski. (But unlike vMac for Windows, Mini vMac only tries to emulate serial ports that aren't connected to anything.) Also, thanks to Philip Cummins for pointing out the Zilog documentation for the SCC chip.

A small change to the VIA timer 2 code seems to stop the tendency to hang playing sounds in System 7. It seems to work ok, even though it doesn't fix what is probably the real problem, that Mini vMac only resolves time to about a millisecond, while the real VIA timer has much higher resolution.

I've added a number of programs that now work because of this change to the currently available Software page, along with many other additions. Over 40 have been added, bringing the total to over 200.

The PowerPC assembly language is tweaked a bit more, making the Macintosh version about 20 to 40 percent faster.

The Restart command will now work in all system versions. It seems that, contrary to the impression given by the documentation, executing the 68000 RESET instruction doesn't change the memory overlay state. Or at least, empirically, that seems to work better.

Some subtle bugs involving word access to address registers have been fixed. The main known effect is that the game BachMan sounds different.

Bad accesses to disk images could previously cause data to be written past the end of the memory allocated for the emulated RAM, which in theory could cause Mini vMac to crash or worse. This has been fixed.

In the Macintosh version, the F1 and F2 keys are now mapped to emulated option and command keys, to match the Windows and X versions. This provides a way to type some key combinations that are intercepted by the OS of the real machine. For example F2-Shift-3 will take a screen shot in the emulated machine, whereas Command-Shift-3 takes a screen shot of the real Macintosh at the same time.

The interrupt button emulation is now more realistic. One consequence is that the interrupt button can be masked, if the processor's priority level is high enough.

Previously, in the Windows version, double clicking on a disk image in the open dialog would tend not to work, because the mouse button would still be down upon returning to Mini vMac, which prevents mounting. Mouse clicks are now handled differently, which solves this problem.

Previously, in the X version, quitting Mini vMac could be delayed if the window manager moves the window to the back when it is being closed (such as in Red Hat Linux 9). This is fixed.

Mini vMac now has a mechanism for reporting reaching a part of the emulation that hasn't been implemented, or at least never tested.

A version compiled for Macintosh 680x0 is now included. So that it can run inside Mini vMac, this version emulates a Macintosh Plus with only 2M of memory instead of 4M. This is more amusing than useful. Since it is so very slow, I've not tested it much.

November 15, 2004 The first public beta of version 2.5.0 is available.

September 18, 2004 The Mini vMac web pages are moving from "http://www.gryphel.com/c/minivmac" to "http://minivmac.sourceforge.net". For a short transition period, the same information is in both places, except for a new Screenshots page.

September 12, 2004 A few more programs have been added to the list of Macintosh Plus software. A new page makes it easy to find what's been added. Thanks to Simone Bettini for making his games available, along with a mini review of Mini vMac, and telling me about it.

For Macintosh OS 9 users, Sebastian Soyka reports that StuffIt Expander 7.0.3 will not unstuff "minivmac-2.4.1-mpwmppcs.bin.sit". (It can be unstuffed with the StuffIt Expander 6.0 that came with System 9.2.2; it was created with the version of DropStuff that came with System 9.2.2) I've repackaged it into "minivmac-2.4.1-mpwmppcs.bin.sit.zip", which should work with all versions of StuffIt Expander.

I forgot to mention earlier that the lower level mouse emulation in full screen mode of version 2.4.1 allows the game Apache Strike to work, according to Charles Srstka, Tom Slankard, and Gael Coupe. It's surprising how popular this game is.

September 8, 2004 version 2.4.1 released. Some highlights are a first attempt at supporting sound in the Windows version, a better square wave sound approximation, a somewhat lower level mouse emulation, and a few fixes for the X version.

Version 2.4.0 was released only to the beta testers: Charles Srstka, Eric Lundquist, Tom Slankard, Jonathan Pratt, and Malik Jayawardena. This was the first official beta test, and quite succesful in showing that my idea of restricting sound to the Full Screen mode was a bad one. Thank you, testers. If you would like to volunteer to beta test, contact me. This and other ways of aiding the development of Mini vMac are described on the Help page. Speaking of which, I'd like to thank John DAgostini for his donation.

The sound emulation in the Windows version will so far only work on machines that can play sound at 22255 samples per second, instead of a more standard value like 22050. This works fine on the few machines I've tried it on, but I don't have any sense of what percentage of machines support this, so I would be interested in hearing about this. As far as I can tell vMac for Windows just plays sound at 22050 samples per second, meaning all pitches are off, as well as the emulated machines sense of time. I could perhaps make Mini vMac do the same, if it detects that the machine doesn't support 22255 sample per second.

Square wave sounds are improved. They are still forced into the same 22255 samples per second as other sounds, but now a better approximation is used. This makes games like Lode Runner sound quite different.

The new version will now use a somewhat lower level mouse emulation, when in Full Screen mode. Instead of poking in the current mouse position into the emulated machines low memory, it pokes the mouse velocity into a different location. This allows programs such as Microsoft Flight Simulator (version 1.00) and the utility "Stepping Out" to work. The mouse hardware is still not emulated, but I think this would be slower, and I don't know of any programs that require it, so I may not plan to do this.

This new mouse emulation requires the ability to set the mouse location of the real machine. It has code that attempts to detect when this doesn't work, and then switches to the absolute position mouse emulation. However it can't detect the problem when running in Virtual PC with Pointer Integration turned on, where as far as Mini vMac can tell, setting the mouse position succeeds, but the next time the user moves the mouse Virtual PC ignores the set position. So to run Mini vMac in Virtual PC, you need to turn off Pointer Integration. It also can't detect the problem when using the Mac OS 9 version in the classic environment of OS X, where setting the mouse position causes the mouse to freeze for a moment. This was also a problem in the OS X version, until I found the trick to use in "SDL_QuartzWM.m" of the "Simple DirectMedia Layer", Copyright (C) 1997-2003 Sam Lantinga. (This problem affected previous versions of Mini vMac, and was especially noticeable in the game HeartQuest.)

Full Screen mode is now more different from the regular "in a window" mode. The new design idea is that when in the regular mode, Mini vMac should try to behave as much like a normal cooperative application as possible, while in Full Screen mode it will try to take over the entire machine as much as possible.

So now the Windows version will only try to take over the keyboard in Full Screen mode (preventing the os from intercepting the windows key and alt-tab). (This now works in Windows 95/98, in addition to Windows XP where it previously worked). The X version will now also try to grab the keyboard in Full Screen mode. I don't know how to grab the keyboard on the Macintosh.

The Mac OS 9 version will now only try to hog the machines time when in Full Screen mode. So in regular mode the menu bar clock will update properly. The Windows version will now set the programs priority to high when in full screen mode. I don't know yet how to increase the programs priority in Mac OS X or in X.

There is not supposed to be any way to leave Full Screen mode except for the 'F' command of the control Mode. However, sometimes there is no way to prevent the operating system from bringing up some other program (such as by using command-tab in Mac OS X). Mini vMac will now detect if it is no longer the active application, and turn off Full Screen mode.

The X version has some assorted fixes. The Caps Lock key now works. When toggling Full Screen mode, the control mode should no longer get stuck on (key events were being lost, such as the key up event for the control key). In Mandrake Linux 9.2, the Windows key can now be used as the emulated option key. The not quite hidden cursor problem may be solved with code adapted from X11_CreateNullCursor in context.x11.c in quakeforge 0.5.5, copyright Id Software, Inc. Zephaniah E. Hull, and Jeff Teunissen.

August 13, 2004 The online documentation has been updated to match the current development branch, or what can now just be called the current version. The "stable branch" is not useful at this time, since it is way behind on features, and there haven't been many problems with the development branch. So I've removed the stable branch from the download area. Instead, if you have problems with the current version, any previous version can be downloaded from SourceForge.

July 23, 2004 The Software for Macintosh Plus listing is much expanded.

July 11, 2004 version 2.3.1 released. It contains assorted fixes.

I'm back home, but I still can't do much work on Mini vMac yet, because there is other (paying) work that needs to be done. But anyway, I want to get these fixes out now:

Previous versions for Mac OS X would tend to lose the first keystroke. The operating system apparently pauses a while when getting the first key event, so that the key is already up after events are checked, when Mini vMac would check the keyboard state. The work around used in the new version is to check the keyboard state before checking for events.

Also in previous Mac OS X versions, full screen mode would not work quite right when the computer has multiple screens. It would only cover the main screen, so that you could accidentally move the mouse off the main screen, and a click would deactivate Mini vMac. It now covers all screens.

In previous versions for all operating systems, you could drag a disk image to the Mini vMac window, but if that window wasn't active, nothing at all would happen until the window was made active. This was especially bad because of a quirk of Macintosh Plus, that when it is first booted, if the mouse button is down, any disk inserted is immediately ejected. So if you launched Mini vMac, dragged a bootable disk image to the window, and then clicked on the window content to activate it again, the disk image would be ejected. In the new version, when a disk image is dragged on to the Mini vMac window, then Mini vMac is automatically activated.

The Mac OS X version is now more native, in that is using the macho format instead of the older CFM format. This might eventually allow a smoother and more efficient program, by allowing access to lower level abilities of Mac OS X. (But currently it is little if any faster, and somewhat larger.) The main work done to make this possible was to figure out a script to automatically translate the powerpc assembly language code into something that the gnu assembler understands.

(This one is really obscure.) In Mac OS X, as well as many window managers for X, it is possible to click on the close box of an inactive window, which can close the window without first activating it. In previous versions of Mini vMac, (when no disk image is mounted), nothing would happen when clicking on the close box of inactive window, but the window would immediately close when reactivated again. Now the window will close immediately. (If a disk image is mounted, when Mini vMac is in the back ground, a click in the close box will be ignored.)

The Windows version will now try to prevent the operating system from intercepting any key events, at least when running in Windows XP. (This doesn't work yet in Windows 95 or Windows 98.) So, for example, the key with the Windows symbol on it can be used as an 'option' key, instead of popping up the 'Start' menu.

The magnify mode in the Windows version may now be faster. Though it might depend on the exact hardware and operating system used.

The full screen mode and drag and drop features added in the last X version were developed and tested only in Red Hat Linux 7.1. I recently downloaded a number of different linux distributions (Thanks to the company Scientific Imaging for access to a T1 line), and there were serious problems with most of them. The biggest one was that Mini vMac could lose the focus when entering full screen mode, and stop responding to keyboard and mouse, with no way to leave full screen mode. The new X version is much improved (But not perfect. See the bug list).

Since nobody reported these bugs, I assume that there are not many users of the X version. To encourage people to use it, I am now providing a precompiled application for Linux (x86), not just the source code. It was compiled with Red Hat Linux 7.1, and seems to work on all the distributions I've tried.

To keep the number of files released manageable, I'm no longer providing compiled versions of the Mac 128k emulator. This option now requires you to compile it yourself. (The compile time options are not yet documented; this is on the to do list.)

For anyone who wants to compile from source, the 'source' directory should now be placed in the same directory as the 'project' directory, rather than within 'project'. The version of the source code formatted for old Mac OS (not OS X), is now a zip file containing an (uncompressed) stuffit archive (so I've used the file extension '.szp'). This is not standard, but I can create this format with automatic tools (which I don't have software to do for a normal stuffit archive).

April 12, 2004 I will be travelling, so there will be no updates to Mini vMac until late summer. I will still respond to email.

March 25, 2004 Added MnvMreg to the 'Extras' section of the Downloads. MnvMreg is a utility to install Mini vMac into the Microsoft Windows registry, so that double clicking on a disk image file with the extension '.dsk' will open it with Mini vMac, and so that such disk image files and also '.rom' files will be displayed with custom icons. Prior to version 1.0.0 of Mini vMac, every launch of the Mini vMac application would reinstall it in the registry. But since this could conflict with other applications that want to use the '.dsk' and '.rom' extensions, this feature was removed. MnvMreg brings this back as a 'use at your own risk' optional feature.

I haven't received any bug reports for 2.3.0, after a few hundred downloads and nearly a month, so there probably isn't anything horribly wrong with the major changes in the Windows and X versions.

February 28, 2004 version 2.3.0 released. It features improvements to the Windows and X versions, bringing them closer to the Macintosh version.

The Windows and X versions now implements Magnify mode, Full Screen mode, and Drag and Drop of disk images. As in the Macintosh version, Full Screen mode is entered by typing 'Control-F', and exitted by typing 'Control-F' again. Magnify mode is automatically activated if the screen is big enough. Magnify mode can also be separately toggled using 'Control-M'. Drag and Drop support means that dragging the icon of a disk image file onto the Mini vMac window causes the disk image to be mounted by Mini vMac. (But note that the emulation is paused when Mini vMac isn't active, so nothing will happen until you reactivate Mini vMac.)

Drag and Drop support in the X version means that you can now mount more disk images after the program has started running. This wasn't possible before in the X version. Thanks to Lars Kellogg-Stedman who pointed out to me a specification for a drag and drop protocol (at "http://www.newplanetsoftware.com/xdnd/").

For Macintosh users there is one new feature (which is also implemented in the Windows and X versions). Mini vMac will detect when the emulated program has tried to move the emulated mouse position, and adjust the real mouse position to match. (But only when in Full Screen mode). This makes games like Crystal Quest more playable. Other games that I know it affects are: HeartQuest, Slime Invaders, Arkenoid, and MacLanding. It turns out that this isn't enough to get games like Apache Strike to work, but maybe now I know enough to be able to implement lower level emulation of the mouse hardware in a future version.

To implement the above feature, I found out the official ways for a program to set the mouse position on a Macintosh. I've modified Mini vMac to use the official method for the Macintosh Plus to set the position of the emulated mouse. I don't observe any difference, but it possibly might affect some obscure software.

In the Windows version the right mouse button is now equivalent to the left mouse button. In the X version buttons 2 and 3 are now equivalent to button 1.

This version fixes a slight mistake in code that recognizes old disk copy 4.2 style disk images. It previously might have incorrectly decided an image was the old style, though I've never observed this to happen.

The Windows version fixes a bug where Mini vMac wouldn't work if its window was partly off the left edge of the screen.

Be warned that I wouldn't consider the Windows and X versions very well tested, since I've only used them in Virtual PC on my iBook. Please let me know if you find problems. Those who are less adventurous might want to wait a week or two before downloading it and then check the Bugs page. I'm not sending out announcements about this version, in an attempt to delay when most people will download it.

February 13, 2004 Added a page listing ways you can help the Mini vMac project.

February 8, 2004 Added a To Do page, listing possible future improvements, and some of the issues involved in implementing them.

February 5, 2004 Added SetFType to the 'Extras' section of the Downloads. It is a pair of utilities for Mac OS X and OS 9 that set the file type and creator of a disk image. "SetFType.dimg" makes the file belong to Disk Copy, which makes it possible to mount the disk image on the real machine (such as by double clicking on it). Mounting a disk image on the real machine allows you to transfer files to and from the emulated machine. "SetFType.MvIm" makes the file belong to Mini vMac, so that double clicking on the file will mount the disk image within the emulator.

January 28, 2004 I've begun a page with links to software that will run on a Macintosh Plus, and therefore will work within Mini vMac.

January 25, 2004 After looking at web access logs, I've changed this page to try to increase the chance that people, especially those who don't know english, will find what they're looking for.

January 24, 2004 version 2.2.0 released. To celebrate the 20th anniversary of the Macintosh, Mini vMac now has a variation that emulates the original Macintosh 128K. The Macintosh Plus emulation of Mini vMac can run almost all of the oldest Macintosh software, but some of the very earliest systems versions and applications won't work with it. Most of these will now work in the Macintosh 128K emulation.

The choice of emulating the Macintosh 128K or the Macintosh Plus (with 4M of memory) is made at compile time. Additional choices available at compile time are the Macintosh 512K, the Macintosh 512Ke, and the Macintosh Plus with 1M, 2M, or 2.5M of memory.

The Macintosh 128K has a different ROM than the Macintosh Plus, and so needs a different ROM image file to be emulated. Mini vMac expects a ROM image file called 'Mac128K.ROM'. Some programs to acquire the ROM image of the Macintosh Plus, such as CopyROM for vMac, won't work on the Macintosh 128K. So I've made a new program, 'CopyRoms', that works on the Macintosh 128K, 512K, 512Ke, Plus, and maybe some other machines. See the 'Extras' section of the Download area.

A Macintosh 512K has the same ROM as the 128K, and the Macintosh 512Ke has the same ROM as the Macintosh Plus. So you can, for example, get the ROM from the 512K and use it to emulate the 128K. Which is what I've done, since I don't have a Macintosh 128K. What the 128K emulation of Mini vMac is actually emulating is a Macintosh 512K with less memory, which as far as I know is exactly what the 128K is.

Be warned that it is tricky to acquire a ROM image from a Macintosh 128K, because it is difficult to transfer files between it and a modern machine, more difficult even than it is with the Macintosh Plus, because it doesn't support SCSI, and because it doesn't support hfs format disks, only mfs, which isn't supported by modern machines at all. It helps to have another old Macintosh, somewhat less old, which can use 400K mfs floppies, and also has hardware, such as ethernet, which can communicate with more modern machines.

The lack of hfs support also makes it more difficult to uses the emulation, since disk images useable by the Macintosh 128K are not mountable by modern systems. It helps to also have the Macintosh Plus emulation, which can work with the mfs disk images, and also with hfs disk images that can be mounted with modern systems.

The Macintosh 128K emulation by default only supports mounting 2 disk images instead of 6. This is because the replacement disk driver is trying to match the size of a data structure used by the real disk driver, and on the Macintosh 128K this structure is smaller than on the Macintosh Plus. You can at compile time choose to support more disk images, which makes this data structure larger, at some slight decrease in authenticity.

I'd like to thank Philip Cummins for advice on the Macintosh 128K emulation and CopyRoms.

There are a few changes in this version of Mini vMac that also affect the normal Mac Plus emulation. The erase disk command of the Finder will now work on any size disk image, not just the the 400K and 800K sizes supported by the previous version. This makes it easy to create disk images - you can mount any random file of the desired size in Mini vMac, getting the unreadable disk message, and choose to initialize it.

The cursor is no longer hidden when the Mini vMac window is collapsed in OS 9, or minimized in OS X. But this won't solve the problem with expose in Panther reported by Simone Manganelli. A fix will probably have to wait until I have the chance to use Panther myself.

The 'A' command of the Mini vMac control mode will now display, along with the other version information, what machine is being emulated.

Mini vMac will now verify the checksum of the ROM on startup. There is code in the ROM to check this on boot, but since Mini vMac patches the ROM to replace the disk driver, it also patches the ROM to disable the checksum verification. Now Mini vMac does the check itself, before patching the ROM, and gives a warning message if the checksum is incorrect. Since no harm can be done no matter what is in the ROM, this is only a warning, and Mini vMac will keep running.

Besides CopyRoms, there are some other new or updated extras in the Download area.

blanks-0.2.0.zip includes additional blank disk images - a 400K hfs image, and 800K and 1400K mfs images.

There is new version of AutoQuit. It should now be safe to use in other emulators, and on real machines. It will shut down the machine, and won't try to quit the Mini vMac program if it figures out that it isn't running in Mini vMac. It also won't try to quit Mini vMac if the shift key is held down. The previous version only worked back to system 2, the new version should work on all earlier systems. It will work but is not recommended for system 7 or later, or when using MultiFinder, because it doesn't give other running applications the chance to quit properly. The source code for AutoQuit has been moved out of the Mini vMac source code, and is instead included in the AutoQuit archive.

There is a new program, 'DAOpener', that just opens the first Desk Accessory. It is intended to be used with AutoQuit. AutoQuit is used to assist in 'wrapping' an application so that you can use it much as would a native application for your machine. DAOpener allows you to wrap a Desk Accessory within an application, which can then be wrapped using AutoQuit, so that you can use it much as you would a native application.

December 19, 2003 version 2.1.1 released. Has a few bug fixes.

Fixes a bug so that the Time Manager will work, which allows programs such as Macman and later versions of Hypercard to work. In all previous versions, something in the hardware called the 'Timer 2 interrupt' was not emulated, because it would result in crashes on startup of some system versions, such as 6.0.8. This appears to be due to a bug in these system versions when there is no timer task installed. So the fix is to make the replacement disk driver create a timer task like the real disk driver does, and then the Timer 2 interrupt can be emulated. The Timer 2 interrupt is needed for the Time Manager.

Also fixes a bug in the Macintosh versions (since 2.0.0), in checking for interrupts while setting the status register. I had made a mistake tweaking the PowerPC assembly language. One reproducible problem which this fixes was that Lunar Phantom would tend to hang while playing sounds if Limit Speed was on.

This version doesn't begin playing sound until after the other initializations have finished, which should help prevent choppiness of the Mac Plus startup sound (in the Macintosh versions).

December 6, 2003 version 2.1.0 released. Some highlights are sound emulation in the Macintosh version, better time keeping, and visual feedback for control key shortcuts.

At the request of Richard Bannister (and many other people), the sound code from the Macintosh version of vMac has been adapted to Macintosh version of Mini vMac. Getting sound to work properly in Mini vMac on all machines and system versions is a bit of a problem, but the current version seems to work on a number of people's machines (thank you to everyone who tested it). If it doesn't work on your Macintosh, email me, and include details about what machine you are using (including MHz) and what operating system. Sound emulation is always on in the current version. Since it slows down the emulation a little, in a future version I may provide a way to disable it.

Time keeping has been improved in a number of ways. It turns out the TickCount of a Macintosh increments about 60.15 times a second, not 60 like I always had thought. So code that generated the one second interrupt every sixty ticks was incorrect, and in previous Macintosh versions the clock would drift a bit over time. In previous Windows and X versions, it incremented the TickCount 60 times a second, which was slightly inaccurate, but probably made no noticeable difference (so long as sound emulation isn't implemented). In the new version TickCount is incremented about 60.15 times per second for Windows and X. In all versions now, the second interrupt is generated by looking at the clock of the real machine, and the emulated hardware clock is updated from the real machine's clock. A consequence of that last item is that the emulated clock is now correct even after resuming emulation, where previous versions would lose time when paused, such as by switching to another program.

A fix to the emulation of the real time clock makes it possible now to set the current time of the emulated machine (such as by using the control panel or the alarm clock desk accessory). This doesn't change the time of the real machine.

The new version is more careful about trying to maintain the tick interrupt at the correct frequency on average, so that sound will play smoothly. It enforces a minimum number of instruction executed per tick, and if it notices that the emulation is lagging, it will try to sacrifice the smoothness of video. This applies to all versions, even though sound is only implemented in the Macintosh version for now. It generally makes the emulation more useable on slow machines, or operating systems with lousy video performance (such as OS X).

There is now visual feedback for control key shortcuts. Whenever the control key is pressed, information is displayed on top of the emulated screen. All the functions of the emulator can be controlled by control key shortcuts, which are platform independent, and have the advantage of being available in full screen mode when menus are hidden. Only the most basic commands have been left in the menus. Commands like Interrupt and Reset have been removed from the menu, because they are dangerous and not normally used, and so it is better to hide them a little. Instead of platform specific dialogs, the confirmation messages for interrupt and reset are displayed on the emulated screen, and you need to type 'y' or 'n' (while continuing to hold down the control key). This is a bit more convenient than a dialog to operate for advanced users, and other users shouldn't need these commands.

The X version now implements control key shortcuts (in 2.0.0 they were only implemented for Macintosh and Windows). Together with the control key visual feedback, this makes the X version much more useable (since it lacks the menus and dialogs of the other versions). The old function key shortcuts have been removed. The X version now implements a way to find the size of disk image files that hopefully is reasonably portable. This allows programs like Disk First Aid to work. The X version now supports a command line option '-l' that turns on the 'Limit Speed' option, matching the Windows version.

November 6, 2003 version 2.0.0 released, the first public release of the unstable branch. Some highlights are support of locked disk images, keyboard shortcuts to control the emulator, and full screen mode.

Previous version of Mini vMac couldn't use a locked disk image. Now if you lock a disk image, you can mount it in Mini vMac and it shows up as a locked disk. This allows you to use a disk image and be certain the image file won't be modified. You can also share a single locked image file among multiple running copies of the emulator.

Previously Mini vMac always pretended to be using 800k disks, which caused some incompatibilities when the disk images weren't 800k. Now Mini vMac will only pretend to have an 800k disk if the disk image is exactly 800k. If it is exactly 400k, it will pretend to have a single sided disk (in a double sided drive). If it is any other size, it will pretend to have something more like a hard disk, though not exactly. This allows programs such as Disk First Aid to work correctly. Erase disk now works on 400k and 800k disks. [Note: These improvements don't quite work yet in the X version, because I'm not sure of a portable way to get the size of the image file].

The new Mini vMac disk driver also defines a disk icon, for disks that aren't 400k or 800k, which shows up in System 7, rather than a generic document icon as was seen before. And it supports up to 6 disk images instead of 3. (It can support to 32 disk images with a simple change and recompile, with some slight memory and time overhead. I'm not exactly sure what the overhead is, so I set the limit conservatively to 6). And finally the test for whether a disk image is of the old disk copy 4.2 style is hopefully more accurate, allowing some images to mount that wouldn't before.

The Macintosh and Windows versions of the emulator can now be controlled with with control key short cuts. For example, 'Control-O' to open a disk image file. The available shortcuts are displayed in the menus. (The original Mac Plus keyboard didn't have a control key. However, the Mac Plus could cope correctly with a control key if the keyboard had one. So I've provided a way to press the control key of the emulated machine. 'Control-K' presses the emulated control key, and 'Control-K' again releases it. One weird application is to allow using a 68k version of the emulator running nested inside Mini vMac).

Since the control key is now otherwise used, in the Windows version the alt key is used for the emulated command key, and the application key is used for the emulated option key. In addition the F1 key can also be used for the emulated option key, and the F2 key can also be used for the emulated command key.

The Macintosh version now has a Magnify option, which double the size of the emulated screen. The can be easier to read, since modern screens often have smaller pixels than in the original Mac Plus.

Also in the Macintosh version is a Full Screen mode. This mode is entered by typing 'Control-F', and exitted by typing 'Control-F' again. In full screen mode, the menubar and other programs are hidden. Also, you can't click outside of the emulated screen, which is useful for games such as Dark Castle. The Magnify option is turned on automatically if your screen has high enough resolution (1024 pixels across or greater).

The Macintosh version now includes an assembly language version of the core emulation of the 68k processor. I started from the best compiler output, and then started tweaking. This mainly proves the hard way that hand optimization of PowerPC assembly isn't really worth it. However it is about 50% faster than the best compiler version, and further improvements are possible, so I guess I'll keep it. And also most compilers do rather worse than the best. So a more significant benefit is that putting the critical code in assembly language should allow anyone to compile the code and get similar performance. Another issue is that the best compiler seems to optimize almost randomly. Minor cosmetic changes could drastically reduce performance when the compiler changed it's mind about something for no comprehensible reason. This tended to inhibit changing the code at all.

The Windows version now supports a command line switch '/l' that turns on the 'Limit Speed' option, at the request of Stephen Wenzler.

October 2, 2003 version 1.0.0 released. This is 1.0 not because there is any great change from 0.1.7, but because there isn't. It indicates this is now a stable branch, with no further changes except for bug fixes. I might some time fork off an unstable branch, to try out a few ideas, but the 1.0.x branch will continue to be maintained.

This release adds a small kludge to the carbon version for Mac OS X, so that Commmand-Q and Command-H will be passed on to the emulator, rather than intercepted by the operating system. This is accomplished by adding fake menu items. I'd be interested if any one knows of a cleaner way to do this.

The Windows version no longer registers itself in the Windows registry, to avoid the possibility of causing problems for other programs that want to use the '.dsk' and '.rom' extensions. The versions for the X Window System and for Mac OS 9 and earlier are nearly unchanged.

This biggest change is to adopt the build method from Gryphel, which might make it easier to build Mini vMac from the source code. It also supports more development environments. (By the way, people who are interested in Mini vMac as an example of how to write an emulator might also be interested in Gryphel as an illustration of how to implement a graphical user interface. Though it might be more interesting when it is more finished.)

July 17, 2002 version 0.1.7 released. It fixes a bug noticed when a program doing floating point computations gave wrong answers. The problem was more general though. (Specifically, that moving to and from the status register shouldn't set the condition codes like most other move operations. It happened because the CPU emulation of Mini vMac descended from a disassembler, where the distinction doesn't matter.)

This version has a new feature where disk image files named 'disk1.dsk', 'disk2.dsk', and 'disk3.dsk' will, if present in the folder containing Mini vMac, be opened when Mini vMac is launched. In the Mac versions, these files can be aliases to the real image disk image files. Also the 'vMac.ROM' file can now be an alias file in the Mac version.

The big new feature is an 'autoquit' capability. It assists in 'wrapping' an application for the Mac Plus, so that you can use it more as you would an ordinary application for your machine. Actually this was already in Mini vMac, but it wasn't publicly accessible.

The format of the documentation has changed slightly, and the 'About' page now starts with a nice quote.

January 19, 2002 version 0.1.6 released. It has a lower level emulation of the keyboard. This provides better compatibility (allowing debuggers such as Macsbug and TMON to work), and allows all the Mac special characters to be typed in the Windows and X versions.

The 'Share Time' command is gone. It had only applied to the Mac classic version, and was mainly provided in case the default 'hog time' caused problems. Since there hasn't been any problems that I know of, there is no need for the option.

The Mac version now supports 'drag and drop', that is, dragging a disk image file from the Finder onto the Mini vMac window causes the disk image to be opened. (Note that if you switch to the Finder the emulation will pause, and not resume until you switch back to Mini vMac.)

There are now somewhat more detailed instructions for building the Windows version, at the request of Dan FitzGerald.

August 10, 2001 version 0.1.5 released for Macintosh. A small change in 0.1.4 caused problems on an iBook running OS 9.1 (but not on the G3 running OS 8.6 that I developed it on), so I've changed it again. There are no changes in the Windows or X versions.

August 2, 2001 version 0.1.4 released. There is now an initial port for the X Window System. (Thanks to Allan Egleston, for asking when there'd be a port. (And of course thanks to Michael Hanni for the X port of vMac, upon which it's based.)) So far, it's only been used on SuSE Linux 7.0 for PowerPC, and will likely take a bit of fiddling to compile on any particular machine. Please let me know the details of what is needed.

The keyboard support is improved in the Windows version. I had made a couple mistakes in code for the low memory keyboard map. This had broken shift clicking, the key caps desk accessory, and my favorite game, Continuum. Another change in the Windows version is that the Control key is now used to emulate the Command Key, and the Alt key is used to emulate the Option Key.

Mini vMac no longer saves a preference file. It wasn't saving anything too useful, and removing it makes the code a bit simpler. And it is the simplest fix for the problem where a corrupted parameter ram setting could prevent the emulated mac from booting.

(Other than not saving a preference file, the Macintosh version hasn't changed much.)

May 29, 2001 version 0.1.3 released. Fixes MPW build script. Also the default sound level is now set to zero, since Mini vMac doesn't emulate sound. The main effect is that the menu bar will flash when a program calls SysBeep, instead of nothing happening at all.

There is a now an initial Carbon version for Mac OS X, but I wouldn't recommend using it yet. The non Carbon version works faster and better both in OS 9 and in Mac OS X.

March 27, 2001 version 0.1.2 released. Fixes problem where emulated machine would hang if key pressed at startup before any disk was inserted. The same fix (checking the event mask before posting keyboard events) also improves compatibility with some programs.

Mini vMac can now read old style disk image files (which have an 84 bytes header), by using some code from the Windows version of vMac. It also uses some code from Windows vMac for an emulation of SCSI (with no SCSI devices attached), so that system software will think its running on a Mac Plus, instead of a 512ke.

Also new is a bigger and more informative 'about' box, and numerous source code cleanups.

March 14, 2001 version 0.1.1 released. Now runs on Microsoft Windows in addition to Mac OS. Also fixes a problem in posting keyboard events to the emulated machine.

February 28, 2001 version 0.1.0 released, the first public release of Mini vMac.


minivmac.sourceforge.net/oldnews - hosted by SourceForge.net