思科模拟器32位_三款另类的68k Mac模拟器

527a05b2de7c000960344b9349dc7f14.png

之前说过两个主流的68k Mac模拟器,Mini vMac和BasiliskII。不过它们都没有真正的硬盘模拟,都是通过外置的软驱接口连接的“硬盘”。那么这篇文章将介绍三款非主流的68k Mac模拟器 —— pce-macplus,SoftMac和FUSION PC。

ea6f61586cdcc24678b894363648efc7.png

pce-macplus是一款开源的68000 Mac的模拟器,可以说是目前最完整也是最难用的68000 Mac模拟器了。它支持SCSI硬盘的模拟,对8MHz 68000处理器速度的还原也比较准确,而且它可能是目前唯一可以启动Macintosh Classic ROM中的System 6.0.3的模拟器了。缺点是它的配置文件看起来莫名其妙,而且文档也只有寥寥数语,使用起来非常不方便。

02950f5d484f256cbc03f21a4e3d9704.png

SoftMac能模拟68000到68040的Mac,支持System 6,System 7和Mac OS 8系统,图形化的配置界面,相对来说更容易使用,但这个模拟器的兼容性不是很好(应该说是很不好)。一是不兼容64位Windows,因此只能在32位Windows下运行。二是对Mac硬件的模拟可能也很不完善,经常出现崩溃的情况。(实话说,尝试过N种不同的ROM,尝试过N次安装Mac OS,就很少出现成功的情况。)如果你想体验Classic Mac的“炸弹”信息,以及Sad Mac,那么SoftMac是一个不错的选择。

7c4fc92f92018d3d8cb8f08d445d83b6.png

FUSION PC最后更新于2000年,能够模拟68030和68040处理器的Mac。但只能在DOS操作系统中运行,要求主机CPU至少为486。只支持Sound Blaster系列声卡(及兼容卡)。FUSION在DOSBox中运行良好,只是速度较慢,毕竟有两层模拟。如果有一台古董电脑,并且声卡兼容Sound Blaster也有DOS驱动的话,可以试试FUSION PC模拟器。


pce-macplus

先来看看pce-macplus这款最难用的Mac模拟器。

pce系列的模拟器不仅仅可以模拟68000处理器都Mac,还能模拟IBM PC和Atari ST机型。目前最新版本是0.2.2版,建议使用pce-0.2.2-macplus.zip压缩包,这是Windows版的模拟器,里面有Macintosh Plus,Macintosh SE和Macintosh Classic三种机型的ROM以及System 7镜像,还有一个工具磁盘,而且默认已经配置好了。

获取pce-macplus:PCE - PC Emulator

Linux和Mac OS X用户可参考此教程进行编译和配置:http://www.toughdev.com/content/2016/11/pcemacplus-the-ultimate-68k-classic-macintosh-emulator/

957408b7eed75720c6141bd3ea320094.png
pce-0.2.2-macplus.zip文件内容

其中disk1.img是空白800K软盘镜像,hd1.img是System 7硬盘镜像,hd2.img是工具磁盘镜像。.cfg结尾的文件是已经写好的机型配置文件,.bat文件是启动模拟器的脚本文件,.dat是该配置文件对应的机型PRAM文件。三个目录,bin目录存放了模拟器程序和一些工具,doc目录存放的是模拟器的文档和说明,rom目录中含有各Mac机型的ROM。

运行其中一个bat文件就可以启动模拟器,默认是启动hd1.img的System 7,可以按Ctrl-Alt释放鼠标。如果需要自己创建磁盘镜像并安装系统,需要先了解一下模拟器配置文件。

pce的配置文件

建议在查看此节之前,先体验一次默认设置下的pce-macplus模拟器。并简单了解以下Macintosh Plus,Macintosh SE和Macintosh Classic机型的信息。

以下为配置文件详解,重点的内容将以粗体标出,其余内容可以忽略。

path 

path = ""定义的是路径,模拟器会在这些路径中寻找ROM和磁盘镜像。例如可以在pce的文件夹中创建一个叫“img”的目录用于存放软盘镜像,就可以在配置文件中添加一行 path = "img"。

memtest = 0

memtest = 0意思是跳过Mac启动时的内存检测,如果需要模拟得更真实些,可以把内存检测打开,即把“0”改为“1”

system {
	# The Macintosh model to emulate. Valid models are:
	# mac-plus:    A Macintosh 128K, 512K, 512Ke or Plus
	# mac-se:      A Macintosh SE or SE-FDHD
	# mac-classic: A Macintosh Classic
	model = "mac-plus"
}

system中的model = "mac-plus"指的是模拟机型为Macintosh Plus,当然如果需要模拟128K,512K和512Ke都可以使用“mac-plus”机型。如果要模拟Macintosh SE则改位“mac-se”,同理,“mac-classic”模拟的是Macintosh Classic。

