跳转到主要内容

Macintosh模拟器心得(三)

BasiliskII与SheepShaver篇

BasiliskII是68k Mac模拟器,能运行的系统与Mini vMac有一定的交集,比如说都能运行7.x系统,但Basilisk II不支持System 6,而Mini vMac不支持System 7.6。相对于Mini vMac, BasiliskII有硬盘和光驱的模拟,但对于软驱模拟来说却显得不是那么灵活。BasiliskII虽然能运行Mac OS 8.0/8.1,但由于当时Mac OS 8主要是为Power Macintosh设计的,体验起来自然不如SheepShaver模拟的好,当然SheepShaver也支持7.5.3-7.6.1版本的系统。一般,SheepShaver更多地还是用来模拟Mac OS 8和9。

BasiliskII和SheepShaver都是由E-Maculation社区支持的。现在,这两个模拟器的使用方法也非常相近,连配置程序都几乎一样。BasiliskII和SheepShaver对Windows的兼容良好,但这两款模拟器的代码已有十来年未曾有实质的更新,在Linux和Mac OS X系统中运行可能存在一些问题,尤其是SheepShaver。

准备材料

特别感谢E-Maculation社区,以下模拟器程序几乎全部出自此社区。

对于Windows用户来说,以下链接是必要的

更多下载信息,参阅:SheepShaver下载页面以及BasiliskII下载页面

 

对于Linux用户来说,可以参考此页面下载编译好的二进制,但更建议自行编译

 

对于Mac OS X用户来说, 这些链接是必要的

更多下载信息,另可参阅SheepShaver下载页面 ,SheepShaver 64位下载页面以及BasiliskII下载页面

配置Basilisk II和SheepShaver

打开SheepShave GUI或BasiliskII GUI,这就是图形化配置程序,也可以参考后面部分的介绍来手动编辑配置文件。

各版本的配置程序均大同小异,SheepShaver和BasiliskII的配置程序也几乎一样,部分选项有些差异。在配置程序中默认可以看到Volumes、 Graphics/Sound、Keyboard/Mouse、Serial、Network、Memory/Misc,JIT Compiler这几个标签,分别可以设置磁盘、图形与声音、鼠标键盘、串口、网络、内存及杂项、JIT编译器。一般最常用到的设置就是磁盘、图形与声音、内存及杂项。

在Volumes标签中,最上面的部分便是模拟器的硬盘列表。点击Add按钮可以添加现有磁盘,Create按钮可以创建空白磁盘,选中列表里的磁盘后点Remove可以删除。Windows版的配置程序,打开文件或保存文件的对话框可能需要多加摸索才能掌握。创建磁盘镜像也可以用HFV Explorer和bximage来创建,使用配置程序创建的磁盘最大2G,使用bximage可以创建更大的镜像,但不要大于4GB否则可能无法识别。

Boot from标签则是设置启动顺序, 默认的“Any”是从列表中第一个可以启动的磁盘启动,还可以设置为从CDROM启动。(注意,如果是SheepShaver且使用的ROM是New World ROM,则设置CDROM启动也不会从CDROM启动。) CD-ROM Drive框可以在下拉菜单中选择系统光驱,或者在输入框中输入光盘镜像(ISO和toast格式)的地址。而“Enable ‘My Computer’ icon on your Mac desktop(external file system)”可以将本机的磁盘映射到模拟器系统的桌面,方便文件交换。

在将Mac OS文件拷贝到主机时,要注意data fork和resource fork,一般一个应用程序或是字体,资源都会存放在resource fork中,如果只拷贝了data fork中的数据那么很可能这个文件会不可用。所以在将Mac OS中的一些资源拷贝出来时,可以用MacBinary或者Stuffit将文件的data fork和resource fork数据编码/压缩到一个文件中,这样交换文件时便不会丢失resource fork的数据。

在Graphics/Sound标签中,Video Type选项可以切换Window(窗口)和Fullscreen(全屏)模式,Window Refresh Rate设置的是窗口模式的刷新频率(建议设置在60Hz),Width和Height设置的是水平和垂直分辨率。SheepShaver的这个标签里还有“QuickDraw Acceleration”选项来启用QuickDraw API的加速,但BasiliskII中没有这个选项。如果选了Disable Sound Output,那会关闭声音模拟。

Keyboard/Mouse标签可以设置使用自定义键盘映射文件,也可以改变鼠标滚轮的行为。 例如默认的“Cursor Up/Down”是模拟上下键,默认翻三行,也可以设置成是按PageUp和PageDown键。一般默认即可。

Serial标签可以映射本机COM口设备,一般很少用到。

Network标签可以设置联网方式, Basilisk II Router方式在SheepShaver中可以设置但并不起作用。Basilisk II Slirp方式与前一种类似,都是NAT类型的,但此种方式联网在Windows和Linux系统下极不稳定,在模拟器中打开浏览器上网时极有可能崩溃。如果Windows客户端安装了Ethernet驱动,列表中会显示出可以桥接的网络适配器,但此驱动不兼容64位系统,而且现有的64位版本由于没有数字签名,只能在Windows的驱动测试模式下使用。一般来说,不要指望在模拟器中上网,一是不稳定,二是老Mac OS的浏览器太老,不兼容现代的网页标准,甚至一些https网站也因证书问题无法访问。

