top of page
Search
  • jimht3

Setup Mac Software on Sheepshaver for Raspberry Pi

Updated: Jan 8, 2022

This is a followup to the previous post about how to get Mac OS 9 running on your Raspberry Pi. My particular Pi is a Pi400 so some of what I am going to outline here related particularly to that machine and it's keyboard. I am also using the latest version of Twister OS, which is not required, but I recommend it for the best Raspberry Pi experience. If you are using a Raspberry Pi 4b, chances are you are using a USB keyboard of some kind that might have a numeric keypad, so you might make some different choices than I do here. What I'll be covering in this post will be where to find appropriate Mac software, getting Stuffit installed (very necessary since most other Mac software will be available in .sit archive files), and installing a game or two, and what kinds of issues you might encounter with games of a certain type.


Clean Up

The Mac OS installation will leave a number of icons on the desktop that are unnecessary, and you should tidy things up a bit. These icons include: Browse the Internet, Mail, Quicktime Player, Register with Apple, and Sherlock 2. Hold down the Shift key, highlight each file, and then drag them to the Trash. Then, in the Special menu, select Empty Trash...


Stuffit

Using your favorite browser, go to this page. The link you are looking for is for Stuffit-Expander-5-5.iso.zip. This will get us over the first hurdle of getting software easily from the internet in a form that your emulated Mac can handle. Once downloaded, extract the zip file, and then move the .iso file to your /home/pi/SheepShaver folder. Run SheepShaver from the launcher we created in the first tutorial. We are going to temporarily Add... the Stuffit Expander 5.5.iso file in the Volumes tab. Click the Start button to begin the emulator, and once OS 9 finishes booting up, you will see a new volume on the Mac Desktop - Stuffit Expander 5.5. Open that, and you will see the Aladdin Expander 5.5 Installer. Double click that, and perform a default installation. Once this is complete, go to the Special menu, and Shut Down the Mac. Launch SheepShaver again, and in the Volumes tab, highlight the Stuffit Expander 5.5.iso entry in the volume list, and click the Remove button. Press the Start button, and once the Mac finishes booting, you'll see the Stuffit Expander 5.5 volume has been removed from the system. Everything else from here on will get considerably easier to install. You'll notice an icon for Stuffit Expander on your desktop - this is how you will be interacting with the utility to expand the .sit archives you'll encounter as you download Mac software.


Marathon

Now we are going to download and install a game on the Mac, and set it up so that we can play it. From this point on you can leave SheepShaver running, and simply move back and forth between the Mac environment to the Linux environment to download and install software. You will be able to see files downloaded on the Linux side on the Mac side via the virtual volume named Unix on the Mac desktop. So I'm going to say "In Linux" to indicate actions you will be taking within the Raspberry Pi's desktop environment, and "In Mac" to indicate actions you will be taking within the emulated Macintosh environment.


Marathon is a "first-person shooter", very similar in concept to Doom. Using a mouse and keyboard, the player is tasked with navigating the corridors of the doomed colony vessel "Marathon", repairing malfunctioning systems and dispatching members of an alien force who have invaded the ship and are intent on enslaving the colonists. On the way the player will encounter various ship-board artificial intelligence constructs who attempt to aid or interfere with the player's progress. Much of the story and interaction with these AI characters take place via various terminals the player will encounter scattered about the various levels or "maps" of the game. Other terminals will provide power for the player's shield, oxygen, and places for the player to save their progress as they work through the various game environments. There are three different official Marathon games: Marathon, Marathon 2, and Marathon Infinity. Each is a continuation of the story from the previous game. The Marathon series is loosely connected to the later game "Halo", as there are hints and references to the Marathon series within the Halo game.


First, in Linux, you'll want to go to the Marathon Trilogy Release website, and download the game and it's sequels. Bungie released these games for free many years ago, so this is completely legal to do. If you are at all interested in editing play maps for Marathon you should also grab the Forge and Anvil programs on that page as well -- these are the game's editing programs and can be as fun to use as playing the game itself. You should now have a set of .sit files in your Linux Downloads folder - one for each of the three Marathon games, and one each for Forge and Anvil.


In Mac, you can open the Unix volume on the desktop and if you had set up your SheepShaver preferences as I suggested in the first tutorial, you will see the contents of your Linux Downloads folder. Very handy! Now, open the MacHD volume. We're going to create a folder to contain all of our games. Under the File menu, select New Folder. Give it a useful name like "Games". Open the Games folder and place its window side by side with the open Unix volume window. You can resize these windows by interacting with the little corner widget in the lower right side of each window. Holding down the Shift key, select each of the .sit files in the Unix window and drag them over to the Games window. Mac Finder will then copy the files from one location to the other.


At this point you can select all of the .sit files and drag them onto the Stuffit Expander icon on your desktop. Expander will then decompress each archive in turn to its own folder within your Game folder. Note: this will take some time. Congratulations, you've just installed 3 games and 2 utilities. You can go ahead and drag the .sit files to the trash as they are no longer needed, and arrange the various game and utility folders as you like in the Games folder. Neatness counts!