cpu {
	# The CPU model. Valid models are "68000" and "68010".
	model = "68000"

	# The CPU speed multiplier. A value of 1 emulates a
	# 7.8336 MHz CPU. A higher value emulates a faster CPU
	# but also takes up more host CPU time. A value of 0
	# dynamically adjusts the CPU speed.
	speed = 0
}

cpu中的model = "68000"指的是CPU为摩托罗拉68000,可以改为68010但Mac从没用过68010处理器。speed = 0指的是自动调整模拟器速度。但这样设置,在现代电脑上运行时,模拟的CPU会非常快。这个数值控制的是处理器的“倍频”,如果需要较准确地还原模拟器CPU的速度,可以将它设置为“1”,即运行在1 x 7.8336 MHz。

# Multiple "ram" sections may be present.
ram {
	# The base address
	address = 0

	# The memory block size
	size = 4096K

	# The memory block is initialized with this value.
	default = 0x00
}

ram中需要修改的一般只有size = 4096K这一项。这一项修改的是内存大小,单位为KB,但注意不要删除了后面的字母K。

# Multiple "rom" sections may be present.
rom {
	# The file from which the rom code is loaded
	file = "mac-se.rom"

	# The base address
	address = 0x400000

	# The rom size
	size = (system.model == "mac-classic") ? 512K : 256K

	# The memory block is initialized with this value.
	default = 0xff
}

rom {
	# This is the PCE extension ROM.

	address = 0xf80000
	size    = 256K
	file    = "macplus-pcex.rom"

	# The memory block is initialized with this value.
	default = 0xff
}

ROM选项不需要修改,除非你需要加载自己的ROM文件,或者ROM初始块的位置。

terminal {
	driver = "sdl"

	# The terminal escape key. The default is "ESC".
	#escape = "CtrlRight"
	#escape = "ESC"
	#escape = "F12"
	#escape = "Menu"

	# The terminal scale factor. Only integral values are
	# allowed.
	scale = 1

	# The terminal aspect ratio.
	aspect_x = 3
	aspect_y = 2

	# Add a border around the image
	border = 0

	# Start in fullscreen mode.
	fullscreen = 0

	# The mouse speed. The host mouse speed is multiplied by
	# (mouse_mul_x / mouse_div_x) and (mouse_mul_y / mouse_div_y)
	mouse_mul_x = 1
	mouse_div_x = 1
	mouse_mul_y = 1
	mouse_div_y = 1
}

同样terminal里的选项一般也不需要修改。terminal定义的是输出终端的类型,默认是SDL输出,如果SDL不可用时会使用x11。其中 scale = 1 指的是窗口缩放比例为1x,可以改位其他的整数倍,比如改为2。fullscreen = 0指的是启动时不进入全屏模式,如果改为1则启动时全屏显示。

sound {
	# Apply a low-pass filter with the specified cut-off
	# frequency in Herz. This is separate from the low-pass
	# filter in the sound driver. If the frequency is 0,
	# the filter is disabled.
	lowpass = 8000

	#driver = "null"
	#driver = "wav:wav=speaker.wav:lowpass=0:wavfilter=0"
	#driver = "oss:dev=/dev/dsp:wav=speaker.wav:lowpass=0:wavfilter=0"
	driver = "sdl:wav=speaker.wav:lowpass=0:wavfilter=0"
}

sound中有两个设置。一个是lowpass = 8000,此选项是音频输出的低频滤镜,低于8000Hz的声音将被过滤掉。如果不希望过滤掉8000Hz以下的声音,可以将此值改为0。而另一个选项,driver = "sdl:wav=speaker.wav:lowpass=0:wavfilter=0",一般情况下不需要修改,默认是使用SDL输出声音。

rtc {
	# On startup the parameter RAM is loaded from this file. On
	# shutdown it is written back.
	file = "pram-mac-se.dat"

	realtime = 1

	# Set the startup disk to the ROM disk. This only works with
	# the Macintosh Classic ROM.
	romdisk = 0
}

一般rtc里的内容也不需要修改。如果是模拟Macintosh Classic机型,希望从ROM中的磁盘启动时可以将romdisk = 的值改为1。

sony {
	# The floppy disk insertion delay. Set this to:
	# 0: never automatically insert the disk
	# 1: have the disk inserted immediately on startup.
	#    The System will then either boot from the disk or
	#    eject it.
	# x: delay insertion by x (emulated) seconds.
	insert_delay = 15

	# The insertion delay can be set for each floppy disk
	# drive individually.
	#insert_delay_1 = 1
	#insert_delay_2 = 15
	#insert_delay_3 = 15
}