Memory/Misc标签。SheepShaver和BasiliskII的这个标签有一些区别,在于BasiliskII可以选择 Mac Model ID,也就是机型差别。Mac Iici机型用于模拟7.x系统,不能启动Mac OS 8.1,而Quadra 900机型主要用于模拟System 7.5到8.1系统。 而其他的设置都是一样的,比如MacOS RAM Size可以设置模拟器内存大小,单位是MB。ROM File栏中可以输入或选择ROM文件的地址。 一般还会选上“Ignore Illegal Memory Access”选项来允许Mac OS程序的一些非法内存访问请求。关于SheepShaver的ROM, 在提供的Windows版本中有“Mac_OS_ROM”和“Mac_OS_ROM_oldworld”两种ROM。主要在于前者(New world ROM)只能启动Mac OS 8.5和更新版本的Mac OS,要模拟7.5.3到8.1系统,需要使用“Mac_OS_ROM_oldworld”。一般来说用oldworld ROM可能更稳定一些。具体可参阅Wikipedia中关于New World ROMOld World ROM的文章。

JIT标签在SheepShaver和BasiliskII中有较大的区别, 一般这个标签使用默认设置即可。启用JIT编译器可以允许模拟器缓存一些编译好的指令以加快模拟速度,类似于Java的JIT。但有些Mac OS的程序或游戏在启用JIT后会表现得不正常,遇到这样的程序,再关闭这个选项也不迟。

设置完毕之后,点击Start按钮来启动模拟器。

Windows版本如果遇到这个提示,可以将模拟器目录下的CD-ROM Driver目录中的cdenable.sys文件复制到系统盘Windows\System32\Drivers目录下, 64位系统不能使用这个驱动,但复制到Windows\SysWOW64\driversm目录下可以避免每次开启模拟器都显示的这个提示。

一般用Mac OS的安装光盘来启动模拟器。

如果创建的是空镜像,Mac OS启动后会提示初始化镜像。如果是Basilisk II,要在这个磁盘中安装系统就要选择Mac OS标准格式,虽然Mac OS 8.1及以后的系统可以选择Mac OS扩展格式,但这种格式只在SheepShaver中可作为启动磁盘。完成之后运行安装器再安装系统既可。 安装完系统在模拟器中关机,再运行设置程序,将启动磁盘从CD-ROM改成Any即可体验Mac OS系统了。

如果安装的系统是Mac OS 8.x和Mac OS 9,系统第一次运行时会弹出设置助理来帮助用户设置Internet和文件共享。 但在模拟器中,设置助理在配置共享时会卡死整个模拟器,因此退出设置助理即可。

手动编辑配置文件

如果没法运行配置文件编辑器,或者想修改一些配置程序中不能修改的设置,就可以手动编辑配置文件。在Mac OS X中,如果系统无法运行32位应用程序,那配置文件编辑器将无法运行。这时候如果运行64位的SheepShaver,会发现SheepShaver图标在Dock上出现后马上消失。这是因为没有配置文件,没有指定ROM的位置,模拟器无法运行。 在第一次运行SheepShaver时,程序会自动创建配置文件,在Windows系统中,配置文件就在程序目录下,叫做sheepshaver_prefs,没有扩展名,而Linux和Mac OS X下配置文件都是在用户目录下,名称为 .sheepshaver_prefs,编辑此文件即可。在Mac OS X中,将Finder设置成显示隐藏文件即可看到此文件,使用系统的文本编辑工具就能够编辑。BasiliskII的配置文件也大同小异,文件名称是basiliskii_prefs。

配置文件的格式较为简单,每一行第一个词就是一项设置。

例如第一行disk E:\Sheepshaver\xxxxx.dsk就定义了一个磁盘, 第二行的cdrom也是同理。在配置文件中可以在第一个disk后面另起一行,再以disk xxxx的格式来定义另一个磁盘。也可以用floppy项目来定义软盘,如果存在可启动的软盘,只会从软盘启动。

screen项目,格式screen win/800/600指的是窗口模式,分辨率为800x600,如果改为screen dga/0/0会以最大分辨率启动,但并不推荐如此设置,要设置全屏建议加上分辨率,例如screen dga/1920/1080。

而rom E:\SheepShaver\Mac_OS_ROM_oldworld一行表示的是ROM的位置,可以自行定义。在Mac OS X中需要定义了有效的ROM之后才能启动模拟器。

bootdrive 0 定义的是从第几个驱动器启动,默认即可。

bootdriver -62,与之前的参数很像,但这是设置从光驱还是硬盘启动。 当后面的只为-62时表示从光驱启动,改为0就是从硬盘启动(相当于配置程序中的“Any”选项) 。

还有noclipconversion false选项,设置是否同步剪贴板。如果发现Windows版本SheepShaver运行中文Mac OS 9时, 文本编辑器输入的文字是乱码时,可以将false改为true以停止剪贴板的同步。

