68k Mini vMac booting SCSI Device images

Relating to a 68k application

eric

Administrator
Staff member
Sep 2, 2021
943
1,542
93
MN
scsi.blue
Edit:
Prebuilt binaries are available for mac/win/lin here: https://github.com/erichelgeson/minivmac/releases/
It is also in the emulator https://infinitemac.org/ as well now!

---
Mini vMac is a great emulator - has been around forever and works very slick. App + ROM + HFS Disk and you're good to go!

The problem was that after the rise of BlueSCSI and "Device" based images (images that include a partition map, scsi driver, etc) vMac couldn't mount these due to the assumption it was a raw hfs or disk copy image and there is no SCSI bus emulated like in PCE or MAME (both of which are more difficult systems to setup compared to vMac)

I had emailed the maintainer years ago about adding the ability to mount these device based images - but unfortunately he has been MIA for the past few years.

Come to a month or so ago when I saw Infinite Mac added ISO support - looking at the patch it was doing something clever - looking at a well known spot in the ISO for a HFS partition, reading some metadata out of it and it was able use a CD, neat! Well with a bit of digging and help some HFS knowledge from @OneGeekArmy I'm able to boot BlueSCSI device images in vMac!
1695155342695.png
Now the tricky part - what to do with this patch? The maintainer is absent - there are a few vMac forks with different patch sets. To distribute you'd need something like his "variations service" since much of vMac's configuration is "compile time" options - meaning you need to recompile the app when making some config changes. Currently none of the forks offer this.

And lastly the latest xcode when building for macOS needs some love - I'm not familiar with xcode development - but I was able to placate it enough to build on xcode 13 (though 14 will be coming soon!)

I will likely open the PR on the Infinite Mac fork - and let it drift through the opensource verse from there.

Also cc @JDW because I know this has been on your want list for quite a while :)
 
Last edited:

JDW

Administrator
Staff member
Founder
Sep 2, 2021
1,582
1,378
113
53
Japan
youtube.com
Thank you for the CC, altering me to this thread!

My own emails to Paul Pratt have never been answered. In light of all the hard work he put into Mini vMac and Gryphel, it is my best guess that Paul must have passed away. And sadly, it would appear that none of his relatives are aware of his amazingly important work online, and therefore they have not made any announcement about his passing.

Not sure what to do with the patch, but it is critically important that the important work on Mini vMac is not left to languish and die. And this is why I am extremely excited to hear of this new development, @eric! I can't wait to test out a new version of the Mini vMac app that allows BlueSCSI drive mounting!

When and where will we be able to download a forked app that allows booting from BlueSCSI disk images? (I am not familiar with the Infinite Mac version.)



In light of this exciting development, I am compelled to speak about a rather significant problem in Mini vMac that needs to be addressed by whomever continues the aforementioned Mini vMac fork(s).

