Phase one on a SheepShaver rebuild complete

SheepShaver on Linux

SheepShaver on Linux

Only because people were asking for it.  The first thing I did for Basilisk II was to get it building on Linux, so here we are.  I only tweaked the config process to let me build it with GCC 4.7.2 .

So this will be in the same effort of removing features, and trying to place in my SDL drivers, network and SCSI stuff.

Im starting with SheepShaver v2.2, which is pretty old.  But 700kb compressed is a good starting point.  As you can see it boots MacOS 8.0 which is also good enough for me.

The other questions will be, can this build under Windows with MinGW configured like this, and can it build with OS X.  It looks like all the stuff is there so this may be kind of easy. I hope.

Also SheepShaver does something funky with it’s memory space, it does some direct mapping to the user area.  I’ll have to see if I can disable that, performance be damned (well I turned off JIT as it won’t compile with 4.7 either) so this won’t be fast, but I’m just patching stuff up, not re-implementing the wheel here.

14 thoughts on “Phase one on a SheepShaver rebuild complete

  1. I’ve been a long-time lurker of your blog but I’d just like to say thank you for taking a look at Sheepshaver. The funky memory space issue seems to happen sporadically causing Sheepshaver to randomly crash (but more commonly right after running the executable). Sometimes I can’t get Sheepshaver to run for days and then magically it’ll start running again. Weird!

    • I’m sure it’s the way it maps out memory, Sheep tries to replicate the physical memory layout of a Mac onto the native address space. Which on Linux requires root privileges of all things. The two things I’ve found that seem to be a win, is that as a consequence of me using newer GCC that won’t build the JIT engine, is that you can turn off the memory mapping thing, and it seems a bit better after that.

      The other thing I’ve found from the 5 minutes of looking at the source is that by default it tries to emulate a G4 o all things, while when it runs ‘native’ on a PowerPC device it’ll restrict itself to being a 604. So I changed it to be a 604, and I managed to complete a bare install of MacOS 8.1.. Something that was a major struggle to do otherwise.

      I need to rematch ROMs and syslevels, but I’m going to try for some 604 oldworld machine.

    • MMU would be easier with a new core. I know the WinUAE people have shifted to using Qemu’s PowerPC for their PowerUP stuff, however I don’t think the Qemu MMU is sufficient to run MacOS, otherwise there would already be a build that can run OS 7/8/9 … I can do the SCSI disk stuff like I already have for Sheep. Mouse emulation? I noticed on Linux (I’m only building on Linux right now) is that there is all kinds of ‘fixes’ around the mouse that break in weird places. So I’ve removed all the mouse optimizations and it’s incredibly sluggish but it hasn’t crashed out on me because of the mouse in the last 30 minutes, so that’s nice.

      Probably the best thing to come out of this, will be that it’ll be easier to map AppleTalk shares.

    • World has enough Javascript slow crap and people working on it.
      Let neozeed work in Sheepshaver, he’s doing a great work with it.

    • I’ve got most of my “fixes” running on OS X… I just haven’t kept a running update as the build environment is quite fragmented, unlike what I was doing with Basilisk II… and to be honest, PowerPC Mac emulation needs a lot more help than little old me can do.

      But it has been nice, I was using Internet Explorer 5.1 and actually ran out of memory, instead of crashing every few minutes.

      But there is no mistake JIT or not, Sheep is quite touchy.

  2. Any chance of getting SheepShaver to have a SheepShaver_prefs file option to subtract an offset to the date rather than picking up the current system date? Something like “offsetdate = 7300”, for example, to set the emulated system date back 20 years and allow the software to run correctly in a historic context.

    • I’m pretty sure the system feeds the date on the 1Hz clock, which reformats a UNIX clock into the Apple clock format… so I’d suppose that could be done. Although I suspect it’d be more useful in Basilisk II.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.