enableextfs true控制的是将“我的电脑”或者是*nix系统的“/”映射到模拟器。相应的项目, extdrives CDEFGHIJKLMNOPQRSTUVWXYZ 指的是映射哪些磁盘,如果是Linux或Mac OS X,默认看到的是extdrives /,将根分区映射到模拟器。

这些设置是较常用的,其他一些设置,高级用户看到其项目名就能得出其功能。

 

常见问题

  1. 安装镜像是无法启动的,如何安装?

有时候下载到的磁盘镜像无法启动,例如System 7.5和7.6有些磁盘镜像或ISO并没有包含系统文件夹,无法启动。这时候,最简单的方法是在安装好的系统中,把系统安装到另一个硬盘上,比如创建两个硬盘镜像,第一个镜像先安装好Mac OS 8.x或者9.0系统,再启动到系统,运行安装程序。如果系统版本不符,可以找同版本系统的英文版先安装。其次,还可以使用DiskTools软盘启动模拟器,这类软盘带有基本系统和磁盘工具,启动后运行安装器,目前有System 7的DiskTools盘和Mac OS 8.5的DiskTools盘。(注意System 7的磁盘只能在BasiliskII中以Mac Iici机型启动,Mac OS 8.5的磁盘只支持SheepShaver。)再编辑配置文件,添加floppy项目。例如在BasiliskII中安装中文版7.5.3,从WinWorldPC下载的CH006-0125.iso是不可启动的磁盘。 设置机型为Mac Iici 以启动System 7的DiskTools磁盘。系统启动完毕后初始化硬盘,运行光驱中的系统安装器。由于是英文系统不带中文字体和必要的扩展,安装器的界面是乱码。点击红笔圈出来的按钮切换磁盘,直到切换到硬盘,再点击标粗的按钮即可安装。

安装完毕后编辑配置文件,删除floppy项目即可。再次启动模拟器就进入了系统。

 

2. SheepShaver运行Mac OS 8.5/8.6和Mac OS 9时没有声音

如果是Mac OS 8.5/8.6,在newworld rom下安装完系统发现没有声音。可以在系统安装盘 – Apple Extra – 声音控制板文件夹中打开声音控制板,在“提示音”下拉菜单中点击“声音出口”,再选择“内建”即可。

如果是9.0.4系统,运行在Oldworld ROM时同样可能没有声音。解决方法是,在苹果菜单中找到控制板,打开“功能管理程序”,把功能扩展列表中的“Apple Audio Extension”前面的勾去掉,再重启系统即可。

 

3. 在模拟器中上网

如果用的是SheepShaver或新版本的BasiliskII,在配置文件Network标签中,把Ethernet interface改为BasiliskII Slirp即可。如果是Mac OS X版本,可能配置程序的Ethernet Interface选项是个输入框,输入slirp即可。

但Slirp方式在Windows和Linux版本中极不稳定,使用IE和Netscape时极易让整个模拟器崩溃。要浏览网页建议使用Classilla 9.3.2版本,但由于证书过旧,可能无法访问一些https站点; Classilla 9.3.3解决了证书问题,但同样会使模拟器崩溃。并且Mac OS中的浏览器太老,即使能浏览网页,在现代网页面前也显得无能为力,通常排版是乱的,很多内容还无法显示。

关于Slirp模式下的IP地址设置, 在模拟器系统的控制板中找到TCP/IP,将Ethernet(以太网)的IP设置为10.0.2.5,子网掩码设置为255.255.255.0,网关(路由器)设置为10.0.2.2,DNS服务器设置为10.0.2.3。

如果需要一个不让模拟器崩溃的模拟器环境,可以在Mac OS X 10.6到10.9(新系统中未测试)中使用SheepShaver或者BasiliskII并使用Slirp方式联网。

Windows的BasiliskII 142版本的Router方式联网也比较稳定,但SheepShaver和新版BasiliskII不能使用这种方式。 具体IP地址设置如下:

IP地址: 192.168.0.4

子网掩码:255.255.255.0

网关(路由器):192.168.0.1

DNS使用公共DNS即可(例如著名的8.8.8.8等)。

 

4. 如何合法地取得ROM和Mac系统

现在这些老Mac的ROM和系统软件已经属于abandonware(被遗弃的软件)了。只不出于商业目的,没有人会追究责任。当然,如果需要合法取得ROM,要先拥有一台老Mac电脑,用诸如“Copy ROM”的软件将系统的ROM导出,再拷贝出来给模拟器使用,可参阅此教程(英文)。苹果给老机型提供过固件更新,将这些固件更新程序里包含的ROM提取出来也是“合法”的,可以参阅此教程(英文)。

而老Mac系统软件,其实曾经在苹果更新服务器上就有部分完整版的系统提供过,例如7.5.3英文版系统(可用于Mini vMac/BasiliskII和Sheepshaver),以及简体中文6.0.7系统

解压这些磁盘镜像可以用Windows版的Stuffit Expander。

 

5. 更多的资源

软件资源可以上Macintosh Garden,Macintosh Repository。 关于模拟器的更多教程,可以去Emaculation网站的Guides区。

一些个人收集到的中文版(和部分英文)的系统软件: pan.baidu.com/s/1hsBOdg