sony中的选项,一般只有insert_delay = 15,意思是当模拟器启动时,在(模拟器的)几秒钟之后再插入软盘镜像。默认值是15,意思是(模拟器的)15秒后才会插入软盘。当然,15秒后,基本上机器已经判断为是软驱中没有软盘了,会自动从硬盘启动。如果需要开机从软盘启动,可以将这个值改为1。如果是0,则不会在模拟器启动时自动插入软盘。

scsi {
	device {
		# The SCSI ID
		id = 6

		# The drive number. This number is used to identify
		# a "disk" section. The number itself is meaningless.
		drive = 128

		# The vendor and product strings are returned by
		# the SCSI Inquiry command.
		#vendor = "PCE     "
		#product = "PCEDISK         "
	}

	device {
		id    = 4
		drive = 129
	}

	device {
		id    = 2
		drive = 130
	}
}

scsi中定义的是SCSI硬盘的选项。这里默认定义了三个SCSI设备(device),其中第一个设备的SCSI ID = 6,这是Mac OS系统中检测的SCSI设备ID,而它对应的驱动器号为128,这个drive = 128则是模拟器配置文件中的概念,在下文的disk部分会提到。 SCSI中的设置一般默认即可,不需要手动修改。

之后的serial和video选项都不需要改。直到翻到最后的disk部分。

disk {
	drive    = 1
	type     = "auto"
	file     = "disk1.img"
	optional = 1
}

disk {
	drive    = 2
	type     = "auto"
	file     = "disk2.img"
	optional = 1
}

disk {
	drive    = 3
	type     = "auto"
	file     = "disk3.img"
	optional = 1
}

disk {
	drive    = 128
	type     = "auto"
	file     = "hd1.img"
	optional = 0
}

disk {
	drive    = 129
	type     = "auto"
	file     = "hd2.img"
	optional = 1
}

disk {
	drive    = 130
	type     = "auto"
	file     = "hd3.img"
	optional = 1
}

这里定义了6个磁盘。每一个disk{ }顶一个是一个磁盘,里面都有drive = 表示驱动器号(模拟器里的概念),type = "auto"定义类型(这个不用管),file = "disk1.img"表示镜像文件。 前三个disk{ }都是定义软盘的,后面三个定义的是硬盘。optional = 0或1表示该磁盘是不是可选的磁盘,目前不清楚其作用。

如果定义的磁盘中file = 的文件不存在,则会忽略这个磁盘。即使optional = 0设置后还是会忽略。

这里需要修改的是file = "",改为实际的镜像文件名称。还要注意,标注了drive = 128的磁盘是SCSI 6, drive = 129是SCSI 4,而drive = 130是SCSI 2,这些是在上面SCSI部分就设置了的。

这里建议把镜像文件都放在pce的目录中,或者指定了path的目录中。而且文件名也建议不要包含空格、中文和特殊符号等

启动pce

运行bat文件即可启动pce模拟器。

aea7164a0ec4344f8805625ae0c0b38a.png
左侧为控制台(monitor)窗口,右侧为模拟器窗口。

bat文件内容如下所示

binpce-macplus.exe -v -c pce-mac-se.cfg -l pce-mac-se.log -r

其中binpce-macplus.exe指的是运行bin目录下的pce-macplus.exe。

-v参数指的是详细输出。

-c pce-mac-se.cfg指的是加载pce-mac-se.cfg配置文件。

-l pce-mac-se.log指的是日志输出到pce-mac-se.log文件。 (此处的"-l"是小写的"L"而不是大写的"i",这一点需要注意。)

-r指的是启动后开始运行模拟器,如果不指定此参数,则启动时模拟器不会开始运行,需要在控制台(monitor)中输入“g”命令才会运行。

如果是Macintosh Classic机型,也可以在 -r 参数前加上 -I rtc.romdisk=1 来从ROM磁盘启动(注意"-I"是大写的"i"而不是小写的"L")。

如果需要释放鼠标指针,默认设定是按Ctrl+Alt键。

pce的控制台