As mentioned in my recent ROM SIMM video, the Apple Silicon versions of Mini vMac are in Beta and have a problematic bug whereby unformatted disk images (such as those created by DD in the MacOS Terminal, or in Doug Brown's new v.2 SIMM Programmer app) are not readable and not even able to be formatted. That's right, those unformatted disk images cannot be initialized in Mini vMac at all. Mini vMac continues to work with formatted disk images just fine. And the Intel editions of Mini vMac do not have this problem at all.

NOTE: I am speaking about regular disk images that otherwise should work with Mini vMac, not BlueSCSI disk images.

I actually spoke at length about this bug with Doug Brown and the CayMac team prior to releasing my video. Doug made some very important discoveries about the bug (all credit must go to Doug for this):

A new option (turned on by default) in the Apple Silicon editions of Mini vMac was added. It is called "non-disk protection". The purpose is unknown but likely to prevent people from corrupting their files by accidentally dragging them onto the app or similar.
A "-ndp" command line argument was added to the app to enable/disable the check. Proper usage is unknown.
But Doug didn't just stop there. He even found a workaround...
Unformatted disk images can be modified to be compatible with the Apple Silicon editions of Mini vMac by changing 3 bytes:
  • 0x400 = 0x42
  • 0x401 = 0x44
  • 0x40F = 0x03
Changing those 3 bytes will cause Mini vMac to complain that the disk is damaged, instead of complain "This is not a Macintosh disk".

Even though Mini vMac complains the disk is damaged, at least it will provide the user the option to initialize the disk.

It was then discussed whether Doug's app should generate unformatted disk images the change the 3 bytes. I recommended against it. Why? Because that wouldn't fix unformatted images created by the DD command in the Terminal, and people might become confused why the images created by Doug's app work but images created by DD don't. So it was decided that the blank disk images generated by Doug Brown's v2 (and newer) SIMM Programmer app are exactly the same as what the DD command creates.

If work proceeds on Mini vMac in the form of "a fork," then it would be best to continue development on the Apple Silicon editions, and it would be nice if this bug (pertaining to unformatted disk images) could be fixed. (Again, it does not affect Intel versions of Mini vMac.)
 

eric

Administrator
Staff member
Sep 2, 2021
943
1,542
93
MN
scsi.blue
When and where will we be able to download a forked app that allows booting from BlueSCSI disk images? (I am not familiar with the Infinite Mac version.)
Infinite Mac is the browser version - https://infinitemac.org/ - if you run for example System 6 it will be vMac running in your browser. They recently added the ability to import and export disks, hence my interest in adding the ability for "drive" images.

Unfortunately there will not be a precompiled download anytime soon unless someone sets up the build environments needed to build all the different versions. And since most options are done when the app is built choosing the default set of options wouldn't meet everyone's need (hence the variation service he ran).
 
  • Like
Reactions: JDW

eric

Administrator
Staff member
Sep 2, 2021
943
1,542
93
MN
scsi.blue
Was chatting with jjuran and he pointed me to this article https://invisibleup.com/articles/30/ (skip to the vmac section) and it catalogs every complexity of the build system, and the author was also working in fixing this as well, though the readme states it's incomplete and may never be complete. Even if you're not techncial just look at the sheer number of things we'd need to work around.
 
Last edited:

JDW

Administrator
Staff member
Founder
Sep 2, 2021
1,582
1,378
113
53
Japan
youtube.com
I'm not a "computer" programmer and I don't know the C language, but I did read ALL the Mini vMac content at the link you provided, @eric. "InvisibleUp" goes into detail about the problems he had on Windoze (the proper spelling, BTW), so I chuckled through that part because I don't do Windoze myself. He then goes into detail about why the code base isn't as good as it could be, and I understand his valid points. But of course, his closing paragraph says this:

Throw some change at Paul C. Pratt, he genuinely deserves it. I hope that this article inspires others to help out with these projects and make them even better.

Of course, the big issue with that is that Paul Pratt, quite obviously, has passed away. I do seriously believe that now. I doubt he moved to the mountains to get away from tech and become another Grizzly Adams. Even if he did do that, he would have left us a note. So basically the main Mini vMac project is stalled due to its creator no longer being around to maintain it.

The upside is that "invisibleUp" has created his own fork, and he adds:

I really really want to like Mini vMac.

It's clear from the existence of his fork and his lengthly write-up that he really does like Mini vMac. I too like it better than any of the other emulators. And that is precisely why I choose Mini vMac in my ROM SIMM video and did a full tutorial on its usage.

I see his FORK on Github is called µvMac, and he says:

THIS CODEBASE IS INCOMPLETE, MAY NEVER BE COMPLETE, AND DOES NOT CURRENTLY COMPILE TO A USABLE PRODUCT.

There's one thing I have to say about GitHub. It's not for non-programmers. For the average person, Github is an intimidating and frustrating place. Most people don't want to view or compile code. Most people only go there because they clicked on a link that is directing them to download something, but even I have trouble finding what and where to download on GitHub. It's built entirely for the programmer's brain, not the brain of the masses. What's funny is that if you spend enough time there reading and clicking, you can eventually find what you need to download. But in today's society, everyone seems to have an old Twitter character limit on their brains so they don't like to read a lot of text. Indeed, there are people who love GitHub and yet who also often complain I write too much! Too funny.

CONCLUSION

Mini vMac still works well on the Mac if you use the INTEL versions, not Apple Silicon. It's great when creating a DSK image for your own Custom ROM SIMM.

I did test the Apple Silicon versions of Mini vMac and they mostly work well; but the bug which prevents you from using unformatted images is somewhat of a deal-breaker, at least for me. The upside, as mentioned in my video, is that you can still use the INTEL versions of Mini vMac (the versions for newer Intel Macs) on Apple Silicon Macs thanks to Rosetta. And they emulate at a very fast speed. Not as fast as the native Apple Silicon versions, but more than fast enough.

I was a big fan of the original vMac back in the 90's and was a bit disappointed when Mini vMac became dominant because it lost a lot of the great features of the original. Some were gained back over time, but not all. Even so, I am thankful to Paul Pratt for having created Mini vMac because without it, life would be hell for us in the vintage Mac community today. Basilisk II and Sheepshaver are not good substitutes for everything (although I do use Basilisk II at times).

I can only hope that hope that "InvisibleUp" can continue his important work on the emulator, mainly because nobody else out there is doing it. I certainly don't have the knowledge to do that important job.

Anyway, thank you, @eric ! I'm eager to see how to mount/boot BlueSCSI images in Mini vMac in the future!
 

lilliputian

Tinkerer
Mar 6, 2022
231
96
28
Los Angeles, California, USA
As long as we're making a wishlist, it would also be interesting to get a more robust floppy controller emulator that could be used to work with a larger variety of floppy disk images, as well as HD20 images, like those used in tashtari's tash20 (or, indeed, real HD20s). Currently anything above 800k gets the 'v' icon and seems to be more of a cludge to allow for non-standard sizes.
 
  • Like
Reactions: JDW

JDW

Administrator
Staff member
Founder
Sep 2, 2021
1,582
1,378
113
53
Japan
youtube.com
...work with a larger variety of floppy disk images, as well as HD20 images, like those used in tashtari's tash20 (or, indeed, real HD20s).

I can use my FloppyEMU's HD20 DSK images just fine in Mini vMac (mounting, booting, etc.), regardless of size, so I don't know what trouble you are having with those. It's just one of the Mini vMac BLANKS that I mounted in Mini vMac and later added System 6 and my own favorite files. The best part is, they can be larger than 20MB.

But I must say that Tash20 is no fun at all because the SD card format is HFS!!! That means modern Macs cannot read the SD card at all. That's a big problem. You see, when we use the FloppyEMU, BlueSCSI, etc., we can pop the SD card into our modern Mac and use Mini vMac (or Basilisk II) to move files to/from it with tremendous ease. No so with Tash20 because it's SD card format doesn't play nice with modern Macs.

And for those of you wondering... No, MacFuse and all that doesn't work for me at all. You can read all about that here. So basically, I have a Tash20 that is sitting unused because I don't see an easy way to add or delete files on its SD card. :cry: It works just fine if you don't mind all the software that comes on the SD card you get when you buy it. But honestly, who doesn't want to customize that? So basically, the Tash20 is more of an issue with the HFS formatted SD card than anything else. Sure, if Mini vMac could by some miracle read that SD card even when MacOS doesn't support it, that would be great. But for now, I'm kind of feeling down when using that otherwise nifty device.

And for those who don't already know about the Tash20, it's not doing anything more than a FloppyEMU. Tash20 is simply a one trick pony that is much more compact. No LCD either. Keeping it super small is part of the appeal versus a much larger floppy EMU. You can plug the Tash20 in the back of a Mac and leave it there. You would never do with that a FloppyEMU. So I really like that concept very much. Fixing the SD card read/write issues on modern Macs is really the only major problem I have with it.
 

lilliputian

Tinkerer
Mar 6, 2022
231
96
28
Los Angeles, California, USA
Regarding formatting the Tash20, it is a little inconvenient, as you have to script it and do things in the terminal? I'm still a bit unclear in how it's supposed to work. If you do have a Mac OS 8/9/X machine that you can connect a USB sd card reader to though, you can at least format it as HFS from there, and then initialize it in the older machine. However, if you have partitioned the card at all, only one of the partitions ever show up on machines that can mount HFS (High Sierra and earlier).

As for Mini vMac, I just meant that if you mount a disk image other than 400 or 800k, vMac creates a virtual disk volume and mounts that on the desktop. This is fine for almost all cases, but the system itself doesn't quite know what to do with them sometimes, as they aren't recognized as a SCSI device or as a true floppy device. For example, if you want to image a volume within vMac in order to create a new disk image of the mounted volume so that you can create a new image that is locked to modification, this works for 400/800k disks, say, but not for other sizes.

This is incredibly niche I know, and for merely copying files over for the purposes of bluescsi and similar, this is probably a bit overkill, but it's something to think about. If I'm not mistaken for instance, it doesn't even mount HD 1.4MB images as true floppies within the emulator. Again, perhaps not a major concern, but one I wanted to mention.
 

JDW

Administrator
Staff member
Founder
Sep 2, 2021
1,582
1,378
113
53
Japan
youtube.com
For people such as myself who considers the Terminal akin to using DOS, I am one to view it as so inconvenient that I am not inclined to use it at all. But such is probably true of most Mac users.

Not sure which MacOS version killed HFS, but my late 2015 5K iMac running MacOS Mojave cannot read the SD card supplied with the Tash20, and my M1 Mac certainly cannot. Perhaps if one used a G4 Cube running Tiger, it might mount on the OS X desktop, but I've not tried it because, honestly, it's fiddly. I can plop the SD cards of my FloppyEMU or BlueSCSI or MacSD straight into my MacOS Mojave Intel Macs and MacOS Monerey M1 Mac just fine. I want to be given that freedom with the Tash20's SD card.

I still don't understand what you mean about images other than 400K and 800K in Mini vMac, so I will send you a PM with my HD20 DSK image so you can try it. It works beautifully for me to boot Mini vMac (even the Mac II version) or just mount on the desktop when booted from another DSK image.
 

eric

Administrator
Staff member
Sep 2, 2021
943
1,542
93
MN
scsi.blue
Well I spent the past few days cleaning up as much as I could and wrapping all the build nuances in scripts so they could be reproducible. It is still no perfect but "good enough" - the remanding issues around app packaging I really don't care to learn or solve.


Please read the notes on that page completely (they are brief) and you should have a running emulator.
 
Oct 15, 2021
168
216
43
Mini vMac is a great emulator - has been around forever and works very slick. App + ROM + HFS Disk and you're good to go!

The problem was that after the rise of BlueSCSI and "Device" based images (images that include a partition map, scsi driver, etc) vMac couldn't mount these due to the assumption it was a raw hfs or disk copy image and there is no SCSI bus emulated like in PCE or MAME (both of which are more difficult systems to setup compared to vMac)

I had emailed the maintainer years ago about adding the ability to mount these device based images - but unfortunately he has been MIA for the past few years.

Come to a month or so ago when I saw Infinite Mac added ISO support - looking at the patch it was doing something clever - looking at a well known spot in the ISO for a HFS partition, reading some metadata out of it and it was able use a CD, neat! Well with a bit of digging and help some HFS knowledge from @OneGeekArmy I'm able to boot BlueSCSI device images in vMac!
Now the tricky part - what to do with this patch? The maintainer is absent - there are a few vMac forks with different patch sets. To distribute you'd need something like his "variations service" since much of vMac's configuration is "compile time" options - meaning you need to recompile the app when making some config changes. Currently none of the forks offer this.

And lastly the latest xcode when building for macOS needs some love - I'm not familiar with xcode development - but I was able to placate it enough to build on xcode 13 (though 14 will be coming soon!)

I will likely open the PR on the Infinite Mac fork - and let it drift through the opensource verse from there.

Also cc @JDW because I know this has been on your want list for quite a while :)

