2 |
|
Basilisk II |
3 |
|
A 68k Macintosh emulator |
4 |
|
|
5 |
< |
Copyright (C) 1997-2002 Christian Bauer et al. |
5 |
> |
Copyright (C) 1997-2005 Christian Bauer et al. |
6 |
|
|
7 |
|
|
8 |
|
License |
26 |
|
IRIX 6.5) |
27 |
|
- AmigaOS 3.x |
28 |
|
- Windows NT 4.0 (mostly works under Windows 95/98, too) |
29 |
< |
- Mac OS X 10.1 |
29 |
> |
- Mac OS X 10.1, 10.2, 10.3 (native windowing port has UI bugs with 10.4) |
30 |
|
|
31 |
|
Some features of Basilisk II: |
32 |
|
- Emulates either a Mac Classic (which runs MacOS 0.x thru 7.5) |
285 |
|
application via Alt-Tab, Basilisk II is put in "snooze" mode (i.e. MacOS |
286 |
|
is frozen). |
287 |
|
|
288 |
– |
|
288 |
|
Mac OS X: |
289 |
|
The "video mode" is one of the following: |
290 |
|
win/<width>/<height> |
291 |
|
win/<width>/<height>/<bits per pixel> |
292 |
< |
A refreshed (and buffered) [and very slow] Quartz window. |
294 |
< |
The default <bits> is 32, which is the only depth currently supported. |
292 |
> |
A refreshed (and buffered) Quartz window. |
293 |
|
full/<width>/<height> |
294 |
|
full/<width>/<height>/<bits per pixel> |
295 |
|
A CGDirectDisplay full screen mode. <bits> can currently be 8, 16 or 32. |
296 |
|
If not specified, the default is 32. There is currently no way to switch |
297 |
|
between the Mac OS X and Basilisk II display, but Apple-Option-Escape |
298 |
|
instantly and safely terminates the Basilisk II program. |
301 |
– |
opengl/<width>/<height> |
302 |
– |
opengl/<width>/<height>/<bits per pixel> |
303 |
– |
Currently unimplemented, will be a fast windowed mode. |
304 |
– |
|
299 |
|
|
300 |
|
seriala <serial port description> |
301 |
|
|
362 |
|
|
363 |
|
Linux: |
364 |
|
The "ethernet card description" is the name of an Ethernet interface. |
365 |
< |
There are two approaches to networking with Basilisk II: |
365 |
> |
There are four approaches to networking with Basilisk II: |
366 |
|
|
367 |
|
1. Direct access to an Ethernet card via the "sheep_net" kernel module. |
368 |
|
The "ethernet card description" must be the name of a real Ethernet |
432 |
|
your network administrator about the nets and zones you can use |
433 |
|
(instead of the ones given in the example above). |
434 |
|
|
435 |
+ |
3. Access the network through a "tuntap" interface. |
436 |
+ |
The "ethernet card description" must be set to "tun". |
437 |
+ |
|
438 |
+ |
TUN/TAP provides packet reception and transmission for user |
439 |
+ |
space programs. It can be viewed as a simple Point-to-Point |
440 |
+ |
or Ethernet device, which instead of receiving packets from a |
441 |
+ |
physical media, receives them from user space program and |
442 |
+ |
instead of sending packets via physical media writes them to |
443 |
+ |
the user space program. |
444 |
+ |
|
445 |
+ |
Prerequesties: |
446 |
+ |
- Make sure the "tun" kernel module is loaded |
447 |
+ |
# modprobe tun |
448 |
+ |
- Make sure IP Fordwarding is enabled on your system |
449 |
+ |
# echo 1 >/proc/sys/net/ipv4/ip_forward |
450 |
+ |
|
451 |
+ |
A virtual network configuration script is required and the |
452 |
+ |
default is /usr/local/BasiliskII/tunconfig unless you specify |
453 |
+ |
a different file with the "etherconfig" item. |
454 |
+ |
|
455 |
+ |
This script requires you that "sudo" is properly configured |
456 |
+ |
so that "/sbin/ifconfig" and "/sbin/iptables" can be executed |
457 |
+ |
as root. Otherwise, you can still write a helper script which |
458 |
+ |
invokes your favorite program to enhance a user priviledges. |
459 |
+ |
e.g. in a KDE environment, kdesu can be used as follows: |
460 |
+ |
|
461 |
+ |
#!/bin/sh |
462 |
+ |
exec /usr/bin/kdesu -c /path/to/tunconfig $1 $2 |
463 |
+ |
|
464 |
+ |
4. Access the network through the user mode network stack. |
465 |
+ |
(the code and this documentation come from QEMU) |
466 |
+ |
|
467 |
+ |
By setting the "ethernet card description" to "slirp", |
468 |
+ |
Basilisk II uses a completely user mode network stack (you |
469 |
+ |
don't need root priviledges to use the virtual network). The |
470 |
+ |
virtual network configuration is the following: |
471 |
+ |
|
472 |
+ |
Basilisk II <------> Firewall/DHCP server <-----> Internet |
473 |
+ |
(10.0.2.x) | (10.0.2.2) |
474 |
+ |
| |
475 |
+ |
----> DNS server (10.0.2.3) |
476 |
+ |
| |
477 |
+ |
----> SMB server (10.0.2.4) |
478 |
+ |
|
479 |
+ |
Basilisk II behaves as if it was behind a firewall which |
480 |
+ |
blocks all incoming connections. You can use a DHCP client to |
481 |
+ |
automatically configure the network in Basilisk II. |
482 |
+ |
|
483 |
+ |
In order to check that the user mode network is working, you |
484 |
+ |
can ping the address 10.0.2.2 and verify that you got an |
485 |
+ |
address in the range 10.0.2.x from the Basilisk II virtual |
486 |
+ |
DHCP server. |
487 |
+ |
|
488 |
+ |
Note that ping is not supported reliably to the internet as |
489 |
+ |
it would require root priviledges. It means you can only ping |
490 |
+ |
the local router (10.0.2.2). |
491 |
+ |
|
492 |
+ |
When using the built-in TFTP server, the router is also the |
493 |
+ |
TFTP server. |
494 |
+ |
|
495 |
|
FreeBSD: |
496 |
|
The "ethertap" method described above also works under FreeBSD, but since |
497 |
|
no-one has found the time to write a section for this manual, you're on |
504 |
|
not an Ethernet device, Basilisk II will display a warning message and |
505 |
|
disable Ethernet networking. |
506 |
|
|
507 |
+ |
Mac OS X: |
508 |
+ |
The "slirp" method described above now seems to work. |
509 |
+ |
|
510 |
|
See the next item for an alternative way to do networking with Basilisk II. |
511 |
|
|
512 |
|
udptunnel <"true" or "false"> |
587 |
|
error alerts. All errors will then be reported to stdout. The default |
588 |
|
is "false". |
589 |
|
|
590 |
+ |
keyboardtype <keyboard-id> |
591 |
+ |
|
592 |
+ |
Specifies the keyboard type that BasiliskII should report to the MacOS. |
593 |
+ |
The default is "5" which is a "Apple Extended Keyboard II (ISO)", |
594 |
+ |
but many other numbers are understood by most versions of the MacOS |
595 |
+ |
(e.g. 11 is a "Macintosh Plus Keyboard with keypad", |
596 |
+ |
13 is a "Apple PowerBook Keyboard (ISO)" ) |
597 |
+ |
|
598 |
|
For additional information, consult the source. |
599 |
|
|
600 |
|
|
643 |
|
|
644 |
|
Set this to "true" to ignore illegal memory accesses. The default |
645 |
|
is "false". This feature is only implemented on the following |
646 |
< |
platforms: Linux/x86. |
646 |
> |
platforms: Linux/x86, Linux/ppc, Darwin/ppc. |
647 |
> |
|
648 |
> |
dsp <device name> |
649 |
> |
mixer <device name> |
650 |
> |
|
651 |
> |
Under Linux and FreeBSD, this specifies the devices to be used for sound |
652 |
> |
output and volume control, respectively. The defaults are "/dev/dsp" and |
653 |
> |
"/dev/mixer". |
654 |
|
|
655 |
|
AmigaOS: |
656 |
|
|
749 |
|
false. |
750 |
|
|
751 |
|
|
752 |
+ |
JIT-specific configuration |
753 |
+ |
-------------------------- |
754 |
+ |
|
755 |
+ |
A Just-In-Time (JIT) translation engine is available for x86. This is |
756 |
+ |
aimed at translating 68040 instructions to native equivalent code |
757 |
+ |
sequences, thus providing faster emulation speeds. |
758 |
+ |
|
759 |
+ |
jit <"true" or "false"> |
760 |
+ |
|
761 |
+ |
Set this to "true" to enable the JIT compiler. Default value is |
762 |
+ |
"true" if the JIT compiler was compiled in. Besides, this is |
763 |
+ |
effective only if Basilisk II is configured to emulate a 68040. |
764 |
+ |
|
765 |
+ |
jitfpu <"true" or "false"> |
766 |
+ |
|
767 |
+ |
Set this to "true" to enable translation of floating-point (FPU) |
768 |
+ |
instructions. Default is "true". |
769 |
+ |
|
770 |
+ |
jitcachesize <size> |
771 |
+ |
|
772 |
+ |
Allocate "size" kilobytes of RAM for the translation cache. The |
773 |
+ |
value given will be rounded down to the nearest multiple of a page |
774 |
+ |
size. Minimal value is "2048" (2MB). Default value is "8192" (8MB). |
775 |
+ |
|
776 |
+ |
jitlazyflush <"true" or "false"> |
777 |
+ |
|
778 |
+ |
Set this to "true" to enable lazy invalidation of the translation |
779 |
+ |
cache. This is always recommended as it usually makes the system |
780 |
+ |
more responsive and faster, especially while running MacOS |
781 |
+ |
8.X. Default value is "true". |
782 |
+ |
|
783 |
+ |
jitdebug <"true" or "false"> |
784 |
+ |
|
785 |
+ |
Set this to "true" to enable the JIT debugger. This requires a |
786 |
+ |
build of Basilisk II with the cxmon debugger. Default is "false". |
787 |
+ |
|
788 |
+ |
|
789 |
|
Usage |
790 |
|
----- |
791 |
|
|
886 |
|
Contributions by (in alphabetical order): |
887 |
|
- Orlando Bassotto <future@powercube.mediabit.net>: FreeBSD support |
888 |
|
- Gwenolé Beauchesne <gb@dial.oleane.com>: SPARC assembly optimizations, |
889 |
< |
lots of work on the Unix video code |
889 |
> |
lots of work on the Unix video code, fixes and improvements to the |
890 |
> |
JIT compiler |
891 |
|
- Marc Chabanas <Marc.Chabanas@france.sun.com>: Solaris sound support |
892 |
|
- Marc Hellwig <Marc.Hellwig@uni-mainz.de>: audio output, BeOS video code |
893 |
|
and networking |
897 |
|
- Jürgen Lachmann <juergen_lachmann@t-online.de>: AmigaOS CyberGraphX support |
898 |
|
- Samuel Lander <blair_sp@hotmail.com>: tile-based window refresh code |
899 |
|
- David Lawrence <davidl@jlab.org>: incremental window refresh code |
900 |
+ |
- Bernie Meyer <bmeyer@csse.monash.edu.au>: original UAE-JIT code |
901 |
|
- Nigel Pearson <nigel@ind.tansu.com.au>: Mac OS X port |
902 |
|
- Lauri Pesonen <lpesonen@nic.fi>: Windows NT port |
903 |
|
- Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>: UAE 68k emulation |
904 |
+ |
- Michael Z. Sliczniak <msliczniak@comcast.net>: Mach memory fault recovery |
905 |
|
- and others... |
906 |
|
|
907 |
|
Special thanks to: |