如果要在模拟器中更换磁盘镜像或进行其他一些操作,需要进入控制台。方法是在模拟器窗口中按下Ctrl+` (即“~”键),然后切换到旁边的控制台窗口。此时模拟器会暂停运行。

cf21f7aa7e1eca3b5933b0660fd60e9f.png

进入控制台后会看到一个“ - ”的提示符,此时就可以输入命令了。

f92c223629b12befbfc9941ca38f6757.png

控制台命令可以在docmonitor.txt文件中找到。其中最常用的还是m命令(message),给模拟器发送消息,这些消息其实也可以理解成是命令,具体可以参考docmessages.txt文件。

常用的控制台命令有

  • h 获得帮助
  • g 继续运行模拟器
  • m 给模拟器发送消息(命令)
  • reset 重启模拟器
  • q 退出模拟器

而如果需要切换磁盘镜像,则需要使用 m 命令为模拟器发送消息,如:

m emu.disk.insert 1:Install-1.img 

emu.disk.insert指的是插入磁盘镜像,1指的是驱动器1(配置文件中定义的软驱1),Install-1.img是镜像名称。驱动器名称和镜像文件名用英文冒号隔开。

其中emu.disk.insert这条消息可简写成disk.insert或直接写成insert,即命令为:

m disk.insert 1:Install-1.img 或 m insert 1:Install-1.img

到这里,是不是觉得比Qemu还难用?

当然,使用m emu.disk.insert切换了磁盘镜像之后,还需要执行

m mac.insert

才能让模拟器中的System认为磁盘已经插入了。

切换完磁盘,还需要执行 g 命令,让模拟器继续运行。在安装系统时经常需要切换磁盘,可以用这种方法来完成安装。

7bd273d13c1607c4e2a10f33a09b6ee6.png

常用的模拟器messages(消息)

  • m emu.disk.insert 驱动器号:文件名 ,将镜像文件加载到驱动器。
  • m emu.disk.eject 驱动器号(多个驱动器用英文冒号隔开), 弹出驱动器。
  • m emu.disk.ro 驱动器号, 将驱动器中镜像设置为只读。
  • m emu.disk.rw 驱动器号, 取消驱动器中的只读设置。
  • m mac.insert ,模拟Mac的插入磁盘动作(如果之前有一个驱动器图标被拖拽到了废纸篓,则重新挂载该镜像。)
  • m emu.reset ,重启模拟器。

小结一下换盘步骤

  1. 在模拟器窗口按Ctrl+` ,再切换到控制台窗口
  2. 执行 m emu.disk.insert 1:Install-1.img 命令
  3. 执行 m mac.insert 命令
  4. 执行 g 命令,然后返回模拟器

确实,pce对用户一点也不友好,又是一款典型的自由软件。(嗯,本文作者确实对某些自由软件有偏见。)


SoftMac

ecfba7427ea42fa0e5007e21ebca1696.png

cd7959aecd3faaa5ebb9997034df7637.png
SoftMac下的System 7.6.1,无法运行MacBench 4。

dfe657be2a9f760299a22d5ce46058f3.png
SoftMac下的System 7.6.1,MacBench 1中的系统信息。

SoftMac是Emulators Inc出品的一款Mac模拟器。虽然功能强大,但并不稳定。SoftMac模拟的68020到68040机器也有MMU(内存管理单元),但并不支持虚拟内存。

目前SoftMac不支持64位Windows系统。有兴趣的读者可以尝试用虚拟机装一个32位的Windows XP再运行SoftMac,也可以在老机器上运行。

需要注意的是,SoftMac的ROM文件建议放在同一个文件夹中,而且ROM文件名不宜太长(好几次因为太长的文件名而无法加载)。

还要注意,当模拟器卡死时,标题栏会提示Not Running。

3d06b36ba8faa294cf6e3b148cbe79b6.png

有时候模拟器甚至会直接崩溃,然后弹出Windows错误报告窗口。

SoftMac和Fusion都可以在这里下载到 Emulators Online - Free Downloads

SoftMac还有个9.0 Beta4版本(此版本已经不支持Win9x了):http://www.emulators.com/beta/GEM9BETA.ZIP

SoftMac支持的ROM(页面最下面):http://www.emulators.com/softmac.htm

SoftMac官方的Mac OS 8安装教程:http://www.emulators.com/docs/StpByStp.htm

E-Maculation上的教程:SoftMac 2008 Setup Guide

SoftMac的可执行文件说明:softmac.exe是基本的模拟器,没有声音支持;softmac2.exe是针对Pentium 4优化的版本,可以模拟声音,也可以设置更高分辨率等等;softmac9.exe是SoftMac 9的Beta 4版本。如果有的系统或者镜像在SoftMac2.exe下运行不正常,可以用SoftMac9.exe试试,反之亦然。


Fusion PC

相对于SoftMac,Fusion PC就稳定多了。同样也有MMU(内存管理单元)的模拟,但也不支持虚拟内存。

beda4e65defbdbe0e2acbd4b289f9518.png
DOSBox下用Fusion模拟器运行System 7.6.1,显示MacBench 4的系统信息页面。

只是Fusion只能在DOS下运行,在Windows 9x下运行时容易出问题,在Windows 2000和32位XP下则基本无法运行。

FUSION支持的ROM(页面最下面):http://www.emulators.com/softmac.htm

同样,附上一个E-Maculation上的教程链接(在DOSBox下设置):FUSION Setup Guide

关于SoftMac和Fusion的内容,有可能以后会继续更新。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值