Thank you so much for doing this, Eric! This is a real boon to streamers!
 
  • Like
Reactions: JDW and Eric's Edge

MacOfAllTrades

Tinkerer
Oct 5, 2022
168
183
43
Really awesome work @eric , @OneGeekArmy and all who supported.

I had been using a little 'transfer' disk image that worked on both BasiliskII and mini vMac so that I could switch, and pass files between, emulation environments (i.e. for testing as a true 68000 machine vs Basilisk which I think does 020 and above).
I would use said setup to move stuff between a blueSCSI and a vMac environment (same process as above just the extra step of copying files to the blueSCSI compatible disk image within BasiliskII).

Sounds like your update was sorely needed by many in the community!

Edit to add: I was just messing with infiniteMac last week to test some stuff on custom machines and wondered how they pulled off what they did with dropping iso files etc onto an emulation machine clearly using miniVmac as the back end! Thanks for shedding light into that too.
 
  • Like
Reactions: eric

JDW

Administrator
Staff member
Founder
Sep 2, 2021
1,582
1,378
113
53
Japan
youtube.com
Folks, one of the big improvements @eric made to the Apple Silicon versions of Mini vMac is they now work with unformatted disk images created either by the "dd" command in the OS X Terminal app, or blanks made by Doug Brown's SIMM Programmer app.

