[新聞] MAME 更新需求
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://www.ptt.cc/bbs/Emulator/M.1775566983.A.CA1.html
→
04/07 22:10,
16小時前
, 1F
04/07 22:10, 1F
※ 編輯: playlive (111.255.120.140 臺灣), 04/07/2026 22:35:07
→
04/07 22:36,
15小時前
, 2F
04/07 22:36, 2F
→
04/07 22:59,
15小時前
, 3F
04/07 22:59, 3F
→
04/07 23:00,
15小時前
, 4F
04/07 23:00, 4F
推
04/08 03:55,
10小時前
, 5F
04/08 03:55, 5F
推
04/08 12:35,
1小時前
, 6F
04/08 12:35, 6F
推
04/08 13:48,
30分鐘前
, 7F
04/08 13:48, 7F
Emulator 近期熱門文章
PTT遊戲區 即時熱門文章