www.gryphel.com/c/news/nva1 - feedback

Gryphel Project News

Volume 1


More Recent News (Index)

:

January 28, 2008 - permanent link

FDisasm 0.2.0 is the second public development release of the formatting disassembler. The Macintosh SE ROM formatting information is now in a separate disk image, and there is also now formatting information available for the Macintosh 128/512 ROM. (The Macintosh Plus information is still to come.)

FindCode is a new tool to help create some of the formatting information used by FDisasm.

January 18, 2008 - permanent link

Lazyone” has released the third version of his port of Mini vMac to the Nintendo DS.

January 17, 2008 - permanent link

FDisasm is a formatting disassembler for Motorola 680x0 code. It makes it possible to distribute the means to create an annotated disassembly of copyrighted code (such as Macintosh ROM images), without distributing that code or files derived from it.

FDisasm 0.1.0 is an initial public development release, and so not yet of too much interest. For that matter, I don't expect very many people to be interested in it even when it's done.

January 8, 2008 - permanent link

"interrobang" reports (with pictures) that the default Linux Intel version of Mini vMac works on the XO-1 laptop from OLPC. I've made a microPledge project for people to express interest in an improved port, better integrated into the Sugar user interface.

December 30, 2007 - permanent link

John-Robert La Porta just sent me a link to the Dark Castle Forum, about the game Dark Castle and sequels. Dark Castle and Beyond Dark Castle are among the most popular reasons why people use Mini vMac.

December 22, 2007 - permanent link

Today's Development source snapshot has more accurate mouse and keyboard event handling, by using an event queue to communicate between the platform dependent code and the platform independent code. Previously, the platform dependent code would tell the platform independent code every emulated sixtieth of a second the current mouse position and up/down state of the mouse button and keys. If the host computer was very busy, or just slow, then a down and up pair could end up being processed in the same emulated sixtieth, and they would cancel each other out and be lost entirely. Also a mouse button state change might not be processed until well after it happened, and the mouse position might be different by then. (Though if Mini vMac is not getting time every sixtieth of a second, so that these problems can be observed, then sound emulation isn't likely to work either, emitting horrible noises. But it is possible to compile Mini vMac without sound.) And also if the host computer is a device without a keyboard, such as using handwriting recognition, then there might not be separate key down and key up.

The X version now uses mouse motion events when possible instead of XQueryPointer, which is alleged to be inefficient. (Especially if the program is using the display on another computer, so that XQueryPointer requires a round trip over the network. I've never tried this. I don't know if anyone has.)

The Macintosh SE emulation, in full screen mode, will now emulate the ADB protocol for mouse movement, instead of just poking the changes into emulated low memory. This turned up a bug where apparently emulated ADB devices were responding to commands too quickly, before the emulated Mac was ready. I increased the constant that specifies the delay.

December 10, 2007 - permanent link

You can now increase the priority of features that you want added to Mini vMac, and support their development, by pledging bounties. [This has been suspended.] This is done through microPledge, which looks to be the most suitable bounty system I've found on the web. "zorzal" has already pledged towards the Maemo port, and also offers to contribute a Nokia 800.

December 8, 2007 - permanent link

This week's Development source snapshot has two fixes to the 68020 emulation (In distinguishing between long DIV and MUL, and in bit field operations with width of 32.) Not too big a change, but it involved a major project to identify the bugs. The 68020 emulation is probably now accurate enough to emulate a Mac II. But this isn't too useful yet, as Mini vMac doesn't emulate a Mac II, and almost no software that requires a 68020 doesn't also a require color quickdraw.

December 1, 2007 - permanent link

I've decided to try to make development of Mini vMac 3.1 a bit more open than in previous versions. The Development page has source code snapshots of the work in progress. There is no promise that it works correctly. Most people should wait for the first alpha, at least.