Now the rest of this tutorial you can take as advice. The following is my own solution to some issues you may encounter, but there could be other, better solutions.


Issue 1: If you go into the game preferences to set it up for mouse and keyboard control, you will find that once you are in game, the mouse is wildly uncontrollable. This isn't a fault with the Raspberry Pi, SheepShaver, or Mac OS. This is a common problem with emulators in general on all platforms. The only emulator I have found that does not have this issue is ShapeShifter running on the Amiga. It has an option to disable direct mouse polling which seems to fix the problem. OK, this is broken, so what is the solution? My solution was to forego the mouse and completely control the game with the keyboard. I use the WASD keys for forward, side-step left, back, and side-step right. I use the I,J,K,L keys for up, turn left, down, and turn right. I assign various other keys nearby these two groupings for the various other game options. I am able to play the game quite comfortably using the Pi400 keyboard with the game configured this way. But lets take this a step further.

Back in the first tutorial I had you install a utility called QJoypad. This lets you assign keystrokes to various controls on a gamepad. I use the excellent 8Bitdo gamepad with my Raspberry Pi, and using QJoypad I can assign all of the various Marathon game keys to the controls on the gamepad. The left analog stick become the WASD keys, and the right stick becomes the IJKL keys. Controlling the game now becomes much like running a shooter game on a modern gaming console. Note that you may have to adjust the "flatness" or "deadzone" of your gamepad so that the analog controls become much less sensitive to small movements. You can assign other game keys to the game pad buttons. This helps with control for an older game like this which is expecting much more defined ON/OFF keyboard controls. I use the following script in the Linux terminal to adjust the gamepad before starting up one of these Mac games:


#!/bin/bash
evdev-joystick --evdev /dev/input/by-id/usb-*-event-joystick --axis 0 --deadzone 20000 > /dev/null 2>&1
evdev-joystick --evdev /dev/input/by-id/usb-*-event-joystick --axis 1 --deadzone 20000 > /dev/null 2>&1
evdev-joystick --evdev /dev/input/by-id/usb-*-event-joystick --axis 3 --deadzone 20000 > /dev/null 2>&1
evdev-joystick --evdev /dev/input/by-id/usb-*-event-joystick --axis 4 --deadzone 32700 > /dev/null 2>&1
evdev-joystick --showcal /dev/input/by-id/usb-*-event-joystick
qjoypad &

Note: I make the up/down look axis on the right analog stick MUCH less sensitive so that movement of the stick favors left/right turns, and not so much looking up and down.


Issue 2: If, like me, you have your Raspberry Pi connected to a modern display with a 16x9 display aspect ratio, and you run SheepShaver fullscreen, you've likely discovered that rather than centering the resulting display on your screen, it simply gets stretched and distorted to fit. My particular monitor will also not display some resolutions correctly. The compromise here is to choose a display size of 1280 x 720 in the SheepShaver preferences, and run it in Fullscreen mode. Marathon itself will still only run at 640 x 480, but at least it will be larger on the screen, centered, and not stretched out.


Thanks for reading this, and I hope you found this guide useful.


Postscript Notes: Leave MacOS running in "Millions of colors" mode (the default), and leave the Marathon games running in "Millions of colors" mode (also the default) for the most trouble-free results. The original Marathon game has a faster frame rate when run in 256 color mode than its two sequels but I don't think its worth messing around with. If you run into issues with the game crashing out if you press F1 to go into no-HUD mode, you'll need to boost the RAM allocated to the game. Mac OS 9 had this weird RAM allocation scheme that in retrospect was more trouble than it was worth. It was for "multitasking" applications that had to exist in memory at the same time, and makes no sense in a game. To change the memory allocation, in Mac highlight the game and press Command-I on the keyboard (on the Pi400 this would be Alt-I). On the dialog that pops up, pull the menu down to the Memory section, and change the Preferred size to 16000. This should prevent any further memory issue with the game.


In the Marathon game itself, sometimes the frame rate will become very choppy after you have read a terminal in the game. The fix for this is to simply enter and then exit map mode, and the frame rate will return to normal.


If you experience crashes in SheepShaver when you interact with text input boxes, a fix is to go into the Graphics/Sound tab in the SheepShaver GUI, set the screen size to 640 x 480 and disable QuickDraw Acceleration. I noticed this issue when preparing an upcoming tutorial on using Forge, the Marathon game editor.

762 views0 comments

Recent Posts

See All

Latest FS-UAE on Pi 4

FS-UAE is an Amiga emulator aimed directly at creating a simple interface for playing Amiga games in as straightforward way as possible. It will use WHDLoad images as well as direct ADF images of most

Amiga on the Raspberry Pi Part 5: extra credit

This is a really short post. I came across this terrific article and file download about how to tune up the Workbench 1.3 to be as pretty as the OS versions to follow. Includes lots of custom icons, c

Post: Blog2_Post
bottom of page