Fusion3.2, Ethernet & Genesis

Hopefully, the following instructions will allow your Mac emulation to use an ethernet card which doesn't work properly with Fusion (.i.e. X-Surf), and both the Amiga and the Mac to share the link. It must be noted that Genesis does not do NAT, and what you are doing is creating a whole new subnet on your existing network for the emulated machine. Once you have completed the setup, you will have multiple IP addresses on your Amiga.

I'm not a Mac or network guru, so there may be some minor mistakes in the following setup. However it works for me with a basic LAN consisting of the Amiga & some Win9x/Linux machines, with one of the machines also allowing dial-up access to the Internet.

If you have any comments or questions then feel free to email me


The Basics

In writing this guide I used Fusion 3.2, MacOS 8.1, Genesis (OS3.9), and an X-Surf ethernet card. However, I've also had this running using Genesis (NetConnect) & MacOS 7.5.5.

There are several assumptions made.

  1. Fusion 3.2 is installed & running
  2. Open Transport is already installed on the Mac
  3. Genesis is already configured for your network card

This setup does not work with Fusion 3.1, or MacTCP.

You will also require:

  1. nullsana.lha (nullsana.readme)
  2. MacTCP Ping

In this guide, the Amiga is already configured as 192.168.0.2. By the end, two new addresses will also exist, these being the two new ethernet 'cards' that are created by nullsana. The Amiga will become the gateway to the new network.

Here's a quick description of each IP address you'll come across. If you're going to use different ones, remember to change them all correctly. One mistake and the chances are, nothing will work.

192.168.0.1 - DNS
192.168.0.2 - The Amiga that's running the emulation
192.168.1.1 - The nullsana ethernet interface
192.168.1.2 - The Mac emulation itself

Note: For the two new addresses I found it necessary to use a different subnet. The Amiga is on 192.168.0.x, so I chose 192.168.1.x for the new interfaces. Again, change this to suit your setup, but they MUST be on a different subnet otherwise it won't work.


Installing Nullsana

If you haven't done so already, download nullsana.lha (nullsana.readme)

Extract the archive to RAM: There are different builds of nullsana.device depending upon which processor you have. Select the correct one for your system & copy it to 'devs:networks', remembering to rename it to 'nullsana.device'. Next copy both 'nullsana0.config' and 'nullsana1.config' to 'envarc:sana2' and 'env:sana2'. You don't need to do anything else with these files.


Configuring Genesis

We now need to add a new interface to Genesis, so open GenesisPrefs and select 'interfaces'. Now press 'New'.

Enter the following information into the relevant boxes under the 'Interface' tab.

Name: Mac-Fusion
Comment: Amiga - Fusion ethernet link
IP Address: 192.168.1.1
MTU: 1500

gen.026.gif (6804 bytes)

Don't okay this yet, but go to 'Sana-II' and select 'specify sana-II device'. Now fill in the following

DEVS:Networks/nullsana.device
Unit: 0
ENV:Sana2/nullsana0.config

gen.004.gif (6155 bytes)

Leave all the other options untouched. Okay this and go into 'Options', 'Advanced' and then enable 'Gateway'

gen.025.gif (8735 bytes)

Now save the new settings.

If Genesis is already online, it will ask if you want to load the new configuration. Select 'Go offline and change'. Once done, select the Mac-Fusion interface and press 'Connect'. Assuming all is okay, nullsana will announce itself...

gen.006.gif (2538 bytes)

..and once you click on 'Okay' the interface will go online.

gen.027.gif (5755 bytes)

Before we go any further, we'll check this is working okay. Open a shell and run 'ping -c5 192.168.1.1'. You should see something like this

22:Workbench:> ping -c5 192.168.1.1 
PING 192.168.1.1 (192.168.1.1): 56 data bytes
64 bytes from 192.168.1.1: icmp_seq=0 ttl=255 time=0 ms
64 bytes from 192.168.1.1: icmp_seq=1 ttl=255 time=0 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=255 time=0 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=255 time=1 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=255 time=0 ms
--- 192.168.1.1 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 0/0/1 ms

Note: In OS3.9, ping doesn't seem to be in the path, so you will have to 'cd AmiTCP:bin' if you get the error 'ping: Unknown command'


Configuring Fusion

Fusion now needs to be setup to use nullsana.

Launch Fusion and in the configuration options, select 'Peripherals' and then 'Network'. Set the Ethernet Device Driver to 'nullsana.device' and Unit to '1'. Now save the new configuration & that's it for Fusion.

gen.010.gif (4317 bytes)

Note: It might be an idea to exit & then go back in to ensure that the new settings have taken.