Being able to use BlueSCSI images in Mini vMac feels so magical because we have been forced to use Basilisk II for that all these years. It's a very welcome fix. Thank you, Eric!
 

Borgmac

Tinkerer
Dec 21, 2021
68
82
18
71
Richmond, KY
Well I spent the past few days cleaning up as much as I could and wrapping all the build nuances in scripts so they could be reproducible. It is still no perfect but "good enough" - the remanding issues around app packaging I really don't care to learn or solve.


Please read the notes on that page completely (they are brief) and you should have a running emulator.
This is really changing my life! It is now so easy to copy files and folders from one .hda to another.
Thanks you again for that wonderful job, and so many others that you made before (BlueSCSI v2, import files, ...)
You are the 👑
 
  • Like
Reactions: JDW and eric

eric

Administrator
Staff member
Sep 2, 2021
943
1,542
93
MN
scsi.blue
Updated this build with some minor features/fixes:
  • Added flags for Disk Copy 4.2.
  • Fixed Apple Silicon build.
  • Fixed SE build, now SEFDHD.
  • Various other build fixes
 
  • Like
  • Love
Reactions: lilliputian and JDW

akator

New Tinkerer
Aug 25, 2023
15
5
3
Is building this version of Mini vMac the same as the "original?" I've got a pretty good workflow to build Mini vMac as needed for various projects including RPi's and an Orange Pi 5. Are the flags and everything else the same?
 

eric

Administrator
Staff member
Sep 2, 2021
943
1,542
93
MN
scsi.blue

Updated. Supports Universal binaries for mac. TashTalk over UDP. Can participate in #GlobalTalk now with minivmac!