minivmac.sourceforge.net - feedback
copyright (c) 2012 Paul C. Pratt

Mini vMac

a miniature early Macintosh emulator


gryphel logo, 1K

from the
Gryphel Project

About

What is Mini vMac

Download

current stable version:
minivmac-3.2.3

Start

How to get started with Mini vMac

More

Complete index

Feedback

Bug reports, suggestions, corrections, etc.

Help Mini vMac

Ways you can assist

News : (Twitter)

January 29, 2012

The latest Development source snapshot has an intial merge of Mike Fort's LocalTalk emulation. It is enabled with the build system option "-lt". It is currently implemented with an alternate version of one source file (SCCEMDEV.c), but I expect to eventually merge that with the original. I've already editted it quite a ways in that direction, hopefully not adding too many bugs.

The are currently some limitations. It is only implemented for OS X. It requires running the command "sudo chmod ugo+rw /dev/bpf*" to allow Mini vMac (and everyone else) access to all network traffic. It loses packets some of the time. If running faster than 1x, it loses more packets (which in a way is good, as that should be a clue where to look for the problem). So the "-lt" option causes the default speed to be 1x. The "-lt" option also cause Mini vMac to run in the background by default, because Mini vMac can't be a proper LocalTalk node if it isn't running. And you need to manually turn on AppleTalk in the chooser - I can set the PRAM flags to boot with AppleTalk already on, but it doesn't work properly.

All my testing of Mini vMac with LocalTalk emulation has been done in VMware Fusion 4 (sponsored by Peter Godwin and Andrew Macfarlane), which now supports running OS X as guest.

In other news, I've verified that the version of Mini vMac compiled in PC-BSD 9, with the new "-t fbsd" option, works in FreeBSD 9, and also FreeBSD 7.

I've added Burn and Disinfectant to the software hosted by the Gryphel Project.

January 22, 2012

Mike Fort has implemented LocalTalk networking support in Mini vMac for OS X, available as a beta on his website. This allows, for example, using multiplayer games like NetTrek over a local network. It does not yet allow connecting to the modern internet, but Mike Fort says this could be possible by creating "gateway" software.

Using it requires enabling the "Berkley Packet Filter" to allow Mini vMac to access all packets on the network, which has security implications. If I understand correctly, allowing all software complete access to network traffic is not normally considered desirable. An alternative to giving all software access would be to give Mini vMac elevated privileges, which is more convenient, and in some ways safer, but in other ways more dangerous, in that if Mini vMac gets comprimised, the entire computer is completely comprimised.

I'll be learning more about networking, as I work to merge Mike Fort's code into my version of Mini vMac.

January 20, 2012

Today's Development source snapshot adds advisory locking to the Linux version (and other X Window ports). Previously in the Linux version, Mini vMac could open an already opened disk image, likely corrupting the image. Now Mini vMac will refuse to open a disk image that has been opened by another copy of this version of Mini vMac (and presumably later versions).

In Windows and Mac OS 9 and earlier, the operating system prevents opening the same file twice with write access (at least when opened in the normal way that Mini vMac does). After some early versions which didn't, OS X now also prevents this for Carbon programs (though it still allows read access to a file open for writing).

The Linux operating system does not prevent opening the same file twice with write access. But it does provide advisory locks, to allow programs to say that a file is in use, to any program that pays attention to this. To make things more complicated, there are two different kinds of advisory locks. Mini vMac is now using "fcntl". If other programs use "flock", they may not notice Mini vMac locks. And Mini vMac can't simply set both locks, because one kind of lock can be implemented using the other, or not, depending on operating system version. I don't really understand this all completely, and/or it isn't designed very well.

As part of seeing how this code works in other X Window ports, I tested it in the latest PC-BSD. I've added "-t fbsd" to the build system, for FreeBSD, because I think PC-BSD and FreeBSD are compatible for compiling, though I still need to test this. There is also now "-t fb64" for the 64 bit version.

It also seems to work in Apple's X11 implementation. I've added "-t mx64" for the 64 bit version, in addition to the previous "-t mi11" and "-t mx11".

And it works in Cygwin/X for Microsoft Windows. I've added "-t cygw" to the build system. Cygwin can also be used to compile the regular Microsoft Windows version with "-t wx86 -e cyg".

Related is MinGW, which the build system now also supports with "-t wx86 -e mgw". Actually since Bloodshed Dev-C++ is based on MinGW, "-t wx86 -e dvc -cl" would previously give similar results.