Configuring Mac TCP/IP

Now it's time to configure the Mac itself. Launch the Mac emulation & go into 'Control Panel' and 'TCP/IP'.

If this option is missing, the either Open Transport is not installed, or it has been disabled in the Extensions Manager.

Select 'Connect via Ethernet', then 'Configure Manually' & enter the following details. If ethernet is not an option, then for some reason Fusion failed to open the nullsana device, so exit the emulation & check the configuration. (If you try to use Fusion 3.1, this is where it fails).

Note: The name server should be set to the address of your DNS.

IP Address: 192.168.1.2
Subnet mask: 255.255.255.0
Router Address: 192.168.1.1
Name server addr: 192.168.0.1

gen.017.gif (5963 bytes)

Now download & install MacTCP Ping. Depending on your setup, you may have to use the ICP feature in Fusion to get this archive onto the Mac.

Note: If you have problems with the archive, download the .lha version here. Extract the archive on the Amiga, and use the ICP feature within Fusion to transfer the file to the Mac.

If this all goes okay, you should now see the new executable.

gen.013.gif (1227 bytes)

Launch the program & ping host address 192.168.1.1. If this works, then the link from Fusion to Genesis is okay.

gen.014.gif (8242 bytes)

Next ping host address 192.168.0.2. This should also work.

Now ping any machine on the local network (one which will reply to a ping!). This will fail... Although the Mac has been configured to find it's way out, only the Amiga knows how to reach it, so now the other machines need to be told where it is. How you do this depends on the operating system being used, but the same basic rule applies. The other machines need to be told that 192.168.0.2 is the gateway to the 192.168.1.* network.

Note: The network stack on the Mac is not activated until needed. This means that the Mac will not respond to a ping until its first network access has been made. A single ping from the Mac is enough to wake it up.


Configuring Routing for Win9x

To let Windows know how to find the Mac, open a DOS box & enter

route add 192.168.1.0 mask 255.255.255.0 192.168.0.2

You can now ping the Mac emulation by using

ping -n 5 192.168.1.2

After a reboot, this new routing information will be lost. One way around this is to create a small batch file that runs on every boot.


Configuring Routing for Linux

To let Linux know how to find the Mac

route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.2

You can now ping the Mac emulation by using

ping -c5 192.168.1.2

Note: You may have to be logged on as root to gain access to the 'route' command

The new routing information will be lost on a restart. To avoid this, insert the 'route' command shown above into your start-up. Exactly where this is placed will depend on your particular installation, but would be somewhere like rc.inet1, rc.inet, or rc.local.


It Doesn't Work !

There are some things to check if it doesn't work, but before you go too far, it might be an idea to shutdown the emulation & reboot the Amiga. You shouldn't need to do this, but I did encounter a minor problem with Genesis only partially honouring the new configuration (It failed to enable the Gateway feature). A reboot resolved this.

Check that the Amiga can still ping other machines. There may be a conflict with the new interface, or maybe another configuration option was changed by mistake. If there is nothing obvious, simply delete the new interface from Genesis & restore the 'Gateway' option to its original setting. This should restore the original operation.

Check the Amiga can ping the new interface (192.168.1.1). If it can't, but nullsana announced itself when the interface went online, then check the settings in Genesis. Verify the IP & netmask are correct. Note: nullsana will only announce itself the first time it goes online after a (re)boot.

Don't launch Fusion, but check that other machines can reach the new interface (192.168.1.1). If they can't, then verify the routing information. Either re-enter the route command mentioned earlier, or view the current routing table ('route print' in Win9x, 'route' in Linux). Ensure that the network address, netmask & gateway settings are correct. Depending on your setup, it may be necessary to modify firewall settings to allow access to the new subnet.

If you can ping the new interface (192.168.1.1), but not the emulated Mac (192.168.1.2), then verify the network settings in Fusion, and the TCP/IP settings in the Mac Control Panel. Check that the IP address, netmask & router address are okay. Also remember that the Mac will not put the network stack online until it's first used, so launch 'MacTCP Ping' & ping something.


Some Observations

Having the Mac on a different subnet can cause problems if there are any firewalls running that are not configured to accept the address range. i.e. If the rules only allow 192.168.0.*, then an emulation running on 192.168.1.* will be blocked.

The other problem with using a different subnet is that of routing. The Amiga becomes a gateway, and all other machines on the LAN need to be made aware of this.

If we used NAT, there would be no problems with firewalls or routing because the emulation would be using the same IP address as the Amiga.

On the flip side, because NAT is not used and the Mac has it's own IP address, in theory you can run a server of some description on it.


Last update - 6 March 2001
2001 Ian Armstrong