More Recent News (Index)
December 4, 2016 - permanent link
In the latest Mini vMac Development source snapshot, the build system is updated to allow compiling a version emulating a Macintosh Plus on OS X Intel (using C code for the CPU emulation) that is about as fast as in Mini vMac 3.4 (which has hand tuned assembly for CPU emulation), or compiling a version emulating a Macintosh II about as fast, whereas Mini vMac 3.4 is much slower emulating the Macintosh II (since there is no hand tuned assembly for the 68020 CPU). The build system only generates the special compiler options for the specific compiler version I use (and use for the Variations Service), since verifying that they work and work well for all possible versions of gcc would be extremely time consuming. For other compiler versions, with only the more generic options, it will work, but may not be quite as fast.
But most of the work this week was in further refinements of lazy evaluation of the condition code register, and in numerous other tweaks to improve the code generated by the compiler.
November 27, 2016 - permanent link
The latest Mini vMac Development source snapshot continues work on the C language version of CPU emulation.
With further refinement, the code using lazy evaluation of the condition code register is of similar speed on x86 to the code using immediate evaluation. So I have removed the immediate evaluation code, because I think lazy evaluation is a better match for the C language.
November 20, 2016 - permanent link
In the latest Mini vMac Development source snapshot, I've experimented with seeing how much faster I could make the C language version of the CPU emulation if I didn't worry about keeping the assembly language versions compatible.
The first particular change that made the assembly language incompatible was to the disp_table array set up by M68KITAB.c, merging the Address Mode and Argument Kind fields. So instead of the CPU emulation having one switch for decoding addresses, and a second switch for getting or setting, there is a single switch that decodes and gets, or decodes and sets. Making the code less compact, but faster. (That’s the basic idea, there are a few complications.)
The C version is now nearly as fast as the x86 assembly (with a particular compiler and compiler options). Of course the same changes could be made to both assembly language versions making them faster yet, but that would take a very long time. Instead I've removed the assembly language to allow faster progress.
So now Mini vMac is a bit slower on x86-32 and PowerPC, but on the other hand, it should be faster elsewhere. And the Macintosh II emulation should be faster. (The assembly language was for 68000 only.)
Some more software is now hosted by the Gryphel Project instead of only linked to: Address Notebook and eDoc.
Thanks to Donovan Preston for sponsoring over 2 months of web hosting for the Gryphel project.
November 13, 2016 - permanent link
The latest Mini vMac Development source snapshot has a new build option to not grab the keyboard in Full Screen Mode.
Normally, when in Full Screen Mode, Mini vMac will try to “grab” the keyboard, preventing the operating system from intercepting keys. So in the Windows version, the ‘windows’ key can be used as an ‘option’ key, instead of popping up the “Start” menu. And in the OS X version, Command-Tab won't switch away from Mini vMac. This is also implemented in the X version. There is a new build option, -gkf 0”, that disables grabbing the keyboard, allowing the operating system to intercept keys when Mini vMac is in Full Screen Mode. This was requested by a maintainer for “Rocket Launcher”.
Mostly, this week I was contemplating C compilers. On further testing, the GCC 4.7.4 C compiler I compiled last week produces a significantly slower Mini vMac than the much older version I having been using, and I haven't found any way to improve it. One particular problem is that it seems to be more conservative about “-mpreferred-stack-boundary=2”. So with the best compiler tried so far, at best the C language version is about two thirds as fast as the assembly language version, which I don't find satisfactory.
November 6, 2016 - permanent link
In the latest Mini vMac Development source snapshot, the C language version of 680x0 emulation is roughly 10 percent faster, at least with the old GCC compiler I develop with (from an old Xcode). Changing the command line arguments can get a bit faster yet. (The changed arguments are not yet in the Mini vMac build system.)
The motivation was that, last week as I was setting up to make changes to the PowerPC assembly language to match changes previously made to the C language and X86 language version of the 680x0 emulation, I had doubts whether it was good idea. Assembly language programming is fun, but slow. Keeping 3 versions of the 680x0 emulation in sync slows progress by more than a factor of 3. Eventually adding versions for ARM and x86-64 would make things worse. And adding support to the assembly language for 68020 for faster Mac II emulation doesn’t seem feasible.
The assembly language versions are barely twice as fast as the C version in Mini vMac 3.4.1. Perhaps with some further tweaking and using a more recent compiler, the C language version could be made almost as fast, and the assembly language could be removed, allowing faster progress.
Last week’s experiment with lazy flag evaluation wasn’t very successful, but this week an assortment of tweaks has made a significant difference. The main one is to use tables of function pointers rather than switch statements in a number of places. Another was to fiddle with the flag evaluation code. (Also there is now a more careful distinction between 0/1 and boolean variables. Previously Mini vMac wouldn’t work correctly if a compiler didn’t represent "true" as 1. I don’t know if it works now, I haven’t encountered such a compiler, but now it might.)
Also this week, I managed to compile GCC 4.7.4 (the final version implemented in C rather than C++) in OS X, using the GCC compiler in X code 4.1. It doesn’t immediately seem to result in a faster Mini vMac, but it has some additional options that could be useful. More interesting is the possibility of compiling cross-compilers.
A motivation for the assembly language was that anyone can compile Mini vMac with whatever compiler and get nearly identical performance, as the cpu emulation is the same. But with the Variations Service, I consider this less important now. I mostly only need to worry about the performance of the compilers that I use. This is further simplified if I mostly use one compiler, which can be compiled for many different targets, as GCC can. It is still important that Mini vMac can be compiled with any C compiler, the result just may not be as fast.
Some more software is now hosted by the Gryphel Project instead of only linked to: Network Calender and HappyPlusClock. And some software is now hosted by the Gryphel Project where the original web pages have disappeared: Birthdays and Such and EZCalendar.
October 30, 2016 - permanent link
The latest Mini vMac Development source snapshot has an experiment in “lazy evaluation” of the condition code register in the emulation of the 680x0. It can be enabled by setting HaveLazyFlags to 1 in “EM68KGEN.c” So far it doesn’t seem to demonstrate the hoped for benefits, but there is more to try.
Some more software is now hosted by the Gryphel Project instead of only linked to: Big Al Address Book. And some software is now hosted by the Gryphel Project where the original web pages have disappeared: HQXer and PopAddress.
October 23, 2016 - permanent link
The latest Mini vMac Development source snapshot has a couple bug fixes in the x86 assembly language version of the CPU emulation, which makes it work properly with testing code that scrambles the mapping between emulated memory. So the new more careful boundary checking code may be working as intended. Next up is making the same changes to the PowerPC assembly language version of the CPU emulation.
I was traveling again this week, limiting time for Mini vMac. No further significant travel is planned until May.
Some more software is now hosted by the Gryphel Project instead of only linked to: yEnc TZ, MacLHA, and StUU. And some software is now hosted by the Gryphel Project where the original web pages have disappeared: MacUnRAR.
October 16, 2016 - permanent link
The latest Mini vMac Development source snapshot finishes work improving instruction fetching in the x86 assembly language version of the CPU emulation, to match previous work in the C language version.
Then I wondered if this more careful code works as intended, so I wrote some testing code that scrambles the mapping between emulated memory (for RAM and ROM) and real memory, splitting it into two sets of interleaved blocks (in effect toggling one bit of the address). Which exercises all the new boundary checking code. With a number of bug fixes, using the C language implementation of the CPU, it all worked. But with the x86 assembly language version it doesn't, yet. There is more debugging to do.
A problem reported by Tim in the Cocoa version in OS X 10.11 may be fixed, where entering Full Screen mode didn’t work.
Some more software is now hosted by the Gryphel Project instead of only linked to: DoBinHex DropTool, DeBinHex DropTool, DeHQX, MacBinary II+, and Decode Apple File.
October 2, 2016 - permanent link
(No news is expected next week due to travel. Work should resume the week after.)
In the latest Mini vMac Development source snapshot I’m about half way through improving instruction fetching in the x86 assembly language version of the CPU emulation, to match previous work in the C language version (described two weeks ago). This first half has the most time critical parts, and so far there is no noticeable loss of speed, as accuracy and safety is improved. (There is no known corrrectly functioning software where this greater accuracy matters. But I would prefer that Mini vMac never crashes no matter what.)
Some more software is now hosted by the Gryphel Project where the original web pages have disappeared: ZipIt, CPT2SIT, and NoComment.
September 25, 2016 - permanent link
This past week I’ve worked on the website, making it more Mobile-Friendly, all several hundred pages of it.
The simpler part of this was to include on every page the magic
<meta name="viewport" content="width=device-width, initial-scale=1">
which makes mobile web browsers do what they should have done in the first place. But since many web pages aren’t designed for small screens, mobile broswers do some hacks to make such pages usable, and need to be told such hacks aren’t needed.
The bigger task to was remove any remaining multi column layout, getting rid of all the newfangled <table> tags (added to html mid 1990’s). Besides more Mobile-Friendly, it should also work better on the old web browsers that run on a Macintosh Plus, which also has a relatively small screen.
Some more software is now hosted by the Gryphel Project instead of only linked to: ClipStation, Fix Icons, MacTar, and MacGZip. And some software is now hosted by the Gryphel Project where the original web pages have disappeared: Clipboard Master and Coffee Break Lite. This one has a web page, but not with the old Mac version: PopChar Lite.
September 18, 2016 - permanent link
The latest Mini vMac Development source snapshot improves instruction fetching. A badly behaved program can cause Mini vMac to crash, attempting to fetch an emulated instruction from random memory, which memory protection on a modern computer prevents. Since this is only a bad read, I don’t think any further harm is possible besides crashing Mini vMac. Most kinds of memory access emulated by Mini vMac have for a quite while have been designed to always be accurate and safe. But for speed, fetching the next instruction would simply increment a pointer to where the instruction is in real memory, and relative branches would just offset this pointer. Only for certain long branches would Mini vMac work out from scratch where the instruction is in real memory. This is good enough for all known correctly working software. But it is in theory possible to write code so that the pointer to the next instruction gets set to arbitrary memory that the operating system may not allow Mini vMac to access, resulting in a crash. And not just in theory, I have seen this happen in programs running in Mini vMac that were malfunctioning.
This bug is fixed by keeping low and high limits for the instruction pointer, and checking against them as the pointer is changed. When fetching the next instruction, it only needs to check against the high limit. And the increment and check is done after the current instruction is fetched, and so it could be done in parallel with other things. A modern computer can do several things at once as long as they don’t interfere with each other. So it shouldn’t affect speed too much.
Actually, at first it slowed things down a lot. But then I figured out it was because the compiler I use for development messed up with the C inline directive. I figured out how to get the compiler to inline if and only if I tell it to, which gained back all speed lost, and a little bit more. So now the build system defined macros MayNotInline or MayInline are used for every function in Mini vMac.
The ability to turn off USE_POINTER and FastRelativeJump for greater accuracy is removed from the source code, since they are now always accurate and safe.
These changes have only been made in the C implementation of CPU emulation so far. The PowerPC and x86 assembly languages versions are to be fixed next.
The same thing has been done to the assembly language source as previously was done API, sound, and language sources. They have been given unique names and moved to the main source folder. (Which has been renamed from “c_src” to “src” since it is no longer just C.) Also, instead of the build system transforming the PowerPC code for MPW, there are two PowerPC versions, and some scripts (in the new file “trans”) to help keep them in sync. The idea being moved to is that the build system only generates configuration files, and the source folder is the source, basically the same in the source archive and when being compiled.
The motivation for working on the CPU emulation is that I would like to make assembly language versions for ARM and X86-64, but there are issues, such as today’s safe instruction fetching, that would be a lot easier to deal with first, before there are more versions to keep in sysnc.
Some more software is now hosted by the Gryphel Project instead of only linked to: Folder Icon Cleaner, PrefsCleaner, ClearRes, and Alias Crony. And some software is now hosted by the Gryphel Project where the original web pages have disappeared: PowerPCheck, StripPPC, and DoDelete.
September 11, 2016 - permanent link
The latest Mini vMac Development source snapshot has some further work on the SDL 2.0 port. Like other ports, there are now separate magnify states for when in full screen mode and when not. And when first entering full screen mode, the magnify state is set automatically depending on the screen size. A new feature only in the SDL port so far is that using the scroll wheel of the mouse acts as if arrow keys are pressed, giving roughly the expected behavior of a scroll wheel.
MiniUnZp has been updated to add a reasonable ‘SIZE’ resource so that it can operate with non trivial archives. Also it will now translate the Unicode file names written by OS X into the MacRoman character set. MiniUnZp is still extremely preliminary, but I find it useful.
Some more software is now hosted by the Gryphel Project instead of only linked to: QDvorak, Super Comments, Snapshotter, FCB Inspector, and Disk Charmer. And some software is now hosted by the Gryphel Project where the original web pages have disappeared: MediaSizer and AppDisk.
Thanks to Donovan Preston for sponsoring over 3 months of web hosting for the Gryphel project.
In related news, John Sharp has been using Mini vMac to help with Bare-metal Macintosh Programming. One thing to be aware of is that Mini vMac in general does not attempt to be a complete emulation of the Macintosh hardware, but only emulates the parts of it that are used by Macintosh software. Often, but not always, it will give warning when the software attempts something that hasn't been implemented. But even with this limitation, it seems that Mini vMac is of some use for this project.
September 4, 2016 - permanent link
The latest Mini vMac Development source snapshot has some further work on the SDL 2.0 port. Like most other ports, it can now use the ROM image at a central location, looking in a folder named “mnvm_rom” in the folder that SDL_GetPrefPath returns. What SDL_GetPrefPath returns depends on the platform, on OS X it returns “~/Library/Application Support/gryphel/minivmac”. (Not that SDL for OS X really matters for Mini vMac, since a native port already exists. All the work with SDL is to help port Mini vMac to new platforms.)
Also added to the SDL 2.0 port is the option to let SDL handle scaling (for drawing in Magnify Mode), rather than code in Mini vMac. So whichever version works better can be chosen when using the SDL port to make a more native port of Mini vMac for a particular platform.
Recently I had allowed the Macintosh II emulation to boot in color, since it seemed to work now. But now I found that this may not work for color depths of thousands or millions, and so disabled it again in those cases. This only affects booting, soon after the color mode is changed to the value saved on disk.
The Mini vMac build system has been updated to match source shared with the Mini vMac extras. One (obscure) bug fixed by this is where the Export command would not overwrite an existing file (after the Standard Put File dialog asks if you want to replace it).
There is a new version of ExportFl. The URL is updated, and source shared with other Mini vMac extras, fixing one bug, it should now not crash in other emulators such as SheepShaver (though it still won't do anything useful)
On the page about MPW tools for Mini vMac, I've added example scripts for using SetHTC and CatHTC to Copy/Paste the host clipboard.
Some more software is now hosted by the Gryphel Project instead of only linked to: Joliet Volume Access and Alias Dragon. And some software is now hosted by the Gryphel Project where the original web pages have disappeared: Disk Rejuvenator, Better Edit Keys, and KeySwapper.
August 28, 2016 - permanent link
Tara Keeling has created a Nintendo 3DS port of Mini vMac. It was announced in this GBAtemp.net post. There is an article in Mac Rumors about it.
Mini vMac 3.4.1 is now officially released (with no change from the final beta, as usual). The Changes file lists what has changed since Mini vMac 3.3.3. I’ve been using the OS X version extensively the last couple months without problem.
Today’s Mini vMac Development source snapshot has some further work on the SDL 2.0 port. It can optionally use the SDL_RWops for file operations instead of C library routines. It will now ignore command line arguments starting with “-psn”, which on OS X allows it to be launched by double clicking without getting an error message. (Previously it had to be launched with the command line on OS X.) Also in the OS X version, in the “Info.plist” file it uses the key “SDL_FILESYSTEM_BASE_DIR_TYPE” with value “parent”, so that Mini vMac will looking for the ROM image and other files in the folder containing Mini vMac, like in most other ports.
There is a new version of ImportFl, that fixes a bug where where it would not overwrite an existing file (after the Standard Put File dialog asks if you want to replace it). And the URL in the about dialog has been updated. Also, source shared with other Mini vMac extras has been updated, fixing a couple other bugs: ImportFl should now not crash in other emulators such as SheepShaver (though it still won't do anything useful), and it can save to MFS volumes, when the computer supports HFS (previously it had the wrong test, and would support MFS only on computers that didn't support HFS).
For anyone using Macintosh Programmer’s Workshop, I’ve made public some MPW tools for Mini vMac (that I’ve been using for a long time, and have now updated and cleaned up a bit).
Some more software is now hosted by the Gryphel Project instead of only linked to: Text Capture FKEY, DiskTracker, DiskTop, and FaberFinder. And some software is now hosted by the Gryphel Project where the original web pages have disappeared: AppSizer, and Custom Launcher,
August 21, 2016 - permanent link
Today’s Mini vMac Development source snapshot can use a ROM image for Steve Chamberlin’s Mac ROM-inator (which replaces the ROM of a real Macintosh Plus or Macintosh 128K with a megabyte of flash memory, and is a descendant of earlier work by Rob Braun).
Two new options make this possible. “-rsz” allows you to set the size that Mini vMac expects the ROM image to be. (The build system will normally select the correct ROM Size for the Macintosh model you have chosen to emulate.) And the option “-chr 0” prevents Mini vMac from checking the ROM checksum. The first 4 bytes of a Macintosh ROM contain a checksum of the remaining bytes, and there is code in the ROM to check the checksum on boot. Mini vMac patches the ROM image, so it disables this checking code. Mini vMac does the check itself before patching the ROM. It also checks that the 4 byte checksum matches one of the known ROM images for the model you have chosen to emulate. This option disables these checks.
Another new option could be useful with a Mac ROM-inator image. “-drc 0” prevents Mini vMac from disabling code in ROM that checks the ROM checksum on boot. If you are using a ROM image with Mini vMac that is already patched, this check may already be patched out. In that case Mini vMac doesn't need to, and probably shouldn't, to avoid interference in case a different method of patching out is used.
The new option “-drt 0” prevents Mini vMac from disabling code in ROM that tests proper operation of RAM at boot. Mini vMac normally patches the ROM to disable this test, to speed up booting. For greater realism, you can leave this test in.
Some other existing options could also be useful for testing a Mac ROM-inator image with greater realism: “-speed z -ta 2 -sony-sum 1 -sony-tag 1”.
Even if you are not using a Mac ROM-inator image, you can still use one it’s features - replacing the “Happy Mac” icon displayed on boot when a disk is inserted. The new option “-ahm” patches the standard ROM with one of 15 replacements icons by Steve Chamberlin (used with permission).
Some more software is now hosted by the Gryphel Project instead of only linked to: FKeyDragger, FKEYRunApp Maker, Function Key Enabler, FKEY Display, FKEYZoom, Heap Size FKEY, and David's FKEYs. (The original web page for FKeyDragger has disappeared.)
August 14, 2016 - permanent link
Today’s Mini vMac Development source snapshot no longer gives an abnormal report upon booting the Macintosh II emulation with System 7.5.5. Recently I had added reports for unrecognized calls to the video driver, but hadn't tested it with System 7.5.5. The Basilisk II source code indicates what the calls are, but I haven't implemented them yet. I just make the driver return an error quietly, for these specific calls, which is valid to do (i.e. emulating an older display made before these calls were defined).
Also in the video driver, I put some error checking into the recent implementation of indexed SetEntries.
There are some further improvements to the SDL 2.0 port. It now uses it now uses the function SDL_GetBasePath for the directory to look for the ROM image, and the disk1.dsk, disk2.dsk, etc. images. It also now supports the same“-d” and “-r” command line options as the X ports. And there is the option to use SDL_Log for logging, instead of using C standard library file calls.
For convenience when developing Mini vMac, the build system now has an “-all-src 1” option to include all source files. The build system normally selects a subset the source files needed to compile the requested variation. All source files now have unique names, rather than have multiple files with the same name in different folders in the source archive, for choices of API, sound API, and language.
There is now ROM Formatting Information for both versions of the Macintosh 128 ROM and two versions of the Macintosh Plus ROM, which are now listed on a separate page from the main FDisasm page. This is made possible by recently developed techniques for keeping information for similar ROMs in synch.
Mini vMac is reported to work on a Pocket C.H.I.P. (which combines the $9 C.H.I.P computer with a mini touchscreen, keyboard, and batttery).
Jesús A. Álvarez (Zydeco) updated his iOS port of Mini vMac to the 3.4.1 beta (on June 28th).
I’ve added the “Vintage Apple Computers” and the Classic Mac Gaming subreddits to the list of Gryphel Related Forums.
Some more software is now hosted by the Gryphel Project instead of only linked to: ICtoPCexchange, Carpetbag, TTConverter, ViewFont, MacFont, FindFont, and Keyboard Switcher. (The original web page for ViewFont has disappeared.)
August 7, 2016 - permanent link
Today’s Mini vMac Development source snapshot merges in further changes by Matěj Hybler to use an even earlier ROM from the “Twiggy” prototype Macintosh.
The build option is -m Twig43”. (Near the end of the ROM is the string “ROM4.3T 07/04/83”.) Again, this is not an officially supported option, advanced users can compile this version if they want to try it.
And also in today’s version, the SDL 2.0 port now supports importing and exporting the host clipboard (using ClipIn and ClipOut), like most other ports. This includes code for converting between the MacRoman character set and the UTF-8 that SDL expects.
Some more software is now hosted by the Gryphel Project instead of only linked to: Internet Config, and Link GURL Handler. And some software is now hosted by the Gryphel Project where the original web pages have disappeared: Where Is My Master, touch, Clipping Converter, FakeIt!, and ICtoAFS.
Thanks to Thomas Chan for sponsoring the Gryphel project, including web hosting.
July 31, 2016 - permanent link
Today’s Mini vMac Development source snapshot merges in changes by Matěj Hybler to support the ROM from the “Twiggy” Macintosh. This is a Macintosh prototype that has a Twiggy floppy drive (used in the original Lisa computer), instead of the Sony drive that the Macintosh 128K ended up shipping with. Except for the disk driver, the ROMs are nearly identical, except most everything is shifted to somewhat different addresses. Probably because the trap patching technique used in Macintosh System Software tends to depend on exact locations of routines in ROM, no System Software that shipped will run with the Twiggy ROM. There are two known disk images that will work with it, one with an early version of MacWrite and one with an early version of MacPaint. However these image don't currently work as is in the Twiggy Mac emulation. Matěj Hybler figured out a small patch to their boot block code to make them work, that disables some sort of check for the disk being bootable. This might be needed because the emulation is still using a replacement disk driver that is trying to imitate the data structures in memory used by the Sony disk driver, while the Twiggy disk driver has significantly different data structures. (With this patch, these two disk images will also work fine in the Macintosh 128K emulation.)
The build option is -m Twiggy”. (This is not an officially supported option, advanced users can compile this version if they want to try it.)
Formatting information for the Twiggy ROM has been added to the FDisasm page. In the process, I created a bunch of quick and dirty tools to make it easier to synch formatting information for multiple similar ROMs, which could make it possible to do things like provide formatting information for all 3 versions of the Macintosh Plus ROM.
Another change in Today’s snapshot is that in the Macintosh II emulation, when compiled with color (color depth not black and white), the initial value in the Parameter RAM is now set to boot in color. So the initial picture is in color. (Soon after, the color mode is changed to the value saved on disk.) This didn't use to work, which is why it was previously set to boot in black and white. It seems to work now, for reasons not investigated yet (probably one of various fixes to video emulation).
The latest version of FDisasm adds the ability to format jump table offsets as the difference between two symbolic labels (instead of only listing the numeric value). Mac Plus formatting information has been updated to take advantage.
Some more software is now hosted by the Gryphel Project instead of only linked to: Zoomie, MenuSnap, Replace, Text Editor Patches, OtherMenu, SieveAhl, Natural Order, Desktop Valet, Alias Assistant, and Save a BNDL. And some software is now hosted by the Gryphel Project where the original web pages have disappeared: Folder Jumper, QuickScrap, ScrapIt Pro, TypeSaver, TakeABreak, and AliasZoo.
July 10, 2016 - permanent link
In today's Mini vMac Development source snapshot, the video driver in the Macintosh II emulation now implements indexed SetEntries. This is used by the game Crystal Quest (which by the way requires color depth to be 16 colors). Also for non-indexed SetEntries, the driver now returns the no error code. (Apparently this error code is not usually paid attention to.) And also more abnormal reports and debug logging have been put in this code.
In other news, there is a new version of FDisasm that has initial support for FPU instructions, sufficient to correctly disassemble the Floating-Point Arithmetic Package (PACK 4) of the Macintosh II ROM (verified with the MPW Assembler). The disk image with the Mac II formatting information has also been updated.
Some more software is now hosted by the Gryphel Project instead of only linked to: Al's snd INIT, NudgeMouser, Startup Player, DragAnyWindow, NoDesktopCleanup, Shutdown Delay, MenuBall, and PowerClicks. (The original web pages for all except the first two have disappeared.)
June 27, 2016 - permanent link
Today’s Development source snapshot is the start of the 3.5 branch. It might fix graphics problems that have been reported in Linux. I suspect that passing single bit per pixel images to the operating system to draw is not reliable, in at least some versions of Linux, with at least some hardware. So now, for Linux and other X versions, Mini vMac will always pass 32 bit per pixel images to the operating system, even for black and white images. This could potentially be much less efficient, so there is a new compile time option to behave as before for black and white only emulation, “-ci 0”, which you can use if there wasn't any problem in Mini vMac 3.4 and earlier.
In other news, there is a new version of FDisasm that can correctly disassemble the Macintosh II ROM. (MPW Assembler gets back the original binary.) Except that the Floating-Point Arithmetic Package (PACK 4) is not disassembled because FPU instructions are not yet handled. The disk image with the Mac II formatting information has also been updated.
Some more software is now hosted by the Gryphel Project instead of only linked to: FileTyper, Odd Jobs, QuickPop, DarkSide of the Macintosh, BugOff, DeskPicture, and SoundMaster. (The original web pages for BugOff and DeskPicture have disappeared.)
June 19, 2016 - permanent link
Today’s Mini vMac 3.4.1 is the first beta of the 3.4.x branch. The Changes page lists differences from current stable 3.3.3 version. (The only change in the source code from the last Development snapshot is the version number.)
The main reason for moving towards a new stable version now is that improvements to the build system in the 3.4 branch make it work smoother with the Mini vMac Variations service. (See the Mini vMac 3.4 Variations beta service.) The standard variation (with Macintosh Plus emulation) is little changed from the 3.3 branch. The core CPU emulation is identical. The main new feature in 3.4 is build time options for the initial values in Parameter RAM. (These options are supported by the Variations service.) And that sound is improved in the Mac II emulation.
In other news, there is a new version of FDisasm that can correctly disassemble the Macintosh PowerBook 100 ROM. (MPW Assembler gets back the original binary.) Even though the PowerBook 100 has a 68000 CPU, this ROM has some 68020 code. FDisasm can now better handle the full extension word format of addressing mode 6, the absolute long addressing mode, and the Bitfield instructions. The disk images with the PowerBook 100 formatting information has also been updated.
MacLynx has been added to the software hosted by the Gryphel Project. In addition, NCSA Mosaic, that before was only linked to, is now hosted.
June 12, 2016 - permanent link
Today's Mini vMac Development source snapshot has a few more tweaks to sound for Macintosh II emulation. It now clears the FIFO buffer when changing the enable mode to FIFO, or when changing mono/stereo mode when in FIFO mode. In addition, one ReportAbnormal message is now suppressed, about a word sized write to VIA1 that occurs on shutdown in System 6.
MacPerl and Little Smalltalk are added to the software hosted by the Gryphel Project. In addition, some more software is now hosted by the Gryphel Project that before was only linked to: Pocket Forth, UCB Logo, Open Prolog, ProIcon, MacGofer, Caml Light, and MacABC.
June 2, 2016 - permanent link
There is a new Mini vMac Development source snapshot, with much improved sound in the Macintosh II emulation. It is not perfect, but good enough that sound is now enabled by default for Macintosh II in the build system. Variations 5358 and 5359 on the Latest Variations page have this Macintosh II emulation for Intel OS X and Windows. Calls to “ReportAbnormal” are now strewn throughout the code emulating the Apple Sound Chip, so it will tend to give warnings when ever it strays from states that have been tested.
Besides lots of experimentation and debugging, the asc.cpp source file of the MESS emulator was helpful. MESS has lately been merged with MAME, and now under GPL and BSD licenses.
Some more software is now hosted by the Gryphel Project instead of only linked to: MacGambit, Chipmunk BASIC, MacMETH, Yerk, and Mops.
May 26, 2016 - permanent link
Jesús A. Álvarez (Zydeco) has updated his iOS port of Mini vMac. It no longer requires a jailbreak, instead you build it yourself in Xcode (which is free). It works in iOS 7 through iOS 9, is based on Mini vMac 3.4, and has some new features.
Today’s Development source snapshot fixes a bug reported in the Windows version, when compiled with recent development tools. It turns out to have been passing invalid flags to CreateWindowEx, since Mini vMac verion 0.1.1 (the first version to support Windows).
Also there are three additional build system options for initial values in the Parameter RAM: “-mnb” for Menu Blinks, “-kyt” for Keyboard Repeat Threshold, and “-kyr” for Keyboard Repeat Rate.
And also, the SDL 2.0 port now supports drag and drop.
I've added Metronome to the software hosted by the Gryphel Project. In addition a lot more software is now hosted by the Gryphel Project, that before was only linked to. Including almost everthing in Arcade Games, Other Games, Text Editors, Programming Tools, Math, and Astronomy.
Thanks to Chaled Schmidt, Michael Roberts, Matteo Trevisan, Leo Tognella, Bo Winqvist, Michael Roberts, and David OConnor for sponsoring the Gryphel project, including over nine months of web hosting.
January 9, 2016 - permanent link
There is a new Mini vMac Development source snapshot, which adds support for the Simple DirectMedia Layer 2.0 API (the older 1.2 API was previously supported), based upon a port by Manuel Alfayate, after this discussion. The build system option is “-api sd2”.
A new build system option “-dct” selects the initial value of Double Click Time (the maximum time between mouse button clicks which will be treated as a double click) in the Parameter RAM.
June 10, 2015 - permanent link
There is a new Mini vMac Development source snapshot, which updates the build system to support current development tools from Microsoft and Apple. The “-ev” option now supports Apple Xcode 6.3.2, Xcode 6.2, Xcode 4.6.3, and the 6.4 Beta. Though not tested, Xcode versions in between should also work. And for Microsoft, the “-ev” option supports Visual Studio 2013, Visual Studio 2012, and Visual Studio 2015 RC.
There actually doesn’t seem to be much change to the file formats for these IDEs. The only change to Mini vMac build system is to just write different version information. A few more changes were needed to the Mini vMac source code due to compiler and API changes. And also both IDEs now include source code analysis tools, which found a few things to fix, and to change just to avoid warnings.
The Carbon version of Mini vMac can not be compiled with recent Xcode, instead the Cocoa version must be used (with the “-api cco” option).
Older News (Index)