Support for Cygwin and MinGW is due to Hugh Sparks, who got Mini vMac to compile with NetBeans. NetBeans for Windows C development seems to use either MinGW or Cygwin, and can import Makefiles for them fine. At some future time I could look at supporting a more native style project.

Internal to the build system, there is now a concept of target family, which groups together targets with the same CPU. This simplifies supporting operating systems that support many different CPUs.

------

Thanks to Peter Godwin and Andrew Macfarlane for sponsoring a VMware Fusion 4 Upgrade. And thanks to Evan Appelman for sponsoring storage and web hosting for the Gryphel project.

------

I've simplified the Custom Variations service to be one step, instead of donation and request steps. The previous offer is still good for people who have already donated or customers of the earlier Variations service. Just contact me.

I've added Speedometer to the software hosted by the Gryphel Project.

I was about to host NumberCrunch, my favorite tool for quick arithmetic, but I discovered that it is currently available from the author, with a newer and fancier version than what I had. I've added a link to it on the Math Software page.

I also added Hexy by Marc Liyanage to the Programming Tools page. It is an extension for BBEdit.

December 20, 2011

Mini vMac 3.2.3 is now officially released (with no change from the final beta, as usual). The Changes file lists what has changed since Mini vMac 3.1.3.

Today's Development source snapshot is the start of the 3.3 branch. It adapts for the Linux version the technique seen in SDL for dynamically loading the ALSA library, so that Mini vMac will still run, without sound, even if ALSA is not installed. So by default the Linux version is now compiled with sound, matching the Mac and Windows versions.

Other changes in the snapshot: Fixed "-min-extn" build option in the Linux version. Changed order of arguments to the link command when building the Linux version. It turns out there is a conventional order for how libraries should be specified, which I didn't know since I hadn't come a across a linker that cared until Ubuntu 11.10. In all X versions, the "Xext" library is no longer linked in. I don't think it is needed, but haven't removed it before since I'm not sure there isn't some distribution where it is. But now I've decided to remove it to find out. And also in the X version, the results of fwrite and fread on disk images are now checked for errors, which stops compiler warnings in recent Ubuntu.

I've added GIF Converter and ShareDraw to the software hosted by the Gryphel Project.

------

Thanks to Kevin Grabher and Todd Katz for sponsoring storage for the Gryphel project.

------

December 13, 2011

I've added 64-bit Linux binaries for Mini vMac 3.2.3. They are much slower than the 32 bit versions, for lack of assembly language tweaking, but some 64-bit (x86-64) Linux distributions can not by default run the 32 bit binaries. I used 64-bit Ubuntu 10.04 LTS to compile the default variation and the example variations, and tested them in 64-bit Fedora 16, openSUSE 12.1, and Mandriva 2011. Also, the custom variations page now supports x86-64.

As items on my list of links to currently available software for Macintosh Plus are gradually disappearing, I've decided to start hosting some selected software on the Gryphel Project website, in the zipped disk image format that is convenient for use with Mini vMac. I've made new pages for Stuffit Expander and DropStuff that I'd previously hosted, and then added BBEdit Lite and FullWrite.

(For more software in disk image format, ready for use in Mini vMac, E-Maculation has a large collection of shareware and freeware Macintosh games.)

I've also added to the Gryphel Project website a list of alternatives to Mini vMac for running Macintosh 680x0 software. For the goal of the project, the more alternatives the better.

December 6, 2011

The second batch from the Custom Variations beta is available. The beta is now over, and Custom Variations are live.

I've chosen to make Custom Variations a thank you gift for Mini vMac sponsors. Everyone who donates $5 or more is eligible for a Mini vMac 3.2.3 variation. People who have already donated are also eligible. And also, customers of the earlier Variations service are eligible for a custom variation.

An extra benefit of requesting a variation is that it is a vote for what Mini vMac options you think are important, influencing development priorities.

Though Mini vMac 3.2.3 is still in beta, the official release should be close. But if a version 3.2.4 becomes necessary, I'll recompile all variations made previously.

In other news, I've been collaborating with Arbee (AKA R. Belmont), of the MESS emulator project, by making a series of programs similar to CopyRoms, that copy other ROMs found in some Macintosh 680x0 computers, including for the Egret microcontroller (EgretRom), the Power Management Unit of some PowerBooks (PMURom), and Nubus Cards (SlotRom).

