
最近群里聊 macOS 上折腾模拟器发现很多人一上来就装跨平台前端、再花半天配核心最后卡在版本兼容问题里进退两难。其实 MAME 官方一直维护着 macOS 原生版本老街机、老基板游戏在 Mac 上直接跑完全没问题根本不需要中间层转译。这篇文章我就把从下载、装 ROM 到调手柄、调滤镜的完整过程写清楚包括踩过的坑和那些文档里不会写的细节。想认真玩的话建议照着我这个顺序走一遍比乱试快很多。1. 为什么非要在 macOS 上玩“原生” MAME1.1 三种常见姿势先搞清楚区别macOS 上玩街机模拟器主要有三条路跨平台前端套核心、虚拟机跑 Windows 版、直接用官方原生 macOS 构建版。我见过不少人一上来就选第一条路理由是“界面好看”“能统一管理多个平台”。但跨平台前端里的 MAME 核心更新很滞后街机驱动几乎每天都在修前端那边的核心可能落后几个月甚至一年。新游戏、新基板支持、bug 修复全都吃不到遇到问题去查文档查到的还是 MAME 官方版的用法两边配置又不完全一致非常容易卡住。虚拟机那条路更不用说了。Windows 版 MAME 在虚拟机里跑输入延迟会被虚拟层放大街机游戏又特别吃帧同步稍微一卡音频就开始爆音、画面撕裂。我以前图省事用虚拟机试过结果连 BIOS 自检画面都拖泥带水后来果断放弃了。所以真正想长期玩、玩出效果就得走第三条路MAME 官方发布的 macOS 原生版本。它直接调用系统原生图形、音频和输入接口配置方式跟 Windows/Linux 版几乎一致网上查到的资料绝大部分都能直接套用。1.2 “原生” 带来的实打实好处很多人觉得“不就是个模拟器吗有啥区别”但 MAME 这个项目跟其他模拟器不一样它是高度依赖 CPU 运算的。街机基板五花八门各种定制 CPU、定制音频芯片全靠软件模拟对 CPU 性能要求极高。原生版本最明显的好处是能充分发挥 Apple Silicon 的调度能力M1 之后的新 Mac 跑大部分 2D 基板游戏都能轻松满帧部分 3D 基板也能跑得动。另外Apple Silicon 的 Mac 跑 x86 转译其实会有开销MAME 这种 CPU 密集型程序受转译层影响非常明显。官方原生 arm64 构建版就没有这个问题性能损耗最小Metal 图形后端也能直接用。还有一点是配置一致性。MAME 的配置体系比较特殊它用 mame.ini 和每台机器的 .cfg 文件保存设置原生版跟 Windows 版在这套体系上几乎没有差异网上的教程、别人分享的配置文件都能照抄大大降低学习成本。如果你之前在 Windows 或者 Linux 上用过 MAME切到 macOS 原生版基本是无缝衔接。2. 安装原版 MAME三条路径照抄即可2.1 官方发布页下载最稳、最快我自己的习惯是直接去 MAME 官方 GitHub Releases 页面下载 macOS 构建版。官方每个正式版本都会发布多个平台的预编译包macOS 版一般会区分 x86_64Intel和 arm64Apple Silicon下载的时候一定要看清后缀。Apple Silicon 的 Mac 就选 arm64 版本Intel 的 Mac 选 x86_64 版本。压缩包解压后是一个 MAME 应用程序或者一个包含可执行文件的文件夹。如果是 .app 就直接拖到应用程序文件夹如果是裸二进制建议放到一个固定目录比如~/Applications/mame/后面配置 ROM 路径的时候方便引用。这里有一个 macOS 特有的坑从网上下载的未签名程序首次打开可能被 Gatekeeper 拦截提示“无法打开因为无法验证开发者”。这时候不要急着去改系统的安全设置直接在应用程序上右键选择“打开”就行系统会弹出一个确认框再点一次“打开”就能正常启动。如果连着这个都不行可以用命令解除隔离属性xattr -dr com.apple.quarantine /Applications/MAME.app注意这个命令只对自己下载并且信任的文件执行不要拿来乱解其他来源的文件。2.2 Homebrew 方式适合喜欢命令行的人如果你是 Homebrew 的长期用户也可以在终端里先搜一下有没有现成包brew search mame搜出来的结果不一定每个时期都有MAME 在 Homebrew 的打包情况经常因为依赖调整而变化有时候有官方 formula有时候只有 cask 版。如果搜到了安装方式通常是brew install --cask mame装出来是图形界面的 App跟官方发布页拿到的版本基本一致。用 Homebrew 的好处是以后升级方便一条命令就能换新版本。但我的建议是别太依赖这条路因为 MAME 的发布节奏跟 Homebrew 的处理节奏不一定同步有时候新版本已经发布好几天Homebrew 那边还没更新。2.3 源码编译给想折腾的人源码编译这条路老实说不推荐普通玩家走但如果你打算改代码、加滤镜、或者跟踪最新开发版就必须学会。先安装 Xcode Command Line Toolsxcode-select --install然后从 GitHub 拉源码git clone https://github.com/mamedev/mame.git cd mame make -j8-j8这里我建议根据 CPU 核心数调整M 系列芯片可以给到跟性能核心数接近的数值编起来能快不少。但 MAME 的编译时间依然不短我第一次编译完整项目用了大概半小时期间风扇狂转。编译完的可执行文件在项目根目录下跑./mame -version能验证是否成功。如果不是特别有折腾精神我还是建议直接从官方发布页下载预编译版省下的时间拿去整理 ROM 库明显更值。3. 第一次启动前的准备工作3.1 目录规划与 BIOS 放置安装好只是第一步真正的坑从 ROM 目录开始。MAME 的默认工作目录在不同平台有差异macOS 原生版通常会把配置和数据文件放在~/Library/Application Support/mame/下但这个目录第一次启动时不一定自动创建完整。我建议先手动规划好目录结构避免后面手忙脚乱。我个人习惯在~/mame/下建一套完整的目录mkdir -p ~/mame/{roms,cfg,nvram,snap,cheat}其中roms放游戏 ROMcfg保存每台机器的按键配置nvram存放游戏的非易失存储数据比如街机的内存设置snap放截图cheat放作弊文件。ROM 文件直接丢进roms目录就行但有几个特殊情况要记住带 BIOS 的基板比如 Neo Geoneogeo.zip、PGMpgm.zip、CPS-2cps2.zipBIOS 文件必须单独放在 roms 根目录不能塞进游戏子文件夹里。使用 CHD 格式的游戏例如部分 3D 基板游戏需要建立与游戏同名的一个文件夹ROM 放在roms/游戏名/游戏名.chd这种结构。同一款游戏可能有不同地区的版本比如美版、日版、欧洲版文件各不相同建议按照 MAME 的 ROM 命名规范来存放不然校验会报错。3.2 用配置文件固定我的常用参数MAME 启动时可以通过命令行参数指定各种选项但每次都敲一长串命令太反人类了。正确做法是生成一份mame.ini配置文件把所有常用参数写进去。在~/mame/目录下执行mame -createconfig这样会生成一份默认的mame.ini然后我用编辑器改几个关键项。以下是我的一套最低限度配置rompath ~/mame/roms cfgpath ~/mame/cfg nvrampath ~/mame/nvram snapdir ~/mame/snap cheatpath ~/mame/cheat video metal keepaspect 1 samplerate 44100video metal是 macOS 上比较推荐的显示后端M 系列芯片跑 Metal 后端效率和延迟表现都更好。keepaspect 1保证画面按正确纵横比拉伸避免街机画面被拉扁。采样率用 44100 能解决一部分声音爆音问题这是我排掉一个烦人问题后养成的习惯。配置文件写好后从任意目录直接敲mame 游戏名就能以这套参数启动游戏。4. 按键映射与手柄配置4.1 键盘默认键位先背熟第一次启动游戏看到画面但不知道怎么操作这是最正常的事。MAME 的键盘默认键位模拟的是街机面板布局不是在 PC 上玩那种 WASD 习惯。几个最核心的按键功能默认按键投币5 或 左 Alt开始1 或 左 Ctrl方向方向键摇杆/按钮区键盘右侧的数字区附近说实话默认键位我用着一直不太顺手尤其是想在 MacBook 键盘上玩格斗游戏的时候。最靠谱的方法是进游戏后按 Tab 打开菜单选择“输入(这个机器)”把每个按键重新映射到自己习惯的位置。MAME 的按键定义分“投币”“开始”“操纵杆方向”“按钮”几类进入对应子菜单把光标停到要改的键上按下回车再按键盘上想要用的键就能完成修改。改完的配置存在cfg目录下每台游戏一个.cfg文件以后再启动同一款游戏会直接套用不需要重新设。4.2 手柄与摇杆的实操映射技巧如果玩格斗、射击类游戏键盘体验确实有限这时候建议直接上手柄。macOS 对主流手柄的支持相当好PS4/PS5 手柄、Xbox 手柄、Switch Pro 手柄都能被系统直接识别MAME 原生版也能正常读取。连接手柄后进入游戏按 Tab 打开“输入(这个机器)”把光标停到要映射的按键上按下回车然后按手柄上对应的按钮就能完成映射。MAME 会把不同输入设备统一识别你甚至可以把键盘和手柄混合使用比如一个玩家用键盘、另一个玩家用手柄。这里有个坑要提醒如果你同时连着多个 HID 设备比如无线鼠标、手柄、外接键盘MAME 有可能映射到错误的设备上表现就是按键没反应或者两个设备互相干扰。解决办法是把暂时不用的控制器都拔掉只留必需的设备再重新映射一次。还有一个老玩家都知道的事街机摇杆多数是 4-way 或 8-way 结构4-way 摇杆比如吃豆人那种只认上下左右四个方向如果用 8-way 手柄十字键来替代很容易在转角处误触斜方向。MAME 里有“对角锁”之类的辅助设置在“输入(这个机器)”菜单下找同类选项或者通过修改ctrlr控制定义文件来开启能显著改善手感。5. 显示效果与滤镜配置5.1 视频后端怎么选MAME 的画面直接裸看像素块确实粗糙但模拟器的画面处理有一套自己的逻辑。首先是视频后端macOS 原生版可选的主要有soft、metal、opengl和bgfx。soft就是纯软件渲染兼容性最好效果也最朴素。metal是苹果自家的图形 API在 macOS 上效率和延迟都更好我用下来是默认首选。bgfx是一个跨平台图形库支持插件式着色器链适合想要高级画面效果的玩家但 macOS 上可用的 shader 链数量会比 Windows 版少一些。切换后端可以在启动时用参数指定也可以直接写进mame.ini。比如我想临时用 bgfx 看效果mame -video bgfx -bgfx_screen_chains crt-geom \ -bgfx_shader_path ~/mame/bgfx -rompath ~/mame/roms 游戏名5.2 扫描线、CRT 滤镜的 macOS 方案Windows 版 MAME 有比较成熟的 HLSL 滤镜效果接近老式 CRT 显示器但 HLSL 是基于 DirectX 的方案macOS 原生版用不了。macOS 上的替代方案主要有两个方向。一个是用 bgfx 的着色器链crt-geom、crt-geom-deluxe、phosphor这些都是社区常见选择效果已经非常接近 CRT 屏摄的真实质感包括屏幕曲率、扫描线、荧光粉辉光。用的时候把 shader 目录放好然后在mame.ini里指定video bgfx bgfx_screen_chains crt-geom bgfx_shader_path ~/mame/bgfx另一个方向是走 macOS 的 Retina 屏幕优势直接不开滤镜保持像素点对点在窗口下运行。MAME 可以做整数缩放让一个像素对应 Retina 屏幕上的四个物理像素反而能呈现清晰的像素画风格。我个人更喜欢这种干净锐利的效果尤其是玩 16-bit 时代的街机游戏点对点效果非常好。6. 常见问题与排查技巧实录6.1 ROM 校验失败“无法识别这个 ROM”大概是刚接触 MAME 的人最常见的问题90% 的原因是 ROM 版本与 MAME 驱动要求不匹配。MAME 每个版本的 ROM 校验规则都会更新同一个游戏老版本能跑新版可能就报错或者反过来。这是因为 ROM 里可能缺少新添加的必需文件或者某些文件哈希值变了。遇到这种情况先别急着删文件用 MAME 自带的校验命令确认问题mame -verifyroms 游戏名它会列出缺失或错误的文件。接下来就是去找与你当前 MAME 版本匹配的 romset。我的经验是确保你的 ROM set 和 MAME 版本尽量一致至少是同一个时期的版本。尽量不要混用新旧版本的 romset这是很多人刚开始玩的时候最容易踩的坑。6.2 手柄没反应或键位错乱如果手柄在游戏里完全没反应先确认系统层面是否识别到了手柄打开“系统设置-蓝牙/游戏控制器”看一眼。如果系统都看不到MAME 就更不可能读到了。如果系统能看到但 MAME 没反应大概率是输入设置还没映射过回到“输入(这个机器)”菜单重新按一遍。键位错乱的问题我之前有一次被折腾了很久后来发现是无线鼠标的接收器被系统识别成了另一个输入设备MAME 把按键映射到了那个设备上。拔掉多余的外设再重新映射问题就消失了。另外一个比较实用的通用接法如果某个游戏的 cfg 文件被搞坏了直接删掉对应.cfg文件重新启动游戏、重新映射一次就行不用重装整个模拟器。6.3 画面模糊、黑边、没法全屏MAME 默认就带黑边是因为它严格按原始分辨率加纵横比输出这是正常的。如果想在 16:9 显示器上全屏同时又不让画面变形可以把keepaspect保留在 1配合unevenstretch做非等比拉伸能填满屏幕但画面会稍微变形看个人取舍。觉得画面模糊的话通常是分辨率缩放没做好。MAME 在 Retina 屏幕上有个常见问题默认缩放可能没有做到整数倍导致像素不是整齐的方形看起来就糊。解决方法是启用整数缩放可以用-intscalex和-intscaley参数或者直接用-noscale关闭缩放只放大到最接近的整数倍。窗口模式下放大到适合大小还保持清晰这就是正确设置。6.4 卡顿、爆音、闪退真正跑起来出现卡顿和爆音先检查音频采样率。把samplerate改成 44100 或 48000跟系统音频设置保持一致能解决大部分爆音问题。如果用的是蓝牙耳机延迟和音频质量会更差切到内置扬声器试试往往有效。闪退和崩溃的情况下如果刚好是 Metal 后端出现的可以临时切换成 soft 软渲染试一下能跑就说明是图形驱动路径问题可以等后续版本更新或者换 bgfx 试试。另外如果 macOS 系统盘剩余空间不足也会导致模拟器加载关卡时读盘变慢、卡顿这时候清一清系统数据缓存能有所改善但完全没有必要因为这个就去重装系统。结合我个人的使用经验MAME 在 macOS 上的稳定性其实已经被官方维护得很好了多数问题都集中在 ROM 匹配和输入设备冲突上。最后再分享一个小习惯我在~/.zshrc里给 MAME 加了一个别名固定了常用的 ROM 路径和视频后端这样在终端里随时想开哪个游戏都能一条命令搞定不用每次都回忆那一长串参数。如果你也打算长期玩建议把配置文件和目录结构一次整理到位后面真的能省很多事。