Mini vMac is based upon Richard F. Bannister’s Macintosh port of vMac. See:
(vMac for Macintosh no longer seems to be available here.)
vMac was written by Philip Cummins and others. Please see this credits page:
The vMac home page is:
If that page looks blank with your browser, try
The downloads area for vMac currently seems to be broken.
The port to Microsoft Windows used as a starting point the Windows port of vMac, by Weston Pawlowski, Bill Miller, Ryan Hill, and Mike Voellinger. Additional contributors to the Windows port of vMac include Andre Masella, Lauri Pesonen, Hoshi Takanori, Jose Urena and Darek Michocka. vMac for Windows can be found at the vMac home page.
The port to PocketPC is by Fabio Concas. See:
The port to the X Window System used as a starting point the X port of vMac, by Michael Hanni. Additional contributors to the X port of vMac include Ian Stephenson, Matt, Frederic Roussel, and Sam Strohl. vMac for X can be found at the vMac home page.
Initial sound support in the Linux version using ALSA is by Stephan Kochen. The technique to dynamically load the ALSA library, so that Mini vMac can still run if it is not present, was seen in Simple DirectMedia Layer source code.
The port to the Simple DirectMedia Layer 2.0 API is based upon a port by Manuel Alfayate (based on the existing port to SDL 1.2).
John Perkins made sure Mini vMac can be compiled for IRIX.
The French translation of the program strings is by Pierre Lemieux, with some proofreading assistance by Gaël Coupé. Pierre Lemieux also made many suggestions for the English strings.
The Italian translation of the program strings was originally by Fabio Concas, with later updates by Gianluca Abbiati.
The German translation of the program strings is by Detlef Kahner.
The Dutch translation of the program strings is by Luc Pauwels.
The Spanish translation of the program strings is by Chir.
The Polish translation of the program strings is by Przemysław Buczkowski.
The Brazilian Portuguese translation of the program strings is by Mauricio.
Since I have never done any X programming before, I learned more by looking at other programs, such as Basilisk II, the UAE Amiga Emulator, Bochs, QuakeForge, DooM Legacy, and the FLTK. A few snippets from them are used in Mini vMac.
The core cpu emulation code of vMac was adapted from the UAE Amiga Emulator by Bernd Schmidt.
The FPU (Floating Point Unit) emulation was originally written for Mini vMac by Ross Martin. This code was modified to use SoftFloat, by John Hauser (as found in the Bochs emulator), plus some extensions to SoftFloat by Stanislav Shwartsman (also found in Bochs). Though using SoftFloat is slower than using native floating point, it ensures consistent results on different computers, and makes it easier to compile with different development environments.
Basilisk II source code was a useful reference when implementing video card emulation (used for Macintosh II emulation).
MESS source code (now merged into MAME), had useful hints for emulating the Apple Sound Chip (for Macintosh II emulation).
Improvements to the support of Disk Copy 4.2 format disk images are from Jesús A. Álvarez's ("zydeco") iPhone/iPod Touch port, using information found in the Lisa Emulator Project by Ray A. Arachelian.
LocalTalk emulation was written for Mini vMac by Mike Fort.
Support for emulation of the “Twiggy” Macintosh prototype is by Matěj Hybler.
The alternate “Happy Mac” icons are by Steve Chamberlin.
The code for moving the mouse in Mac OS 9 and earlier is adapted from MoveMouse.c by Dan Sears, which says that it is “Based on code from Jon Wtte, Denis Pelli, Apple, and a timely suggestion from Bo Lindbergh.” It also says that ‘For documentation of the CDM, see Apple Tech Note “HW 01 - ADB (The Untold Story: Space Aliens ate my mouse)”’.
The trick to moving the mouse in Mac OS X without the mouse freezing for a moment was found in “SDL_QuartzWM.m” of the “Simple DirectMedia Layer”, Copyright (C) 1997-2003 Sam Lantinga. See:
Advice from Toni Willen (of WinUAE), obtained by "easymode", was a helpful starting point in figuring out how to not monopolize the processor in the Windows version.
Drag and Drop support in the X version is based on the specification “XDND: Drag-and-Drop Protocol for the X Window System” developed by John Lindal at New Planet Software, and the included examples, one by Paul Sheer. See:
Code for hiding the cursor in the X version is adapted from X11_CreateNullCursor in context.x11.c in quakeforge 0.5.5, copyright Id Software, Inc. Zephaniah E. Hull, and Jeff Teunissen. See:
The jdate function used in the Windows and X version of Mini vMac is from “Webalizer - a web server log analysis program” by Bradford L. Barrett. See:
The GNU General Public License is from the Free Software Foundation. See:
Mini vMac is extensively modified from vMac, so I should take blame for any bugs I’ve introduced.
Next - Download Mini vMac