About
Download
Start
More
Feedback
Help Mini vMac
|
News : (Twitter) April 18, 2012 Mini vMac 3.3.0 is the first alpha of the the 3.3.x branch. The Changes file lists what has been done so far since Mini vMac 3.2.3, with the highlights being Mike Fort's LocalTalk emulation, and work on the X versions. I think it is important to regularly test that the development branch compiles on all supported platforms, and provide the compiled applications for people to try. Instead of only providing source snapshots, as I've been doing for some months. There is a new permutation of the Mini vMac Variations service. It is a hybrid of the Mini vMac 3.1.x Variation service and the Mini vMac 3.2.x custom variations. For Mini vMac 3.3.x, you can request variations that I will compile for you, and try them as long as you like, before purchasing an activation code. This may be feasible now that I have the process of compiling variations pretty well automated. Though Mini vMac 3.3.0 is an alpha version, activation codes purchased now will still be good for all later versions in the 3.3.x branch. Activation codes purchased previously for 3.1.x will still work for 3.3.x variations. (Probably new codes will be required for 3.4.x.) Mike Fort's LocalTalk emulation is included in Variation 182 for OS X of the Example Variations. Some software to try with this variation is hosted on the Macintosh Plus LocalTalk Software page. April 15, 2012 Gil Osher has updated his Mini vMac for Android port to version 3.2.3 of Mini vMac. Compiled variations may be downloaded from the Android Market for Macintosh Plus (free) and Macintosh II ($1.99) emulation. Source code is available on GitHub. March 23, 2012 Today's Development source snapshot includes initial support for color in the X Version (for Mac II emulation), and a build system option for higher magnification factors than 2. The X Version so far only supports 24 bit "TrueColor", and has a few other limitations on format. I doubt that anything besides TrueColor is used on modern machines, and so probably won't support the other options. Other depths such as 15, 16, and 32 bits may be used, and so probably should be supported, if I can find a way to test them. A new build system option "-mf" allows changing magnification from the default 2. For example, "-mf 3" sets the magnification to 3. This may be useful as modern screens get higher resolutions. The option "-mf 1" disables magnification (removing the Control-M command). At least for now, the magnification factor must be an integer. Though it wasn't previously supported by the build system, the code for the OS X version already allowed higher magnification. The Windows version also had such code, though it was slightly broken. These versions were easy, because the APIs have support for magnification. The X API doesn't seem to have such support. Mini vMac previously implemented it's own code for 2x magnification. Today's X version implements a more general magnification algorithm that is also simpler and faster, using a table to process one byte at time. The OS X version now also uses a table to process a byte at time when the color depth is 3 or less. Even though magnification doesn't need to be handled, it is still simpler and faster than the previous methods. The OS X and X versions now take advantage of knowing the left and right of the changed area to reduce the work when translating between the emulated screen format and the host screen format. Recent versions of Mini vMac started finding the left and right of the changed area, to allow autoslow to work better, and to reduce drawing to the real screen. But the translation step hadn't been updated. The Mini vMac build system should now work properly in other emulators such as SheepShaver. It was anonymously reported that the build system would crash emulators. The test for whether the build system was running in Mini vMac (so that the resulting archive may be exported to the host) was not good enough. The same report also mentioned a number of unused parameters warnings when compiling the SCC emulation, which should be fixed now. I've recently tried out Windows 8 Consumer Preview in VMware Fusion for a few minutes, and Mini vMac seemed to work fine. (In the desktop environment of course, not Metro.) I've added a new section to the software hosted by the Gryphel Project, and added EZChat, Net Othello, and Watch. These are software that work with Mike Fort's LocalTalk emulation. I've used EZChat quite a bit in testing the LocalTalk emulation as I merged it into my version of the code. I was able to contact the author of EZChat, and purchased a license for it. March 2, 2012 Today's Development source snapshot includes a couple fixes from Mike Fort that make LocalTalk more reliable. The problem of occasional lost packets seems to be solved. It also includes various maintenance stuff I've done on the LocalTalk emulation, such as splitting the platform specific code out to a separate file, which should make it easier to port to other platforms besides OS X. Actually the same Berkeley Packet Filter code probably should be able to work on various BSDs, and perhaps Linux. For Windows, perhaps the WinPcap library could be used. I also made the LocalTalk emulation check the "Addr Search Mode (SDLC)" flag before discarding packets meant for other machines. This allows programs like "Network Watch" (from Cayman Systems) to work. February 26, 2012 The latest Development source snapshot continues to improve the X version. To match the behavior of the Macintosh and Microsoft Windows versions, it now tries to determine the application path. This is used when looking for the ROM image, and in looking for disk images named disk1.dsk, etc. If the application directory can not be determined, it uses the current directory, as before (which is often, but not always, the application directory). The application path is also used to determine the application name, which is displayed in the window title bar. (If the application name can not be determined, "Mini vMac" is used as before.) Determining the application path is implemented (in somewhat different fashions) for Linux, FreeBSD, NetBSD, Dragonfly BSD, and OpenIndiana. I've not figured out an implementation for OpenBSD and Minix. The build system now supports compiling 64 bit versions for OpenBSD (-t ob64), NetBSD (-t nb64), Dragonfly BSD (-t db64), and OpenIndiana (-t oi64). Mike Fort sent a fix in setting up the ethernet port in the LocalTalk emulation. And I've put in a considerable amount of debug logging code into the SCC emulation (enabled by preprocessor condition), to make it easier to figure out what it is doing. I've added TattleTech and Monitor to the software hosted by the Gryphel Project. February 12, 2012 In today's Development source snapshot, Mike Fort's alternate version of SCCEMDEV.c (for LocalTalk emulation, with build system option "-lt") is merged with original file, using the preprocessor condition "EmLocalTalk" to enable it or not. This is more maintainable. Much work remains. Also in this snapshot, the X version now supports a central ROM folder like the Mac and Windows versions have. If "~/.gryphel/mnvm_rom" exists, Mini vMac will look there for the ROM image. If it isn't there, it will look in the current directory as before. (And the -r command line option will override both.) The X version now also supports saving Activation Codes, like the Mac and Windows versions have. The custom made variation service tried for 3.2.x seemed elegant, and a good fit for funding an open source project, but there does not appear to be demand for it. So for 3.3.x, I'll try going back to the shareware like custom variations service, and try some other tweaks. The ongoing work on the X version involves drifting further from using the most generic standard c library and Xlib API's. Rather than guess what portability problems this causes, I'd prefer to have real data. So I've been setting up various operating systems in VMware Fusion, and getting Mini vMac to compile in them. The build system now supports OpenBSD ("-t obsd"), NetBSD ("-t nbsd"), Dragonfly BSD ("-t dbsd"), OpenIndiana ("-t oind"), and, for a challenge, Minix ("-t minx"). These are all for 32 bit x86. I should try the 64 bit versions later. Adding support for other architectures like PowerPC, for the operating systems that support it (like NetBSD), wouldn't be much work, except that I don't know of any way nearly as convenient as VMware for testing them. This snapshot fixes a bug where the clock is not properly initialized, and is only correct after the first second interrupt.
Also fixed is a more serious bug where in full screen mode, if the emulated screen is too big to fit on the real screen (when autoscroll is available), if the area of the emulated screen that has changed doesn't intersect the visible area of the emulated screen, then an invalid rectangle was used for drawing. I discovered this when trying out Vector Linux 7, which seems to have some extra debugging checks.
I've added Peek-a-Boo and Checksum to the software hosted by the Gryphel Project. January 29, 2012 The latest Development source snapshot has an initial 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 compromised, the entire computer is completely compromised. 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 |