More Recent News (Index)
April 15, 2005 - permanent link
I've created PAD (Portable Application Description) files for the convenience of software news sites.
April 13, 2005 - permanent link
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 - permanent link
The public beta of version 2.6.1 is available, with 2 minor bug fixes.
March 16, 2005 - permanent link
The first public beta of version 2.6.0 is available.
January 14, 2005 - permanent link
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 - permanent link
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 - permanent link
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 - permanent link
Added a page with MD5 checksums. I've put back in the alternate download page [no longer available], 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 - permanent link
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 - permanent link
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 - permanent link
The first public beta of version 2.5.0 is available.
September 18, 2004 - permanent link
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 - permanent link
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 - permanent link
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 - permanent link
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 - permanent link
The Software for Macintosh Plus listing is much expanded.
July 11, 2004 - permanent link
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 - permanent link
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 - permanent link
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 - permanent link
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 - permanent link
Added a page listing ways you can help the Mini vMac project.
February 8, 2004 - permanent link
Added a To Do page, listing possible future improvements, and some of the issues involved in implementing them.
February 5, 2004 - permanent link
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 - permanent link
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 - permanent link
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 - permanent link
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 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 - permanent link
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 - permanent link
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 - permanent link
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 its 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 - permanent link
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 - permanent link
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 - permanent link
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 - permanent link
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 - permanent link
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 - permanent link
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 - permanent link
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 - permanent link
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 - permanent link
version 0.1.0 released, the first public release of Mini vMac.
no older news (Index)