Another recent Mini vMac extra is ExportPS, which saves a few steps in the process of printing from Mini vMac.

November 28, 2011

The first batch from the Custom Variations service beta is available.

Lessons learned from the first batch led to a few refinements to the service. The Custom Variations service free beta is open for another week.

In other news, Peter Godwin is working on updating the iPhone port by Jesús A. Álvarez (Zydeco) to use Mini vMac 3.2.3 source code.

November 21, 2011

Todays starts a free beta period of a revised Mini vMac Variations service. The concept now is that I'll make custom made variations, for a small fee, to help support Mini vMac development. Instead of the previous idea of activations codes, you are permitted and encouraged to redistribute your variations. Which I think is more compatible with the goals of the Gryphel project, and open source generally. Previous work for the earlier variations service I think now makes it feasible to build large numbers of custom variations, in batches.

I've updated the Mini vMac 3.2.3 documentation from the list of changes, which gets it closer to the official release. The example variations are more accessible, from the Options page.

In other news, I've resigned from recent paid work to have more time for Mini vMac, and the Gryphel project.

September 20, 2011

Today's Mini vMac 3.2.3 is the first beta of the 3.2.x branch. It has been too long since the last stable version, so I want to put together a new stable version to make more available the improvements since then. The Changes page lists differences from current stable 3.1.3 version.

Since the previous 3.2.2 alpha, the fix that most affects me is allowing command-option drag from a background Finder window in OS X to work again. But there are also a number of other changes.

The new AutoSlow feature is refined a bit. Reading and writing to disk now counts as activity that prevents AutoSlow. Instead of 2 seconds of inactivity before AutoSlow, it is now the longer of either a half second, or 16 seconds worth of instructions executed (which corresponds to about 2 seconds at the default 8x speed).

Misbehaving software running in Mini vMac that makes wild jumps to non memory locations is now less likely to result in a segmentation fault that terminates Mini vMac. It now works about as well as it did in Mini vMac 3.1.3. In the future I'd like to make Mini vMac catch such events properly, but it will take some work to be able to do so without significantly slowing emulation. In the mean while, such events should not cause harm other than terminating Mini vMac, because it is only reading from random memory locations, and not writing.

The "-t xgen" version of Mini vMac for generic x window system now works again. The code for better determination of changed screen area that was added for the AutoSlow feature was previously only implemented for big endian and little endian systems. Now it can also work with out assuming either, by operating on a byte at a time instead of four bytes. It can also now operate on eight bytes at a time, which would be more efficient on 64 bit systems, but this ability isn't used yet.

The build system now supports XCode 4.0.2 (with "-ev 4000").

There is better support in general for different versions of Microsoft Visual Studio. Specifically, support has been added for Visual Studio 2010 (with "-ev 10000"), Visual Studio .NET 2003 (with "-ev 7100"), and Visual Studio .NET 2002 (with "-ev 7000").

There is a new option, "-t wx64", to target for 64 bit Windows. But it is currently slower than the 32 bit version, because that version has some assembly language tweaking.

The copyright message in the about screen of the German version was munged when the about screen was rearranged. This is fixed.

A new build system option "-intl" forces Mini vMac to support international characters in the user interface, even when using the default English. This is useful if the maintainer name needs the extra characters. (It would be nicer for the build system to figure out for itself what character set is needed. But this will do for now.)

In the Windows version of recent 3.2.x, toggling magnify in full screen mode turned off more accurate mouse emulation. This is fixed.

------

Thanks to John Feinberg, John Goodwin, Simone Manganelli, Callum MacKendrick, Gianfranco Cilia, and Fabian Hahn for sponsoring over a year of web hosting for the Gryphel project.

They also helped motivate my taking a week off from other work to work on Mini vMac and get out the new beta. (Not setting aside a big block of time doesn't seem to allow much progress.)

------

In other related news, on Big Mess o' Wires, Steve Chamberlin is documenting his progress on an interesting project to emulate a Macintosh Plus in hardware, using an FPGA.

I hear that Macintosh emulation in the MESS emulator is making major progress. Sometime when I find time, I'll examine its source code closely for ideas.

The PCE emulator is also being actively developed.

Mike Gleason has created "a NEW program in 2011 for 68k Macs", Daleks Forever.

OLD NEWS - Previous release notes


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