• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

Emulators and APFS

BadGoldEagle

Well-known member
Hi folks,

I was about to install Mojave on my 2016 rMB but I got cold feet at the last second. 

As you may or may not know, Mojave is the first macOS release to require an APFS formatted boot partition. Disk Utility's supposed to convert your existing HFS+ partition to APFS during the install. But once that's done you can't really go back to HFS+...

So, I'll test most of the Apple-related emulators (vMac, Basilisk II, Sheepshaver, Previous, LisaEM, Virtual II, GSport, Sara). Some of them probably won't work... I don't even know if all of them work correctly on 10.12 or 10.13 to be honest. I'll be making a list of what works and what doesn't. I won't be testing MS-DOS emulators etc because why lose time on inferior operating systems...? JK of course...

I haven't upgraded yet but I know for a fact that Sheepshaver's and Basilisk's disk sharing feature Unix won't work anymore. I'll probably have to create a new partition with HFS+ just for that. Thankfully Apple hasn't removed HFS+ write support, yet! 

Before I take the plunge though, have any of you tested any of the above emulators on an APFS Mac and noticed anything wrong with them?

 

CC_333

Well-known member
Mojave requires APFS? That's going to break a lot of older software I think (particularly if it's hard coded to expect HFS+).

But, Progress!

As for trying stuff out, I don't know, as I'm not planning on upgrading form Sierra (with its highly experimental APFS implementation) for a looong time.

Of course, I said that about Mavericks, but to be honest, if it weren't for the fact that some of the software I want to run requires Yosemite or newer*, I'd still be there.

*Actually, 99% of my software can still work fine under Mavericks if I use slightly older versions of some of it (compared to the latest Mavericks-compatible versions, very little has changed; in fact, from what I can tell, the only real advantage of the latest versions is improved compatibility with Yosemite+).

Oh, and HFS+ turned 20 this year! I think I knew that, but I forgot...

c

 

LaPorta

Well-known member
I can confirm that UNIX feature works just fine in SheepShaver with my 2016 MacBook Pro with Mojave. No difference.

Anyone know why I might be having Basilisk be slow as anything, though? I have severe stuttering of the mouse pointer, sounds, etc.

 
Last edited by a moderator:

Gorgonops

Moderator
Staff member
Anyone know why I might be having Basilisk be slow as anything, though?
Do you have JiT enabled?

(Although, honestly, if you're running on anything remotely like a modern machine it should go at at least several times the speed of a Quadra without JiT...)

 

LaPorta

Well-known member
Yes, one would think that is the case. Not sure what the issue is. The cursor is choppy, and if I say, play Marathon, it's also choppy. This is with no other programs running...on a 2016 MBP. One would think it would run fine. Does it too on my 2010 iMac.

 

CC_333

Well-known member
...running on anything remotely like a modern machine it should go at at least several times the speed of a Quadra without JiT...)
Indeed. I once ran it on a PC using a 1.7 GHz Intel Celeron (Willamette-based I think) and 96MB of DDR-266 RAM (later 352MB), and even then, it performed quite decently (it was faster than my 400 MHz iMac G3 in some ways). Really goes to show that Basilisk II can run fairly well on pretty much anything made since 2001 or so (at least in my experience).

Don't know why your cursor is so choppy. I'm suspecting maybe there's a problem between Basilisk II and Mojave. Can you downgrade back to High Sierra (perhaps install it to an external drive) and see if the cursor choppiness goes away?

c

 

Gorgonops

Moderator
Staff member
Per the broader question, I can't think of any reason why APFS would break compatibility with Macintosh or any other emulators. Just like any other program they're going to be making filecalls through the application-level API, not by somehow directly manipulating the file system. (That's the whole job of the filesystem layer in the OS X kernel.) All the listed emulators keep their filesystems inside of disk images, not direct mounts on the underlying device. (Okay, *technically* it's possible on a UNIX system to mount a partition or even a whole disk on BasiliskII or Sheepshaver since such devices are abstracted at the OS level as "files", but you can't mount the *same* partition the parent OS is already mounting.) Unless Apple broke some part of the file-level API (or the emulators are incompatible with some other aspect of the new OS) the change to APFS shouldn't make any difference.

(Note that the "UNIX" filesystem connector in Basilisk also just makes filesystem calls, it cares not what the OS mounted filesystem is. On Linux it doesn't care if your home directory is ext2/ext4, XFS, whatever, it has no idea what those are.)
 

The cursor is choppy
In the settings is it possible you have the screen refresh set to a really low FPS setting?

 
Last edited by a moderator:

BadGoldEagle

Well-known member
I can confirm that UNIX feature works just fine in SheepShaver with my 2016 MacBook Pro with Mojave. No difference.
Huh? Could APFS have been in the works since 1999? 

In all seriousness though, that’s great to hear! So the drive must be entirely emulated then?

How about ressource forks though? I haven’t encountered any issues with the disk images I used with mini vMac on my iPhone running iOS 11...

 

BadGoldEagle

Well-known member
Per the broader question, I can't think of any reason why APFS would break compatibility with Macintosh or any other emulators. Just like any other program they're going to be making filecalls through the application-level API, not by somehow directly manipulating the file system
I thought the program created some sort of networked disk but kept the file system intact. And since APFS can’t possibly be read by OS9, I thought this would give issues.

 

Gorgonops

Moderator
Staff member
From the BasiliskII technical manual:

6.10. External file system
--------------------------

Basilisk II also provides a method for accessing files and direcories on the
host OS from the MacOS side by means of an "external" file system
(henceforth called "ExtFS"). The ExtFS is built upon the File System Manager
1.2 interface that is built into MacOS 7.6 (and later) and available as a
system extension for earlier MacOS versions. Unlike other parts of Basilisk
II, extfs.cpp requires POSIX file I/O and this is not going to change any
time soon, so if you are porting Basilisk II to a system without POSIX file
functions, you should emulate them.


IE, the only requirement is a POSIX-compatible file API, which OS X has.

(This is actually why BasiliskII didn't support the extfs function on Windows... literally decades ago. Microsoft added POSIX extensions to the NT-based versions of Windows by the early 'aughts.)

 

nglevin

Well-known member
It's been awhile since I've used Basilisk, and I'd rather try QEMU for classic Mac stuff since SheepShaver/BasiliskII's creators moved on and well, QEMU's very much alive and kicking.

This does remind me of a problem I've seen in High Sierra and Mojave, mostly with software that leans heavily on old QuickDraw calls via Carbon. One big change in Mojave is that OS X windows are backed by GPU layers as they were on the iPhone, instead of drawn via Core Graphics.

It's possible that your poor framerates in Mojave are caused by Carbon code, long since past its sell by date. I vaguely recall Sheepshaver having similar problems with QuickDraw but I think newer versions either migrated to newer drawing routines or patched around that.

 
Top