Emaculation.com

This is an old revision of the document!


Wireless AppleTalk Networking with SheepShaver & Basilisk II for OS X

(Last updated May 31, 2014. The forum thread is here.)

Introduction

This guide describes networking SheepShaver and Basilisk II for OS X when the host machine is connected to the LAN by Wi-Fi. The emulator gets the same full-fledged ethernet connection that it would have with an ethernet cable, which includes AppleTalk. This method can also be used for networking over the Internet. The requirement is that there must be a single machine connected to the network by ethernet running a bridge-mode OpenVPN server. That computer can also run a networked emulator, but it doesn't need to. All other machines on the network can be connected either by wireless or ethernet.

How It Works

A bridge-mode OpenVPN server can tunnel any ethernet frame over a single port, preferably a UDP port. Therefore, AppleTalk packets, encapsulated into UDP packets, can survive over the IP-only wireless signal. This also implies that all ethernet activity on the network can be extended over the Internet to remote OpenVPN clients.

Obviously the main challenge here is to set up the OpenVPN server. A bridge-mode OpenVPN server is an extremely powerful tool that everyone should know about. It can be run using free software only and allows you to extend all layer-2 LAN communication over wireless and over the Internet. The guide for setting up such a server in a Linux VM is here:

http://www.emaculation.com/doku.php/bridged_openvpn_server_setup

To be clear, the VPN must make use of ethernet bridging. Most VPNs are the layer-3 routed type and will not work.

Connecting the Emulator to the VPN

After connecting to the OpenVPN server, set the emulator to use tap1 as its ethernet interface, then bridge that interface as described in the AppleTalk guide with OpenVPN's tap0 interface instead of your ethernet interface. For example, the script for starting SheepShaver in OS X 10.8 and up could look like:

sudo /*path to SheepShaver folder*/SheepShaver.app/Contents/MacOS/SheepShaver & sleep 10
sudo ifconfig bridge1 create
sudo ifconfig bridge1 addm tap0
sudo ifconfig bridge1 addm tap1
sudo ifconfig bridge1 up

Remote clients over the Internet must use the private IP addresses for the OpenVPN server side's LAN, not addresses for their own LAN, in the TCP/IP or MacTCP control panels. Note that bridge1 is used instead of bridge0 because OS X 10.9 Mavericks sets up a “Thunderbolt Bridge” interface that uses bridge0. You can use bridge1 without having a bridge0 interface.

In order to run the Linux VM and a networked emulator in the host OS simultaneously, the host must connect to the OpenVPN server as a client, and connect the emulator using the method above. The regular method of bridging the ethernet interface with the emulator's TAP interface cannot be used because a single ethernet interface cannot be a member of a bridge interface in the host and a bridge interface in the VM simultaneously. The second bridge to go up may not work properly.

You can run multiple networked emulated machines simultaneously on the same computer. For example, you could run multiple .sheepvm files and/or Basilisk II. To do this, use tap2, tap3, etc., instead of tap1 for every additional emulated machine, all added to the same bridge interface. You can simply use a separate script like the one above for each emulated machine, with “tap1” changed accordingly. Don't forget that each emulated machine must be given a unique IP address.

Regarding Basilisk II, I've done all this networking using only the “official” Basilisk II builds for OS X, not the “AppleTalk-specific” Basilisk II builds, which do not stem from the official source code repository.

Multiplayer Games in SheepShaver and Basilisk II

Besides AppleTalk services such as file sharing and printing discussed in our other guides, multiplayer network games can be played conveniently, and over the Internet, using this method, not requiring an ethernet cable. It seems that SheepShaver and Basilisk II are seldom thought of as multiplayer game platforms, the way DOSBox is, but now that can change!

In Mac OS 8 and 9, file sharing may need to be off for games to work, which is unfortunate since it's an easy way to tell whether AppleTalk is working. Just turn it off after you've confirmed that you can see the other AppleTalking machines. In System 7, it's a good idea to install Open Transport 1.1.2 (Net Install, direct link), found at this mirror of the Apple Support Area.

This is a list of games that I've successfully played using the above method:

  • A-10 Cuba!
    • SheepShaver
    • SheepShaver, AppleTalk and TCP/IP
    • SheepShaver, AppleTalk and UDP/IP
  • F/A-18 Hornet 2.0
    • Basilisk II, doesn't run in SheepShaver
  • F/A-18 Hornet 3.0
    • SheepShaver
  • Jazz Jackrabbit 2
    • SheepShaver, needs the 1.2.6 or 1.2.8 update
    • SheepShaver
    • Basilisk II, increase memory to 1000K, no sound
  • Spectre
    • Basilisk II
  • Spectre VR
    • Basilisk II
  • Super Maze Wars
    • Basilisk II
  • Super Tetris
    • Basilisk II
  • Total Annihilation
    • SheepShaver, AppleTalk and TCP/IP
  • WarCraft: Orcs & Humans
    • SheepShaver, put the AppleTalk ADSP Tool, included with the game, into the Extensions folder

This varied list suggests that any game that's playable in the emulator should be playable by network.

wireless_appletalk_ss_bii_osx.1401587039.txt.gz · Last modified: 2014/05/31 18:43