作者playlive (???)
看板Emulator
标题[新闻] MAME 更新需求
时间Tue Apr 7 21:02:57 2026
MAME 更新需求
2026年4月7日
以下是机翻
希望您喜欢我们愚人节的玩笑公告。玩笑过後,现在是时候讨论一下 MAME 即将进行的真
正改变了。我们将把开发语言标准从 C++17 升级到 C++20,并逐步停止对过时配置的支
援。此外,我们也会降低发布频率,不再几乎每月都发布新版本。四月不会发布新版本;
我们的下一个版本将在五月底发布。
更新後的要求摘要:
- 一个编译器和 C++ 标准函式库,并对 C++20 有较好的支援。我们将支援的最低 GCC
版本是 GCC 11。 您也可以使用版本较新的 clang 编译器。
- Windows 版本需要安装 Windows 10 或更高版本。微软已经停止对 Windows 10 以及所
有早期版本的 Windows 家用版和专业版的主流支援,而 Windows 11 也已经发布四年了
- MAME 基於 Qt 的调试器需要 Qt 6。
以下是我们即将移除的部分功能概述:
- 32 位元 x86 (i686) 重编译器後端。 x86-64 架构推出至今已超过二十年。
所有主流 x86 作业系统多年来都支援 x86-64,而对 32 位元 x86 的支援正在逐步停
止。
- 支援在 OpenSolaris 和其他 System V UNIX 系统上编译。目前已无活跃开发的
OpenSolaris 发行版,其他 System V UNIX 变体在桌面系统上也鲜有应用。
- 针对 PowerPC 主机系统的特定最佳化。 PowerPC 和 OpenPOWER 目前在桌面市场尚无
实际应用,而旨在开发完全免费、高效能 OpenPOWER 实现的 Libre-SOC 专案
也已停滞不前。
- 适用於 macOS 的过时 aueffectutil 工具。该工具已不再适用於 MAME 的新音讯输出
系统,并且未更新以相容於最新版本的 macOS。
- 预先建置的 MSYS2 环境包含开发工具。但我们的 MSYS2 环境存在多个无法实际解决的
问题。
请继续阅读,以了解更多背景资讯和细节。
我们决定升级到下一版 C++ 标准,并开始利用其新功能。支援 C++20 的函式库和工具应
该已经普及了足够长的时间。目前,我们将继续支援使用 GCC 11 和 GNU libstdc++ 11
或更高版本进行建置。如果您使用 clang 编译 MAME,请注意 clang 11 和 12 在 C++20
的实作中存在一些无法接受的严重 bug,而 clang 13 在编译某些结构时可能会当机。
这意味着您可能需要一个相对较新的 clang 版本才能继续使用它来建立 MAME。
同样,Qt 6 已包含在 MSYS2 中,而所有主流 Linux 发行版也已提供 Qt 6 一段时间了
。我们认为现在是停止支援 Qt 5 的合适时机。
由於新版 GCC 的记忆体占用增加,以及 MSYS2 MINGW32 软体包仓库中移除了 clang 和
其他 LLVM 相关软体包,为 Windows 建立 32 位元 x86 版本的 MAME 已不再可行。
因此,我们将停止维护支援 Windows 32 位元 x86 架构的功能。监於其他作业系统对 32 位
元 x86 架构的支援也在缩减,我们认为继续维护专门针对 32 位元 x86 架构的功能已不
再值得。同时,由於维护 PowerPC 架构的功能同样变得不切实际,我们也正在移除这些
功能。
我们将改用 clang、libc++ 标准函式库和 Microsoft 通用 CRT (UCRT) C 执行阶段函式
库来建置 x86-64 Windows 版本。这意味着我们的 64 位元 x86 和 ARM 版本将使用相同
的工具和函式库进行建置。
很明显,对使用过时的 MSVCRT C 运行时库的 MSYS2 环境的支援正在逐步停止。许多软
体包已从软体仓库中移除,而不是进行更新。因此,使用者必须迁移到使用 UCRT C 执行
时期库的环境,例如 64 位元 x86 架构的 UCRT64 或 CLANG64,以及 64 位元 ARM 架构
的 CLANGARM64。我们目前的建置脚本已支援使用这些环境建置 MAME,无需额外操作。
我们提供的预先打包 MSYS2 环境存在多个问题,其中包括:
- 它们的版本与用於构建 MAME 版本的软体包版本早已不完全匹配,
因此它们对於重现官方 MAME 版本没有用处。
- 它们更新频率很低。这使得尝试更新核心 MSYS2 运行时或任何包含的软体包都充满问
题,因为 MSYS2 软体包的更新支援通常很差,经常跳过多个版本。
- 如果包含支援在各种受支援配置下建置 MAME 的软体包以及一些常用的开发工具,
下载包的大小将非常庞大,难以实际应用。
另一方面,如果省略某些软体包,使用者在尝试新增软体包以支援其使用场景时,就会
遇到与更新 MSYS2 软体包相同的问题。
- 打包开发工具并不是我们的核心任务,而且会占用我们开发 MAME 的时间。
因此,我们建议安装标准的 MSYS2 环境,并使用 pacman 套件管理器命令安装建置 MAME
所需的软体套件。我们的文件中列出了所需的软体包,GitHub Actions 上的 Windows
工作流程也以结构化的形式展示了这些软体包。
像这样的重大变革总是会遇到一些波折,但我们相信,这是我们保持 MAME 开发长期可行
性使命中必不可少的一步。
https://www.mamedev.org/?p=563#readmore
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.255.120.140 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Emulator/M.1775566983.A.CA1.html
1F:→ cancelpc: 感谢翻译,感谢这些开发人员 04/07 22:10
※ 编辑: playlive (111.255.120.140 台湾), 04/07/2026 22:35:07
2F:→ playlive: 这是机翻,补上文字 04/07 22:36
3F:→ reiden: 基本上纯 x86 的时代过去了,x86-64 下能玩就能玩 04/07 22:59
4F:→ reiden: 降低更新频率还不错吧,可能一个月 BUG 修不够多(? 04/07 23:00
5F:推 if4: 谢谢,但为何不推呢?XD 04/08 03:55
6F:推 substar: 看到C++还在就放心了 04/08 12:35
7F:推 if4: 可是我没有原始码...也不差吧 XD 04/08 13:48