2024年10月,广受欢迎的开源兼容层项目 Wine 正式发布了其最新版本 Wine 9.20。作为专为 Linux 和 macOS 用户开发的解决方案,Wine 能够让用户无需虚拟机或双系统的情况下运行原生 Windows 应用程序。每次版本的发布都代表着 Wine 不断迈向更高的兼容性和稳定性,特别是对于游戏和图形应用而言。此次 Wine 9.20 版本尤为重要,因为它在多个关键领域进行了显著提升,特别是在 DirectPlay 网络会话支持 方面,这对依赖该技术的旧版网络游戏用户而言是个好消息。
除了 DirectPlay 支持的增强外,Wine 9.20 还带来了调试工具的改进、图形处理的增强、开发基础设施的优化以及大量的 bug 修复,进一步完善了 Wine 的功能性。
• 发布公告:
https://www.winehq.org/news/2024101801
Wine 项目背景
Wine(“Wine Is Not an Emulator” 的缩写)是一个兼容层项目,最早始于1993年,旨在让 Windows 应用程序在类 Unix 操作系统(如 Linux 和 macOS)上运行。尽管并非传统意义上的虚拟机或模拟器,Wine 通过重新实现 Windows API,从而允许这些应用在完全不同的操作系统环境下运行。其核心目标是消除跨平台软件开发的障碍,提升 Windows 应用的可移植性。
由于游戏开发者普遍优先支持 Windows 平台,Wine 对于希望在 Linux 或 macOS 上运行 Windows 游戏的用户具有极大的吸引力。近年来,随着 Linux 桌面系统的普及和 macOS 的持续发展,Wine 的重要性不断提升,特别是在图形应用和游戏领域,其作用愈发明显。
Wine 9.20 的重要更新
1. Capstone 框架集成到 WineDbg 中
WineDbg 是 Wine 提供的原生调试器,用于帮助用户分析和修复在 Wine 环境中运行的 Windows 应用的各种问题。在 Wine 9.20 中,WineDbg 迎来了一个重要的更新:Capstone 反汇编框架 的集成。Capstone 是一个多平台的轻量级反汇编引擎,支持众多架构(如 x86、ARM、MIPS 等),广泛应用于安全研究、反病毒和调试工具。
通过 Capstone 的集成,WineDbg 获得了更加强大的反汇编能力,这意味着用户可以更深入地分析运行在 Wine 上的 Windows 应用程序的底层指令。这项改进尤其对开发人员和高级用户有益,因为他们可以更精准地调试复杂的程序,了解底层指令集的执行情况。这也为运行在 Wine 中的程序排除故障提供了极大的便利。
2. D3DX9 格式支持的扩展
DirectX 是 Windows 平台上广泛使用的图形 API,而 D3DX9 是其 DirectX 9 版本中的一个扩展库,主要用于处理图形渲染的高级功能,尤其是在游戏开发中应用广泛。D3DX9 提供了纹理加载、矩阵计算、顶点着色等功能,极大地方便了 3D 图形的渲染。
在 Wine 9.20 中,D3DX9 的支持得到了进一步增强,增加了对更多格式的支持。这项改进使得运行在 Wine 上的应用程序,尤其是依赖 DirectX 9 的游戏和图形应用程序,可以获得更好的兼容性和更高的性能。这对于那些依然使用旧版 DirectX 技术的游戏玩家来说无疑是个好消息。
例如,许多经典的 Windows 游戏仍然使用 D3DX9 进行渲染,而 Wine 9.20 的改进则意味着这些游戏在 Linux 和 macOS 上将运行得更加流畅,并且图形效果也会更加接近原生 Windows 环境。
3. DirectPlay 网络会话支持的改进
DirectPlay 是 Microsoft DirectX 技术的一部分,主要用于处理多人网络游戏的通信和会话管理。尽管 DirectPlay 技术较为陈旧,许多经典的 Windows 网络游戏(尤其是 2000 年代早期的游戏)依然依赖于该技术进行多人游戏会话管理。
Wine 9.20 对 DirectPlay 网络会话 的支持进行了大幅改进,提升了兼容性和稳定性。这意味着在 Wine 环境中运行的旧版网络游戏,将能够更加顺畅地建立和管理在线游戏会话。许多过去由于 DirectPlay 支持不完善而难以运行的游戏,现在将能够在 Linux 和 macOS 系统上正常进行多人游戏模式。
这些改进为那些怀旧的玩家带来了福音,他们将能够重新体验当年的经典游戏,并与好友在跨平台环境下进行多人联机游戏。此次 DirectPlay 支持的增强不仅提升了兼容性,还大大改进了网络连接的稳定性和响应速度。
4. GitLab CI 中的静态分析与 JUnit 测试报告
除了针对用户体验的改进,Wine 9.20 还对其开发基础设施进行了优化,特别是在 GitLab CI(持续集成) 中增加了 静态分析和 JUnit 测试报告 功能。静态分析是一种代码质量控制技术,可以在编译前自动检测代码中的潜在问题,从而减少 bug 并提高代码的可靠性。而 JUnit 测试报告则提供了对代码功能的自动化测试支持,确保每次版本更新时新代码不会引入回归问题。
这些工具的引入不仅提升了 Wine 代码的整体质量,还加快了开发流程,帮助开发者更快地定位和修复问题。随着开发工具的改进,未来的 Wine 版本将更加稳定和高效。
5. 15 个 bug 修复,提升稳定性
作为每个版本发布的一部分,Wine 9.20 修复了来自用户反馈的 15 个已知 bug。这些 bug 修复涉及不同的应用场景和功能模块,进一步提升了 Wine 的兼容性和稳定性。
在这次修复中,一些常见问题得到了解决,例如某些游戏中的渲染问题、网络通信错误以及特定应用程序的兼容性问题。这些修复使得 Wine 用户能够更稳定地运行他们喜爱的应用程序,减少了崩溃和错误发生的可能性。
对于希望尝试或升级到最新版本的用户,Wine 9.20 的 源代码 已经可以在 Wine 的 GitLab 项目页面下载,适用于各种发行版的 二进制包 也将陆续发布。用户可以通过其系统的包管理器或通过编译源代码来安装 Wine 9.20。
https://gitlab.winehq.org/wine/wine/-/releases/wine-9.20