找回密码
 立即注册

微信扫码登录

使用验证码登录

QQ登录

只需一步,快速开始

搜索
查看: 93|回复: 6

Updated requirements for MAME

[复制链接]

607

主题

518

回帖

7188

积分

版主

积分
7188

优秀版主

发表于 8 小时前 来自手机 | 显示全部楼层 |阅读模式
https://www.mamedev.org/?p=563

I hope you enjoyed our April Fools’ Day announcement. With that out of the way, it’s time to discuss actual upcoming changes to MAME. We’re upgrading the development language standard from C++17 to C++20 and winding back support for obsolete configurations. We’ll also be reducing the frequency of releases a bit, so there will no longer be a release nearly every month. There will be no April release; our next release will be near the end of May.

A summary of updated requirements:

A compiler and C++ standard library with a reasonable level of C++20 support. GCC 11 is the oldest version of GCC that we will support. You can also use a reasonably up-to-date version of clang.
Windows releases will require an updated installation of Windows 10 or later. Microsoft has already discontinued mainstream support for Windows 10, as well as all prior versions of Windows Home and Pro, and Windows 11 is already four years old.
MAME’s Qt-based debugger will require Qt 6.
A summary of some functionality we’re removing:

The 32-bit x86 (i686) recompiler back-end. It’s been over two decades since the x86-64 architecture was introduced. All major x86 operating systems have supported x86-64 for years, and 32-bit x86 support is being wound back.
Support for compiling on OpenSolaris and other System V UNIX systems. There are no actively developed OpenSolaris distributions remaining, and no other System V UNIX variants have a meaningful presence on desktop systems.
Specific optimisations for PowerPC host systems. PowerPC and OpenPOWER currently have no meaningful desktop presence, and the Libre-SOC project to produce a completely free, high-performance OpenPOWER implementation has stalled.
The obsolete aueffectutil tool for macOS. This tool is no longer relevant with MAME’s new audio output system, and it had not been updated to work with recent versions of macOS.
The pre-built MSYS2 environments with included development tools. There are multiple issues with our MSYS2 environment that we can’t practically solve.
Read on for some more background and details.

We’ve decided it’s time to upgrade to the next version of the C++ standard and start taking advantage of the new functionality. It’s been long enough that libraries and tools with adequate C++20 support should be widespread. We’ll support building with GCC 11 and GNU libstdc++ 11 or later for now. If you’re using clang to compile MAME, please be aware that clang 11 and 12 have unacceptably bad bugs in their implementation of C++20, and clang 13 may crash when compiling some constructs. This means you may need a reasonably up-to-date version of clang to continue using it to build MAME.

Similarly, Qt 6 is available in MSYS2 and has been provided by all major Linux distributions for quite some time. We feel it’s a good time to remove support for Qt 5.

Due to increased memory usage of newer versions of GCC and the removal of clang and other LLVM-related packages from the MSYS2 MINGW32 package repository, it’s no longer practical to create 32-bit x86 builds of MAME for Windows. As such, features for supporting 32-bit x86 on Windows will become unmaintained. Since 32-bit x86 support in other operating systems is also being scaled back, we’ve decided it’s no longer worth the effort to maintain features catering to 32-bit x86 specifically. We’re removing functionality catering to PowerPC specifically at the same time as it has become similarly impractical to maintain.

We will be switching to building x86-64 Windows release with clang, the libc++ standard library, and the Microsoft Universal CRT (UCRT) C runtime library. This will mean our 64-bit x86 and ARM releases will be built with the same tools and libraries.

It’s become apparent that support for MSYS2 environments using the obsolete MSVCRT C runtime library is being wound down. Various packages are being removed from the repositories rather than being updated. It will become necessary to migrate to one of the environments using the UCRT C runtime library, i.e. UCRT64 or CLANG64 for 64-bit x86, or CLANGARM64 for 64-bit ARM. Our build scripts currently include support for building MAME using these environments with no additional effort.