The main feature of today's snapshot is a hack to support larger screen sizes, with the build system options '-hres' and '-vres'. For example '-hres 640 -vres 512' makes the emulated screen take a quarter of my lcd monitor, so it uses the entire monitor in full screen magnify mode. Be warned this is very much a hack, involving numerous ROM patches (and somewhat different patches on the Mac Plus, the Mac SE, and the Mac 128/512). It emulates a computer that never existed, so there will definitely be compatibility issues with some software. Also keep in mind that most games that will work on the Mac Plus are designed for 512x342, and don't benefit from a larger screen. (The original vMac supported larger screen sizes also, with related method that doesn't directly work in Mini vMac.)

You can also set the emulated screen smaller than 512x342, which could be useful on portable devices, but that will really cause compatibility issues.

Another change is that the alternate CPU emulation of Mini vMac 3.0.4 is now the main and only emulation. More testing is needed to become confident about it. The PowerPC assembly code version has been revised to match the new emulation. Also the build system now generates this assembly code for the selected development environment, instead of keeping separate copies of this source for the two previously supported environments. This made it possible to also support using assembly code in PowerPC linux, with a new build system target, '-t lppc'. (Which about doubles the speed.) This so far has only been tested in Ubuntu 6.06.

In response to this patch, I've tried to start cleaning up type definitions so as to be better able to work on non 32 bit CPUs.

I've merged in changes from Fabio Concas's Pocket PC port version 2.8.2, and used a suggestion by Yuhong Bao to use _tWinMain instead of WinMain in the Windows version.

The build system now supports using the command line tools of the LCC compiler ('-e lcc -cl'), supports the Sun c compiler ('-e snc'), and supports compiling the Pocket PC version with Microsoft Embedded Visual C++ 4 for ARM and the emulator ('-t wcar' and '-t wc86').

November 15, 2007 - permanent link

Mini vMac 3.0.4 is now officially released (with no change from the final beta, as usual). New since the previous official release, 2.8.2, is support for importing and exporting the clipboard and files, a new build system, localized versions for Dutch and Spanish, and more. Also there are some bug fixes, such as that the PowerPC version now works in Mac OS X 10.5. The Changes file in the documentation gives a more complete list.

November 9, 2007 - permanent link

There is now a Mini vMac 3.0.4 beta, which fixes a bug in the PowerPC Macintosh OS X version that made previous versions incompatible with Leopard. It changes only 10 bytes of code from 3.0.3, so I'm optimistic it won't introduce further problems. The same fix is in the PowerPC version for Macintosh OS 9 and earlier. There is no change in the Intel Macintosh OS X version from 3.0.3, or the versions for other operating systems, other than to change the version number.

I've also updated to 3.0.4 the '-im 1' version of Mini vMac with David Sibley's icons installed.

Besides the icons, David Sibley has now also contributed a t-shirt design for Mini vMac. Buying a T-shirt or other item with this design is one way to help support the maintenance of Mini vMac. [This is no longer available.]

November 7, 2007 - permanent link

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 - permanent link

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 - permanent link

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

October 3, 2007 - permanent link

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 - permanent link

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 - permanent link

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

September 6, 2007 - permanent link

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 Linux version may now be more reliable.

August 23, 2007 - permanent link

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 - permanent link

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 - permanent link

I’ve revised the code for sound in 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 - permanent link

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 - permanent link

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 - permanent link

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 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 - permanent link

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 - permanent link

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 - permanent link

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 - permanent link

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 - permanent link

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 - permanent link

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 - permanent link

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 - permanent link

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

November 12, 2006 - permanent link

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 - permanent link

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 - permanent link

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 - permanent link

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

October 6, 2006 - permanent link

Luc Pauwels has compiled and packaged Mini vMac for Solaris 10 on Sun SPARC.

September 20, 2006 - permanent link

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 - permanent link

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

July 22, 2006 - permanent link

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

June 9, 2006 - permanent link

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 - permanent link

The public beta of version 2.8.2 is available.

March 1, 2006 - permanent link

The public beta of version 2.8.1 is available.

January 31, 2006 - permanent link

The first public beta of version 2.8.0 is available.

January 13, 2006 - permanent link

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

January 12, 2006 - permanent link

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

January 11, 2006 - permanent link

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 - permanent link

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 - permanent link

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 - permanent link

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 - permanent link

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 '-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 its 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 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 - permanent link

The public beta of version 2.7.1 is available.

August 1, 2005 - permanent link

The first public beta of version 2.7.0 is available.

May 25, 2005 - permanent link

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.

:

Older News (Index)


www.gryphel.com/c/news/nva1 - feedback