There are multiple issues with the pre-packaged MSYS2 environments we provide for download. These include:

They have not matched the exact package versions used to build MAME releases for a long time, so they are not useful for reproducing official MAME releases.
They are updated infrequently. This makes trying to update the core MSYS2 runtime or any of the included packages fraught with issues, as MSYS2 packages often have poor support skipping multiple versions when updating.
Including packages to support building MAME across supported configurations, as well as generally useful development tools, would make the download impractically large. On the other hand, omitting packages leads to users encountering all the issues with updating MSYS2 packages when they attempt to add packages to support their use cases.
Packaging development tools isn’t part of our core mission, so to speak, and takes time away from working on MAME development.
As such, we recommend installing a standard MSYS2 environment and installing packages needed to build MAME using the pacman package manager command. We list the necessary packages in our documentation, and our Windows workflows on GitHub Actions show the necessary packages in a structured form.

There will always be some bumps in the road with a major change like this, but we believe this is a necessary step as part of our mission to keep MAME development viable for the long term.

607

主题

518

回帖

7188

积分

版主

积分
7188

优秀版主

 楼主| 发表于 8 小时前 来自手机 | 显示全部楼层
MAME 0.288版本将于5月发布。

0

主题

90

回帖

1623

积分

金牌会员

积分
1623
发表于 6 小时前 | 显示全部楼层
本帖最后由 漆黑晚星 于 2026-4-7 10:17 编辑

  • 1. 核心技术栈升级(最重要的变化)这是为了利用现代编程语言的特性,让 MAME 的未来开发更顺畅。
  • 升级项目
    旧标准
    新标准 (2026.05+)
    备注
    开发语言
    C++17
    C++20
    需 GCC 11 或更新版本 / Clang (推荐较新版本)
    调试器
    Qt 5
    Qt 6
    Linux/Windows 开发环境需适配
    编译器
    GCC / MSVCRT
    Clang / UCRT
    Windows 版本将主要使用 Clang 和通用 C 运行时


    2. 移除的功能与支持(弃用列表)为了专注于主流平台,官方移除了一些已过时或维护成本过高的功能:
    • 彻底告别 32位系统:移除了 32位 x86 (i686) 重编译后端。这意味着 MAME 将不再支持 32位操作系统(如旧版 Windows XP/7 32位)。
    • Unix 系统精简:停止支持 OpenSolaris 和其他 System V UNIX 系统(已无活跃开发)。
    • PowerPC 优化移除:由于 PowerPC 在桌面端已无存在感,特定的主机优化代码被删除。
    • macOS 工具移除:移除了过时的 aueffectutil 工具(因音频系统已更新)。
    • MSYS2 环境变更:不再提供预构建的 MSYS2 开发环境包。开发者需自行安装标准 MSYS2 并通过 pacman 安装依赖。
    3. 发布频率调整
    • 发布节奏变慢:不再每月发布新版本。
    • 本次跳过:2026年4月没有发布版本,下一个版本预计在 2026年5月底。

0

主题

990

回帖

3215

积分

论坛元老

积分
3215
发表于 5 小时前 | 显示全部楼层
谢谢分享
回复

使用道具 举报

45

主题

6043

回帖

1万

积分

论坛元老

积分
18834
QQ
发表于 4 小时前 来自手机 | 显示全部楼层
进来看看
1227
回复

使用道具 举报

22

主题

316

回帖

2839

积分

金牌会员

积分
2839
发表于 2 小时前 | 显示全部楼层
进来看看
回复

使用道具 举报

4

主题

4280

回帖

1万

积分

论坛元老

积分
13222
发表于 1 小时前 | 显示全部楼层
进来看看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|肖琪模拟游戏站 ( 沪ICP备2023018581号-5|沪公网安备31011702888952号 )

GMT+8, 2026-4-7 16:23 , Processed in 0.353415 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表